Skip to content

[lucas_prescott_search] Add a lecture on Lucas and Prescott's equilibrium search model - #1110

Open
mmcky wants to merge 8 commits into
mainfrom
nov_nyu1
Open

mmcky wants to merge 8 commits into
mainfrom
nov_nyu1

Conversation

@mmcky

@mmcky mmcky commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor

Author: @thomassargent30 wrote this lecture and is its primary author. @mmcky opened the PR and is handling the review process.

New lecture lucas_prescott_search on Lucas and Prescott (1974), "Equilibrium Search and Unemployment". It is the labor-market companion to lucas_prescott_investment (their 1971 paper), whose apparatus it reuses, and it sits directly after that lecture in the Multiple Agent Models part of the TOC.

The lecture asks where the search literature's wage offer distribution comes from. Workers live in spatially separate markets hit by independent, persistent demand shocks. A worker either works at the wage that clears his market or leaves, earning nothing for one period, so unemployment is the act of moving. The lecture derives the worker's functional equation (the max is the worker's option to leave; the min is the no-rent condition that competition among searchers imposes). It reduces a market's behavior to two thresholds and the transition law y' = clip(y, ȳ(s), n̄(s)), and computes the equilibrium the way the paper's appendix does: discrete demand states, an integer workforce, value function iteration, the invariant distribution of the Markov chain, and bisection on the value of search λ.

Later sections cover the following:

  • the equilibrium wage distribution across identical workers
  • how many markets are shedding, receiving and holding workers
  • the job finding and separation rates, compared with lake_model and endogenous_lake
  • the paper's adaptive stability argument
  • the island model's later use in Alvarez and Veracierto (1999, 2001) and in Baley, Ljungqvist and Sargent (2023, 2025) on returns to labor mobility

Five exercises with dropdown solutions:

  • the paper's comparative statics in the persistence and variability of demand
  • a lump-sum cost of moving, and why lower unemployment does not mean higher welfare
  • the two-state example from the paper's appendix, with a closed form for average unemployment checked against the computation
  • an analytical exercise on undirected search
  • a decreasing-returns marginal revenue schedule and what it does to employment and unemployment

Adds five bibliography entries: LucasPrescott1974, AlvarezVeracierto1999, AlvarezVeracierto2001, BaleyLjungqvistSargent2023, BaleyLjungqvistSargent2025.

The lecture uses only quantecon beyond Anaconda and runs locally in about 40 seconds.

🤖 Generated with Claude Code

thomassargent30 and others added 6 commits November 7, 2026 10:53
Places lucas_prescott_search immediately after lucas_prescott_investment,
the lecture on the authors' 1971 paper, whose apparatus this one reuses.

Lucas and Prescott (1974) ask where the wage offer distribution of the
search literature comes from, and answer that it has to be determined
together with the labour supply behaviour that responds to it. Workers
live in spatially separate markets with independent, persistent demand
shocks; a worker either works at the wage that clears his market or
leaves, earning nothing for one period, so unemployment is the act of
moving. The value of search is a single number that clears an
economy-wide market for workers.

The lecture derives the functional equation whose max is the worker's
option to leave and whose min is the no-rent condition that competition
among searchers imposes, shows that the market's behaviour reduces to
two thresholds and hence to the transition law y' = clip(y, ȳ(s), n̄(s)),
and computes the equilibrium the way the paper's appendix does: discrete
demand states, an integer workforce, value function iteration, and the
invariant distribution of the resulting Markov chain. It then closes the
model by bisecting on the value of search.

The marginal revenue schedule reaches zero at a capacity, as in the
paper's Figure 5 and as the paper's own boundedness condition requires;
with a schedule that never reaches zero, the hump in unemployment is an
artifact of where the workforce grid is truncated.

Three exercises with dropdown solutions: the paper's two comparative
statics in persistence (unemployment is low at both extremes and peaks in
between) and in variability; a lump-sum cost of moving, which cuts
measured unemployment by four fifths and output by three percent, so that
unemployment is not a welfare index; and the two-state example of the
appendix, where the invariant distribution puts all its mass on two
values of the workforce and average unemployment has a closed form that
the solution verifies exactly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
They modify the 1974 island model "to incorporate undirected search and
out-of-the-labor-force participation" and use it to evaluate minimum
wages, unions, firing taxes and unemployment insurance. A new subsection
sets out their four changes and what the model was then used for.

A note explains what the first of those changes costs. Directed search is
what makes the value of search a price: raise it and markets hold fewer
workers, so the market-clearing condition pins it down. Under undirected
search the transition conserves the average workforce, so the aggregate
is not cleared by a price and the invariant distribution is one of a
family; this is why the participation margin is not an embellishment but
the thing that restores a price to pin down the level. Exercise 4, which
is analytical, asks the reader to verify this.

The solution to the search-cost exercise now reports their firing-tax
experiment beside it: a tax worth three to twelve months of wages takes
the unemployment rate down from 5.3 to 3.7 percent, pushes average
duration up from 2.4 to 5.1 periods, and cuts employment to 86 percent of
laissez-faire. The lecture's toy result is not an artifact of a stripped
down model.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ure among the search lectures

The Overview asks where the search literature's wage offer distribution
comes from and the lecture never showed the answer. A new subsection does:
identical workers, free to leave at any time, are paid half as much again
at the ninetieth percentile as at the tenth, and the flow value of search
sits just below the mean wage, as it must when moving costs a period of
earnings.

The flow rates are now a ladder: lake_model takes both as parameters,
endogenous_lake makes the finding rate a McCall outcome against a given
wage distribution, and here both are equilibrium objects, with the
separation rate printed beside the other statistics at 2.75 percent of
the employed per period.

A warning states what directed search costs: the job finding rate is one,
every spell lasts a single period, and the model is silent about
duration. That is the first thing Alvarez and Veracierto give up, and
duration averages 2.4 periods once searchers arrive uniformly.

Also: exercise 1 notes that it varies the same two parameters as
mccall_persist_trans, there for wage offers and here for demand; the
absence of a reservation wage is made quantitative, with workers staying
at 0.456 while others leave markets paying 0.674, and the claim that a
market is "about to be crowded" corrected to crowded now; efficiency is
attributed to Lucas and Prescott rather than asserted; and μ is given its
units.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two corrections to the previous commit.

The wage distribution section claimed that the flow value of search must
sit below the mean wage. No such theorem exists, and the model says
something more interesting: two fifths of workers are paid less per
period than a searcher's position is worth, and stay, because what a
worker holds is not his wage but a position in a market, with a claim on
its future and the option to leave later.

The passage on the absence of a reservation wage said that the workers
who leave a market paying 0.674 are declining it. They are not. That is
what the market pays everyone it keeps; employment is rationed at the
threshold where the marginal worker is indifferent, and the ones who go
are those for whom there is no place at that margin. Unemployment here is
not a rejected offer but the absence of a job at a wage the market is
willing to pay, which is the sharpest contrast with the McCall lectures.

New: the three regions of the transition law are now counted. At the
equilibrium 5.6 percent of markets are shedding workers, 5.2 percent are
receiving them, and 89.2 percent are still, so all of the economy's
unemployment comes from the one market in twenty that is contracting. A
further 5.2 percent of markets have no workers at all: in the worst
demand states both thresholds are zero, which is what the leading zeros
in the printed thresholds mean, and those markets stay closed until they
draw a state worth entering.

Also drops a note that repeated the lake-model ladder, and says why the
value of search used before the equilibrium is computed happens to be
7.1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…en the text

Lucas and Prescott devote a section to a question the equilibrium itself
does not answer: workers are assumed to know the value of search, and
nothing has said how they would come to. Their adaptive answer -- believe
too high a value, be disappointed, revise down -- is the algorithm this
lecture already runs, since bisection on a decreasing schedule does
exactly that. A new subsection says so, with their caveat that this kind
of stability says nothing about the response to recurring shocks.

Corrections of wording, all of them places where a reader checking the
lecture against the paper would stumble:

* the McCall lectures derive a reservation wage rather than assuming one,
  so what fails here is a conclusion, not an assumption
* the left side of the employment condition is non-increasing rather than
  decreasing, flat once the marginal product reaches zero, so employment
  is the largest threshold that satisfies it
* the inequality between the two thresholds is weak, since the marginal
  revenue schedule reaches zero at capacity, and in the worst demand
  states both thresholds are zero
* the SS locus can slope either way, but in this calibration it slopes up
  throughout, which the figure shows and the text now admits

Also removes a cap on the arrival threshold that can never bind, since
R ≥ 0 puts the arrival threshold below the employment threshold
automatically; and explains why the Bellman equation evaluates the
continuation at the unchanged workforce while the transition law moves
it, which is the most likely place to suspect a bug and is not one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Baley, Ljungqvist and Sargent (2023, 2025) organise two papers around one
quantity, the returns to labour mobility, and argue that it decides what
a layoff tax does to unemployment and whether quit turbulence can reverse
the turbulence-unemployment relation. The lecture computes everything
needed for it and never named it.

A new subsection does. Our two-state economy and Alvarez and Veracierto's
calibration face nearly the same shock -- demand doubles here, their
productivity ratio is 2.12 -- and employment responds by a factor of 3.7
here against 26 there, where a low-productivity establishment employs
3.81 percent as many workers as a high-productivity one and
high-productivity establishments hold 96 percent of employment. The gap
is the technology: with output x k^ξ n^ψ the shock is amplified by an
exponent that explodes as returns to scale approach one, while a schedule
falling linearly to a capacity amplifies almost nothing. That is said
where R is introduced, too.

Exercise 5 puts the decreasing-returns schedule into the two-state
economy. The same doubling of demand moves employment by a factor of 3.3,
6.3 and 23.5 as the labour exponent rises through 0.4, 0.6 and 0.75, and
unemployment rises with it from 3.6 to 8.0 percent -- not a cost, since
unemployment here is the time workers spend moving and higher returns
mean more of them move.

The solution to exercise 2 now says what the number it computes is for:
it is the minimum layoff tax that shuts down voluntary separations, which
Baley, Ljungqvist and Sargent make a diagnostic, and which has to be
large to be consistent with the reallocation observed in economies whose
layoff costs differ enormously.

Also places the lecture in their three-class taxonomy of frictional
unemployment models, and cites Alvarez and Veracierto (2001), the paper
whose calibration the 3.81 percent comes from.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings November 7, 2026 21:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

Copilot was unable to complete this review at the selected tier due to model policy or plan restrictions.

🟡 Changes recommended

Approval is blocked because there is a moderate-severity active issue where market_outcomes calculates and reports a “mean wage” in a misleading way by assigning positive wages when employment is zero and averaging across markets rather than employed workers (noted at lines 371 and 404 in lectures/lucas_prescott_search.md).

1 open issue
What changed in this PR

This pull request adds a new Jupyter Book lecture on the Lucas–Prescott (1974) equilibrium search/unemployment framework, wires it into the book navigation, and extends the shared bibliography for the new citations.

Changes:

  • Add new lecture content with narrative, math, executable code, figures, and exercises (lectures/lucas_prescott_search.md).
  • Register the new lecture in the book table of contents (lectures/_toc.yml).
  • Add required BibTeX references used by the lecture (lectures/_static/quant-econ.bib).

Outstanding review comment (moderate): In lectures/lucas_prescott_search.md (around lines 371 and 404), market_outcomes computes “mean wage” in a way that (a) assigns a positive wage when employment is zero and (b) averages across markets rather than employed workers, making the reported mean wage misleading/inaccurate.

This pull request requires changes.

File Summary
lectures/​lucas_prescott_search.md New MyST/Jupytext lecture content with computations, plots, and exercises (includes noted “mean wage” computation issue).
lectures/​_toc.yml Adds the new lecture to the Jupyter Book ToC ordering.
lectures/​_static/​quant-econ.bib Adds bibliographic entries referenced by the new lecture.

Review effort: Balanced

Comment thread lectures/lucas_prescott_search.md Outdated
Comment on lines +371 to +378
employment = np.minimum(y[None, :], n_bar[:, None])
unemployment = y[None, :] - employment
wage = np.take_along_axis(model.R, np.maximum(employment, 1), axis=1)
return dict(v=v, n_bar=n_bar, y_bar=y_bar, ψ=ψ,
workforce=(ψ*y).sum(),
employment=(ψ*employment).sum(),
unemployment=(ψ*unemployment).sum(),
wage=(ψ*wage).sum())
@mmcky mmcky changed the title Nov nyu1 [lucas_prescott_search] Add a lecture on Lucas and Prescott's equilibrium search model Nov 7, 2026
@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown

📖 Netlify Preview Ready!

Preview URL: https://pr-1110--sunny-cactus-210e3e.netlify.app

Commit: 7683777

📚 Changed Lectures


Build Info

Corrections that change printed numbers or claims:

* The mean wage in market_outcomes now weights markets by employment.
  It averaged over markets, giving empty markets a phantom wage R(s, 1),
  and printed 0.755 against the 0.780 shown in the wage figure.
* The no-reservation-wage passage quoted 0.456, which is that phantom
  wage in the lowest demand state, where n̄ = 0 and nobody works. The
  lowest wage paid in a market nobody leaves is 0.583. The argument
  still holds, since 0.583 < 0.674.
* The SS figure no longer plots a point for states with n̄(s) = 0.
* Exercise 2 weights the expected value of a worker by the workers in
  each market rather than by markets. The conclusion survives: the value
  still rises at every step, from 7.575 to 7.698. The output loss is now
  "more than twice" the worker's gain, and a cost of 2 is about 2.6
  periods' average wage.
* The layoff-tax diagnostic sentence no longer says the exercise computes
  the minimum tax that shuts down separations; a cost of 2 still leaves
  0.5 percent unemployment.
* Exercise 3 stated R(s, n) = s(1 + n/n0)^(-1/η), left over from an
  earlier draft; the lecture uses s(1 - n/N)^+.
* The left side of the employment condition is flat at βλ < λ beyond
  capacity, so the condition cannot hold on an interval there.

Style: no embedded matplotlib titles in captioned figures, italic rather
than bold for emphasis, American spelling of labor, and no MyST role
inside a docstring.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s, undirected search, and source checks

- Exercise 5 and "Returns to labor mobility" now report mean employment by
  state rather than ratios of employment thresholds, compare n + n0 ratios
  with the static formula (which applies to n + n0), and show how ratios of
  n alone depend on the shift n0
- The note on undirected search and Exercise 4 are rewritten: inflow equals
  outflow under both kinds of search; under undirected search lambda needs a
  consistency condition of its own and the inflow U is a second unknown, so
  the level of the workforce is not left free; a new part computes that the
  consistency condition can have two solutions or none
- "Rationed" employment reframed: at the employment threshold stayers and
  leavers alike get lambda, so nobody is turned away at the going wage
- Figure 5 references distinguish the schedules from the unemployment panels;
  Exercise 3 plots against lambda as the paper does
- Alvarez-Veracierto claims checked against the papers; the 3.81 and 96
  percent figures attributed to Baley, Ljungqvist and Sargent's computation;
  the firing-tax results qualified
- Efficiency and stability wording matched to Lucas and Prescott
- Guard the mean-wage division when no market employs anyone

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thomassargent30

Copy link
Copy Markdown
Contributor

Thanks for the careful review. All four items are addressed in 7683777.

  1. Employment ratios. Exercise 5 now reports mean employment by state: 2.63 for the linear schedule, and 2.01, 3.11 and 8.11 for a = 0.4, 0.6 and 0.75. It compares n + n0 ratios (1.62, 2.13, 3.37) with the static formula, says the formula applies to n + n0, and shows how ratios of n alone depend on n0. The main text now says 2.6. The "option to move later" explanation and the "inside the range" claim are gone.
  2. Undirected search. The note and Exercise 4 are rewritten around your contrast. Inflow equals outflow under both kinds of search, and your table is reproduced in the solution. λ needs its own consistency condition, and U is a second unknown, so the level is not free.
    • One refinement: the consistency condition is hump-shaped in λ, not monotone. At the lecture's calibration with U = 1 it has two solutions (λ ≈ 4.8 and 8.2), and with U = 3 none. This is robust to refining the grid fourfold. Your unique roots at N = 1000 are on the upper branch. A new part 4 computes this, and the text now says existence and uniqueness are no longer guaranteed.
    • Alvarez and Veracierto's own reason for adding participation is the policies they study, which the text now says.
  3. "Rationed." Reframed as you suggested: at n̄(s) stayers and leavers alike get λ, so nobody is turned away at the going wage.
  4. Checks against the papers.
    • The paper's Figure 5 has three rows: the R schedules, λ against workforce demand, and λ against unemployment. So both uses were right, and the text now says which row each refers to. Exercise 3 plots against λ as the paper does.
    • The Alvarez–Veracierto numbers all check out: 2.4 periods, the quotation, complete markets, six weeks, and 2.12.
      • 3.81% and 96% come from Baley, Ljungqvist and Sargent's (2025) computation with AV's parameters, and are now attributed that way.
      • The firing-tax sentence now says that 3.7% and 5.1 periods are at the twelve-month tax, and that employment falls to 86% only when home and market goods are perfect substitutes.
    • The efficiency wording now matches the paper ("the correct social return"; external effects "remain to be settled"). Bisection and stability now "rest on the same fact".

Also fixed: the new mean-wage line divided by zero at some trial values of λ, which printed a RuntimeWarning in three places. The lecture runs cleanly in about 40 s.

🤖 Generated with Claude Code

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants