HomeArticlesSociety & Economics

Schelling Segregation: The Mathematics of Tipping Points

In 1971, economist Thomas Schelling showed that no strong preference for segregation and no coordination between agents is needed to split a city into homogeneous neighbourhoods — a mild "I'd rather not be the small minority on my block" is enough.

mysimulator teamUpdated July 2026≈ 8 min read▶ Open the simulation

Model setup: grid, types and vacancies

Schelling's model places agents of two (or more) types on a 2D grid, originally a checkerboard, with a fraction of cells left empty to allow movement (density typically 90-95% occupied). Each agent occupies one cell and has a fixed type — nothing more complex than a label; the model deliberately strips away economic or personal detail to isolate the effect of a single mechanism, evaluated over the Moore neighbourhood (the 8 surrounding cells).

The satisfaction function and similarity threshold

Each agent evaluates its own satisfaction by looking at its occupied Moore neighbours and computing the fraction that share its own type:

similarity(agent) = (# same-type occupied neighbours) / (# occupied neighbours)

satisfied   if similarity(agent) ≥ τ
unsatisfied if similarity(agent) < τ      // τ = similarity threshold, e.g. τ=0.3

The crucial, counter-intuitive parameter is τ. Note what τ = 0.3 actually encodes: an agent is perfectly happy in a neighbourhood that is 70% different from itself — a tolerant preference, nowhere close to demanding homogeneity. Schelling's original insight is precisely that this mild, tolerant threshold is still enough to produce near-total segregation once the dynamics run. Each tick, unsatisfied agents shuffle order and relocate to a random (or, in the "optimizing" variant, the best) vacant cell that satisfies τ, repeating until no unsatisfied agents remain.

live demo · agents relocating toward satisfaction● LIVE

Tipping points: why 30% produces 70%+ segregation

The mathematics comes down to a positive feedback loop. Consider a mixed neighbourhood near the tolerance boundary: when one minority-type agent moves out because it dipped just below τ, the local composition shifts slightly toward the majority. This makes the next minority neighbour's similarity score drop further, pushing more agents below τ, triggering more moves, further shifting composition. The neighbourhood "tips" from mixed to homogeneous in a runaway cascade, even though every individual step only required crossing a fairly permissive threshold.

Threshold τIndividually tolerant?Emergent segregation
0.10very tolerantmild clustering
0.30accepts 70% differentstrong segregation
0.50wants a slim majoritynear-complete segregation
0.70demandingcomplete, may not converge

The key lesson: there is no proportionality between individual preference strength and collective outcome — a hallmark of tipping-point dynamics found across social systems, from Granovetter's threshold models to financial contagion.

Measuring segregation: the dissimilarity index

To track segregation quantitatively, the standard statistic is the dissimilarity index D, borrowed from urban sociology: D = 0.5·Σᵢ|Aᵢ/A − Bᵢ/B|, where D ∈ [0, 1] — 0 is a perfectly even distribution, 1 is complete segregation. D has an intuitive interpretation: it's the minimum fraction of one group's population that would need to move to achieve an even distribution. Real-world American metropolitan areas historically measured D values of 0.6-0.8 for Black-White segregation — remarkably close to what Schelling's simplistic toy model produces from nothing more than τ ≈ 0.3-0.5.

What the model does and doesn't explain

Schelling's model is deliberately minimal — no income, no discriminatory institutions, no history of redlining. That minimalism is the point: it isolates one mechanism and proves it alone is sufficient to produce strong segregation, without claiming it is the only mechanism in real cities or exonerating discriminatory housing policy. Because segregation here is a collectively emergent equilibrium and not simply the sum of individually extreme preferences, breaking it requires intervention at the systemic level — small, individually rational choices will not spontaneously reverse the tipping-point dynamic once it has locked in.

Frequently asked questions

Does Schelling's model mean people have strong prejudices?

No — the model is usually cited to make the opposite point. A threshold like τ = 0.3 means an agent is perfectly happy in a neighbourhood that is 70% different from itself, a tolerant preference nowhere close to demanding a homogeneous neighbourhood. Schelling's insight is that this mild, tolerant threshold is still enough to produce near-total segregation once the dynamics run, so observing segregated output does not imply strong individual bias.

Why does a 30% similarity threshold produce 70%+ segregation?

Because of a positive feedback loop. When one minority-type agent near the tolerance boundary moves out, the local composition shifts slightly toward the majority, which pushes the next minority neighbour's similarity score down further, triggering more moves and more shift. The neighbourhood tips from mixed to homogeneous in a runaway cascade, even though every individual step only required crossing a fairly permissive threshold.

What is the dissimilarity index and what does it measure?

The dissimilarity index D = 0.5·Σᵢ|Aᵢ/A − Bᵢ/B| is the standard urban-sociology statistic for segregation, ranging from 0 (perfectly even distribution) to 1 (complete segregation). It has an intuitive meaning: D is the minimum fraction of one group's population that would need to move to achieve an even distribution across all cells. Historical American metropolitan D values of 0.6-0.8 are remarkably close to what Schelling's simplistic toy model produces from τ ≈ 0.3-0.5 alone.

Try it live

Everything above runs in your browser — open Schelling Segregation and adjust the grid size and tolerance threshold to watch tipping points form. Nothing is installed, nothing is uploaded.

▶ Open Schelling Segregation simulation

What did you find?

Add reproduction steps (optional)