Social Dynamics · Cellular Automaton
📅 July 2026 ⏱ ≈ 9 min read 🎯 Intermediate

Schelling Segregation: The Mathematics of Bias

In 1971, economist Thomas Schelling showed a result that still surprises people: you do not need any strong preference for segregation, or any coordination between agents, to get a city split almost completely into homogeneous neighbourhoods. A mild individual preference — "I'd rather not be in the small minority on my block" — is enough.

TL;DR: Schelling's grid model shows that a mild, tolerant similarity threshold (like accepting a neighbourhood that's 70% different from you) still produces near-total segregation once agents relocate away from neighbours below that threshold. A positive-feedback tipping-point cascade, not strong individual bias, drives real-world-scale segregation — meaning only systemic policy, not individual choice, can reverse it.

Model setup: grid, types, and vacancies

Schelling's model places agents of two (or more) types on a 2D grid (originally a checkerboard). A fraction of cells is left empty to allow movement. Each agent occupies exactly one cell, and every agent has a fixed type — nothing more complex than a label; the model deliberately strips away all economic or personal detail to isolate the effect of a single mechanism.

Grid: N × N cells Types: A, B (or more) Density: fraction of occupied cells, typically 90-95% Neighbourhood: Moore neighbourhood (8 surrounding cells)

The satisfaction function and similarity threshold

Each agent evaluates its own satisfaction by looking at its occupied Moore neighbours (the up to 8 surrounding cells) and computing the fraction that share its own type:

similarity(agent) = (# same-type occupied neighbours) / (# occupied neighbours) Agent is SATISFIED if: similarity(agent) ≥ τ Agent is UNSATISFIED if: similarity(agent) < τ τ = similarity threshold (e.g. τ = 0.3 means "at least 30% like me")

The crucial and counter-intuitive parameter is τ, the threshold. Note what τ = 0.3 actually encodes: an agent is perfectly happy in a neighbourhood that is 70% different from itself — this is a tolerant preference, nowhere close to demanding a homogeneous neighbourhood. Schelling's original insight is precisely that this mild, tolerant threshold is still enough to produce near-total segregation once you let the dynamics run.

Move dynamics

Each simulation tick, unsatisfied agents attempt to relocate:

for each tick: shuffle agent order (random asynchronous update) for each agent a in order: if similarity(a) < τ: find a random vacant cell c such that similarity(a, c) ≥ τ (or the vacant cell that maximises similarity, in the "optimizing" variant) move a to c until no unsatisfied agents remain, or a step limit is hit

There are two common variants: random relocation (move to the first satisfactory vacant cell found) and optimizing relocation (move to the vacant cell that maximises similarity, or the closest one that satisfies τ). Both variants converge to segregated equilibria, but the optimizing variant converges faster and produces sharper cluster boundaries.

Tipping points: why 30% produces 70%+ segregation

The mathematics of why a mild threshold produces strong segregation 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 type. This makes the next minority-type 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 (typical)
0.10very tolerantmild clustering
0.30tolerant (accepts 70% different)strong segregation
0.50neutral (wants a slim majority)near-complete segregation
0.70demandingcomplete segregation, may not converge

The key mathematical lesson: there is no proportionality between individual preference strength and collective outcome. This is a hallmark of tipping-point dynamics found across social systems — from Granovetter's threshold models of collective behaviour to financial contagion — where a small, local change can cross a critical point and cascade into a completely different macro-state.

Common misreading: observing near-total segregation in the model's output does not mean the underlying agents have a strong preference for segregation. The Schelling model is often cited precisely to make the opposite point — mild, tolerant individual preferences can still produce a segregated macro-outcome nobody explicitly wanted.

Measuring segregation: the dissimilarity index

To track segregation quantitatively as the simulation runs, the standard summary statistic is the dissimilarity index D, borrowed from urban sociology:

D = 0.5 · Σᵢ | Aᵢ/A - Bᵢ/B | Aᵢ, Bᵢ = count of type A, B agents in cell/block i A, B = total count of type A, B agents citywide D ∈ [0, 1]: 0 = perfectly even distribution, 1 = complete segregation

D has an intuitive interpretation: it is the minimum fraction of one group's population that would need to move to achieve an even distribution across all cells. 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 and random relocation.

What the model does and doesn't explain

Schelling's model is deliberately minimal — no income, no discriminatory institutions, no history of redlining or violence. That minimalism is the point: it isolates one mechanism (mild similarity preference + local relocation) and proves that mechanism alone is sufficient to produce strong segregation. It does not claim this is the only mechanism operating in real cities, nor does it exonerate discriminatory housing policy — it demonstrates a lower bound on how little individual bias is needed for a striking collective outcome.

The model's policy implication is equally important: 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 (open housing policy, integrated school assignment, deliberate mixed-income development) — small, individually rational choices will not spontaneously reverse the tipping-point dynamic once it has locked in.

🏘️ Run the Schelling segregation simulation

Adjustable similarity threshold, live dissimilarity index, watch tipping points form

Open simulation →