Wealth Inequality and the Yard-Sale Model, Explained

After reading this you will understand why a market of fair coin flips concentrates all wealth into one hand, how the Gini coefficient measures that concentration, and how a tiny flat tax turns runaway concentration into a stable, unequal steady state.

What the model is, and the surprise it delivers

Start with 1000 agents. Give each of them exactly 100 units of wealth. Now let them trade. Each tick, pick two agents at random, look at whose wealth is smaller, and put a fixed fraction of that smaller wealth on the table. Flip a fair coin. Winner takes the stake, loser hands it over. Nobody is smarter, nobody cheats, the coin has no memory, and the two agents are symmetric before the flip.

Run this for a while and watch what happens. Wealth does not spread out into a gentle bell curve. It funnels. After enough trades one agent holds almost everything and everyone else holds almost nothing. This is the yard-sale model, and its punchline is uncomfortable: perfectly fair individual trades produce a completely unfair outcome. The economist Bruce Boghosian proved the limiting result formally. Left alone, the model drives toward what he calls oligarchy, a single agent owning the entire economy.

The simulator on the tool page animates this directly. You see the wealth histogram slump toward zero for almost everyone, a spike shoot up at the top, the Lorenz curve bow away from the diagonal, and the Gini coefficient climb toward 1.

When this model is useful, and when it is not

Use the yard-sale model to answer one narrow question: how much inequality comes from the structure of repeated multiplicative bets, with no differences in skill, luck bias, or starting wealth? The answer is stark. All of it can. That is a genuinely useful null model. If someone claims a wealth distribution proves some group is smarter or works harder, this model shows you can produce extreme concentration with none of those ingredients.

Do not read the model as a description of a real economy. Real people earn wages, hold different assets, face different tax rules, and rarely stake a fixed share of the poorer party's total net worth on a coin flip. The model has no production, no growth, no innovation, and no consumption. It is a thought experiment about the mathematics of proportional gambling, not a forecast.

The most common misuse is treating the Gini climbing to 0.95 as a prediction that real markets end in one owner. It is not. It shows that fair trades alone contain no force that stops concentration. Real economies have such forces (taxes, inheritance limits, minimum wages). The model's redistribution slider is exactly where you add one back.

The update rule and why it concentrates

Pick two agents with wealth w_i and w_j. Let f be the trade fraction (a common choice is 0.1). The stake is a fraction of the poorer agent's wealth:

\Delta = f \cdot \min(w_i, w_j)

Here \Delta is the amount that changes hands, f is the trade fraction between 0 and 1, and \min(w_i, w_j) is the smaller of the two wealths. A fair coin then moves \Delta from one agent to the other:

w_i \to w_i \pm \Delta, \qquad w_j \to w_j \mp \Delta

The signs are opposite: whatever one gains, the other loses, so total wealth is conserved. With a bias b the win probability for the richer agent becomes 0.5 + b instead of 0.5.

Why does a fair flip still concentrate wealth? Because the bet is multiplicative and staked on the poorer party. Suppose two agents each hold 100 and f = 0.1, so the stake is 10. If you win then lose, you go 100 \to 110 \to 99. If you lose then win, you go 100 \to 90 \to 99. Either order leaves you at 99, below where you started. A win and a loss of equal size do not cancel, because the second stake is computed from a different, smaller base. That asymmetry is small per trade and relentless over millions of trades.

This is the same mathematics behind the difference between the arithmetic mean and the geometric mean. Multiply a number by 1.1 then 0.9 and you get 0.99, not 1. Repeated fair multiplicative gambles have negative expected growth for the typical player even when each bet is fair in expectation.

Measuring inequality: the Lorenz curve and Gini

To turn a whole distribution into one number, sort agents from poorest to richest and plot the cumulative share of wealth against the cumulative share of population. That is the Lorenz curve. Perfect equality is the diagonal line: the poorest 40% of people hold 40% of the wealth. Any real distribution sags below that diagonal.

Lorenz curve
The function L(p) giving the fraction of total wealth held by the poorest fraction p of agents.
Gini coefficient
Twice the area between the diagonal and the Lorenz curve. G = 0 means everyone equal, G = 1 means one agent owns everything.
Top share
The fraction of total wealth held by the richest 10% or 1% of agents.

For a finite set of n agents with wealths sorted so that w_1 \le w_2 \le \dots \le w_n, a direct formula for the Gini coefficient is:

G = \frac{2 \sum_{k=1}^{n} k \, w_k}{n \sum_{k=1}^{n} w_k} - \frac{n+1}{n}

Here k is the rank of each agent from poorest (1) to richest (n), w_k is that agent's wealth, and the sums run over all agents. The term \frac{n+1}{n} is a small finite-sample correction that goes to 1 as n grows.

Reproducing the demo run by hand

The demo uses the field defaults: everyone starts equal, a fair coin, and no redistribution. To make the Gini formula concrete, work a tiny five-agent version and then read off the full run.

  1. Start with five agents each holding 100. Sorted wealths are [100, 100, 100, 100, 100]. Total is 500.
  2. Ranked sum \sum k w_k = 1\cdot100 + 2\cdot100 + 3\cdot100 + 4\cdot100 + 5\cdot100 = 1500.
  3. Apply the formula: G = \frac{2 \cdot 1500}{5 \cdot 500} - \frac{6}{5} = \frac{3000}{2500} - 1.2 = 1.2 - 1.2 = 0. Perfect equality, as expected.
  4. Now let trades run until the wealth is [8, 20, 45, 110, 317], which still sums to 500. Ranked sum is 1\cdot8 + 2\cdot20 + 3\cdot45 + 4\cdot110 + 5\cdot317 = 8 + 40 + 135 + 440 + 1585 = 2208.
  5. Gini: G = \frac{2 \cdot 2208}{5 \cdot 500} - 1.2 = \frac{4416}{2500} - 1.2 = 1.766 - 1.2 = 0.566.

In the full 1000-agent default run you never see a stationary value without redistribution. The Gini starts at 0, passes 0.5 within a few thousand trades, and keeps creeping upward: 0.7, 0.85, 0.95, drifting toward 1 as one agent absorbs the rest.

The Gini rises fast at first, then slowly grinds toward 1. It never settles; concentration has no natural stopping point.

Adding a tax: the stable steady state

Now switch on redistribution. Every few ticks, take a flat fraction \tau of every agent's wealth into a pot and hand it back equally to all agents. An agent with wealth w pays \tau w and receives the average tax collected, \tau \bar{w}, so the net change is:

\Delta w = \tau (\bar{w} - w)

Rich agents (w \gt \bar{w}) lose a little; poor agents (w \lt \bar{w}) gain a little. This is a restoring force pulling every agent toward the mean. The trading is a spreading force pushing wealth apart. When the two balance, the distribution stops changing on average. It reaches a stationary distribution: still unequal, but stable, with a Gini that hovers around a fixed value instead of climbing.

The striking part is how little tax you need. A redistribution of a fraction of a percent per round is enough to hold the Gini at a fixed level. Set \tau higher and the steady-state Gini drops; set it to zero and concentration resumes its march to 1.

Even the smallest positive tax collapses the runaway from near 1 down to a stable value. Higher rates push the steady-state Gini lower.

Without JavaScript: picture two dials. Raising the redistribution rate lowers the settled Gini (roughly 0.97 at rate 0, near 0.5 at 0.004, near 0.1 at 0.1). A positive coin bias toward the rich raises the settled Gini and, past a threshold, defeats small taxes so concentration wins again.

Reading the results without fooling yourself

Three numbers on the tool tell the story: the Gini, the top-10% share, and the top-1% share. Read them together. A Gini of 0.6 with a top-1% share of 25% is a different world from a Gini of 0.6 where the top 1% hold 60%, even though the single summary matches. The Lorenz curve shows the whole shape; the Gini compresses it to one number and throws away detail.

Watch the histogram, not just the summaries. Without redistribution you will see the bulk of agents pile up near zero while a thin tail stretches far to the right. With redistribution the bulk sits away from zero and the tail is finite. That is the visible signature of a stationary distribution.

Finally, remember that any single run is one random path. The Gini trajectory wiggles. Two runs with identical settings differ in their exact numbers because the coin flips differ. The shape of the outcome is robust; the digits are not.

Common mistakes

  • Believing fairness protects you. Each trade is fair, yet the typical agent loses ground because the stake shrinks with the loser's wealth. Fairness per bet does not imply fairness over many bets.
  • Confusing the Gini value with a fixed fact. The Gini is a function of the current distribution. Without a tax it is a moving target that never settles.
  • Reading concentration as merit. In this model the eventual winner is chosen by luck alone. Ex post the winner looks skilled. Ex ante every agent was identical.
  • Expecting bias and tax to be symmetric. A small bias toward the rich can overpower a small tax entirely, restoring the march to oligarchy. A small bias toward the poor accelerates the tax's flattening effect. Try both in the widget.

Related simulators

If you want another world where stark inequality emerges from simple local rules, try Sugarscape, where agents forage a sugar landscape and a heavy-tailed wealth distribution appears on its own. To add production, prices, taxes and money supply on top of these ideas, the Economy Sandbox runs a full miniature economy and reports inequality alongside GDP and inflation. For a shared resource that collapses under individual incentives and is rescued by policy, see the Tragedy of the Commons. And for the broader family of agent models that turn tiny local rules into surprising aggregate patterns, Schelling's Segregation Model and the Forest Fire Model are close cousins.

Frequently asked questions

Why does one agent end up with everything if every trade is fair?

Because the bet is multiplicative and staked on the poorer partner. A win followed by an equal-sized loss leaves you worse off, since the loss is computed from a smaller base after the win. Over millions of trades this asymmetry drains the typical agent and concentrates wealth in a single winner chosen by luck.

What Gini value counts as high?

There is no universal cutoff, but as a scale: 0 is total equality, real national income Ginis run roughly 0.25 to 0.65, and the unregulated yard-sale model drifts past 0.9 toward 1. In this model anything above about 0.8 means a handful of agents hold nearly all the wealth.

How small can the tax be and still work?

Any positive rate stops the runaway. In the default 1000-agent run a redistribution of about 0.004 (four tenths of one percent) per round holds the Gini near 0.5 indefinitely. Drop it to zero and concentration resumes immediately.

Does the starting wealth matter?

Not for the long-run shape. Whether everyone starts equal or with random amounts, the fair-coin model without redistribution still drives toward one owner. Starting conditions change which agent tends to win and how fast, not the eventual concentration.

Is this how real wealth inequality works?

No. It is a null model showing that extreme inequality needs no differences in skill or effort, only repeated proportional gambling. Real economies add wages, growth, inheritance, and policy. The model's value is negative: it rules out the claim that concentration proves the winners were better.