HomeArticlesEconomics & Social Systems

McCall Job Search: Why There Is One Number That Decides Every Offer

A worker samples wage offers one at a time and faces one irreversible choice each round — how the Bellman equation collapses that into a single reservation wage.

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

Every job offer is a stopping problem

A job seeker samples wage offers one at a time, and each offer forces a binary choice: accept it and stop searching, or reject it, collect unemployment benefit b for another period, and draw again from the same wage distribution. John McCall's 1970 model turns this everyday decision into a clean optimal stopping problem, and its central result — a single reservation wage below which every offer is rejected and above which every offer is accepted — remains the workhorse model of labor search theory.

live demo · a wage-offer sequence against the reservation wage● LIVE

The Bellman equation

Let V(w) be the value of holding a wage offer w — either work forever at w, or reject it and search again. The value of searching is the same regardless of the current offer, since offers are drawn independently each period, so the whole optimal-stopping problem collapses to comparing a single number, the value of continuing to search, against the value of accepting each specific offer:

V(w) = max{  w / (1 - beta),                       accept: work at w forever
             b + beta * E[ V(w') ]  }               reject: get benefit b, search again

  beta = discount factor (0 < beta < 1)
  E[...] taken over the wage-offer distribution F(w)

Because the 'reject' branch does not depend on the current offer w at all, there is exactly one wage — the reservation wage w* — at which the two branches are equal, and it is optimal to accept any offer at or above w* and reject any offer below it. This reduces an apparently complicated dynamic decision to a single threshold rule, one of the cleanest results in all of dynamic economics.

Solving for the reservation wage

Setting V(w*) equal to the continuation value and simplifying gives an implicit equation that pins down w* directly from the primitives of the model — the discount factor, the unemployment benefit, and the wage-offer distribution:

w* = b + beta * Integral_from_w*_to_infinity  (w - w*) dF(w)   [1/(1-beta) scaling]

  higher b (benefit)      -> higher w*  (search longer, pickier)
  higher beta (patience)  -> higher w*  (future weighs more, pickier)
  more offer dispersion   -> higher w*  (worth waiting for a great draw)

Each comparative static has an intuitive story behind the algebra. Raising the benefit b makes staying unemployed less painful, so the worker can afford to hold out for a better offer, which is exactly the mechanism labor economists point to when unemployment insurance is found to (mildly) lengthen average unemployment duration. Raising patience β has the same qualitative effect because it weights the option value of continued search more heavily. And, perhaps less obviously, more variance in the wage distribution — holding its mean fixed — also raises w*, because search is inherently one-sided: a worker can reject a bad draw and try again for free (aside from time cost), but locks in a good draw permanently, so extra spread in the distribution is pure upside to someone free to keep sampling.

What the model gets right, and what it misses

McCall search correctly predicts the observed shape of unemployment duration — a declining hazard of leaving unemployment is not automatic in this simplest version (with i.i.d. offers and constant b it is actually flat), but natural extensions where the benefit b declines over time, or where the worker's belief about the wage distribution updates as offers arrive, reproduce the declining-hazard pattern seen in real data. The baseline model is also deliberately one-sided: firms are passive wage-posters with no search cost of their own and no ability to negotiate, which later models (search-and-matching, Diamond-Mortensen-Pissarides) relax by letting both sides search and letting wages be bargained rather than posted, at the cost of a much harder equilibrium problem.

Why economists still use it

Despite its simplicity, the reservation-wage framework is the natural language for talking about unemployment insurance generosity, minimum wage floors truncating the offer distribution from below, and even non-labor search problems like house hunting or dating, wherever the underlying structure is the same: costly sequential sampling from an unknown distribution with an irreversible accept decision. Its tractability — one equation, one number, intuitive comparative statics — is exactly why it remains a teaching and research staple more than fifty years after McCall's original paper.

Frequently asked questions

What is the reservation wage in McCall's model?

The single wage threshold w* at which a worker is exactly indifferent between accepting an offer and continuing to search. Because the value of continuing to search does not depend on the specific offer just received, the optimal policy is simply to accept any offer at or above w* and reject anything below it.

Why does a more generous unemployment benefit raise the reservation wage?

Because a higher benefit b makes staying unemployed less costly while searching, so the worker can afford to be pickier and hold out for a better offer before accepting. This raises the reservation wage w* and, all else equal, extends the expected duration of the job search.

Why does more variance in wage offers make a worker choosier, even with the same average wage?

Because the accept decision is irreversible but rejection is essentially free — the worker can always try again at the same expected cost. Extra spread in the offer distribution increases the chance of drawing an exceptionally good offer without symmetrically increasing the cost of a bad one (which is simply rejected), so more dispersion raises the reservation wage.

Try it live

Everything above runs in your browser — open McCall Job Search Model and change the parameters while it is running. Nothing is installed, nothing is uploaded, the whole model lives in one tab.

▶ Open McCall Job Search Model simulation

What did you find?

Add reproduction steps (optional)