Repository navigation
Conversation
…ality lectures
Review and revision of the seven lectures in the Bounded Rationality in
Macroeconomics suite, checked against the 1993 book and Marimon, McGrattan
and Sargent (1990).
Shared across the suite
- One stochastic-approximation / E-stability thread, introduced in
bounded_rationality ("One recursion, many learners") and used by the later
lectures, with the history credited accurately (DeCanio, Evans,
Marcet-Sargent, Woodford; Evans-Honkapohja as systematizers)
- Consistent verdicts on selection: MMS economy A2 is convergence to a
non-equilibrium; the two-currency exchange rate is history-dependent
- Repaired hand-offs and cross-links, the book's four payoffs, the
prompting gradient, a notation table, and de-duplicated quotes
- Ten new bibliography entries
By lecture
- bounded_rationality: Bray's learners, E-stability, the bubble linked to
olg_adaptive_money, corrected quotes and attributions
- olg_adaptive_money: remove the pi0 = 3 floating-point artifact, explain the
stability reversal by E-stability, condense the Phillips section with
corrected attributions, three new exercises
- learning_approximation: simulate the same 201-state chain the benchmark is
solved on, converge the kernel smoother, correct the recursive kernel
formula, ODE comparison of batch and online learning
- exchange_rate_learning: fix the tautological limits figure and a print bug,
correct the kappa, election-operator, and time-series claims
- genetic_classifier: common random numbers and a 20-seed sweep for the
prisoner's dilemma, matching perceptron code, a bucket-brigade subsection
- marimon_mcgrattan_sargent: correct the Kiyotaki-Wright condition, adopt the
paper's encoding and a single paper-style genetic algorithm, report every
economy across seeds, derive the bucket brigade's effective discount factor
- prospects_bounded_rationality: correct the history (Bray, E-stability,
Chung, SWZ), settle the four payoffs, qualify the identification argument,
four new exercises
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🔵 Needs a closer look
Execution and output correctness of the substantial new notebook code across the large multi-file revision couldn't be validated in this environment, so confirmation of a clean CI build is needed before approval.
No open issues 🎉
What changed in this PR
This PR revises the seven-lecture "Bounded Rationality in Macroeconomics" suite (checked against Sargent 1993 and Marimon–McGrattan–Sargent 1990), of which five files appear here: four lecture files plus the shared bibliography. The changes tighten the economics narrative, repair hand-offs and cross-links between lectures, introduce a single stochastic-approximation / E-stability thread used across the series, correct quotes/attributions and a few numerical artifacts, add many new worked exercises with executable solutions, and register ten new bibliography entries.
Changes:
- Introduce and reuse one E-stability / stochastic-approximation framing (new
br_one_recursion,br_payoffs,br_notationsections inbounded_rationality), with consistent cross-lecture{ref}/{doc}links and a notation table. - Rework code and prose in
learning_approximation(single 201-state chain for benchmark and learners, matrix-formT_map, converged kernel smoother, ODE batch-vs-online comparison) andexchange_rate_learning(ridge/κ stabilizer, limits figure fix, genetic-algorithm volatility diagnostics), plus many new exercises in all four files. - Add 10 new
.bibentries (DeCanio1979, Evans1989, denHaanMarcet1990, Giannitsarou2005, MalmendierNagel2016, Arthur1991, BullardDuffy1993, Hopfield1982, Arifovic1994, KuanLiu1995), all referenced and unique.
Verification performed: all 65 {cite*} keys across the four lectures resolve to the bib; all {ref}/{numref}/{eq}/{doc} targets resolve; no duplicate figure names or labels; exercise/solution directives and code fences are balanced; removed symbols (brentq, market_prices, sigma_u) are fully unused; and the refactored helpers (e.g., the lfilter rewrite of smoothing_mse, rule/parameterized_expectations/online_pea, and exercise algebra such as the T-map fixed points and slopes) are internally consistent. Notebook execution could not be run in this environment, so output correctness should be confirmed by the CI build.
| File | Description |
|---|---|
lectures/bounded_rationality.md |
Adds the quest/payoffs/notation framing and the "One recursion, many learners" E-stability section; corrects quotes, attributions (muth1961, Friedman1957), and bubble/two-currency exposition; adds exercises br_ex4–ex5. |
lectures/prospects_bounded_rationality.md |
Rewrites the 1993 "ledger" and postscript (four payoffs, identification argument, constant-gain estimability), corrects history/attributions, adds exercises pbr_ex1–ex4. |
lectures/learning_approximation.md |
Unifies benchmark and learners on one 201-state chain, matrix-form T_map/PEA, converged recursive kernel smoother, batch-vs-online ODE/eigenvalue analysis; adds exercises lae_ex4–ex5. |
lectures/exchange_rate_learning.md |
Clarifies Newton–Raphson history-dependence, adds the κ ridge stabilizer, fixes the limits figure and spectrum/print bugs, adds genetic-population diagnostics and exercises xr_ex4–ex5. |
lectures/_static/quant-econ.bib |
Adds ten new bibliography entries supporting the new citations across the suite. |
Review effort: Balanced
…ty lectures marimon_mcgrattan_sargent - A larger bid fraction pulls a rule's stationary strength toward zero rather than always lowering it, so the critique of the paper's "favor specific rules" claim now turns on the sign of downstream payments - A1.1 trade-flow prose matches the figure; the off-equilibrium arrows are not thin - Economy C is compared with the paper's run correctly - Seed count for Economy D; crossover and first-update wording match the code; Ex5 conclusions are scoped to its six runs bounded_rationality - The core of the E-stability theory predates the book; "may seem a weak reed"; Bray's b is distinguished from this lecture's demand slope olg_adaptive_money - Gain contrast with bounded_rationality, the positive-saving qualifier, and the first realized inflation rate in Ex5 learning_approximation - The factor of four is the predicted rate, not the realized one; the Ex1 reading matches its table; Ex4 notes the E-unstable second equilibrium exchange_rate_learning - The zero gap in the limits figure is near-automatic; the election operator is not the only source of learning genetic_classifier - Ex2, Ex3 and Ex4 claims are scoped to the seeds shown; spurious Hopfield states are fixed points, most of them local minima prospects_bounded_rationality - Identification "at the usual rate"; the E-stability limits paragraph; the Ex3 single-learner penalty is bounded, not small The A2.1 and B.1 multi-seed claims are left for the author in #1102. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review summaryI reviewed all seven lectures:
Bottom line: the corrections are real and the mathematics holds up. Every error named in the description reproduces on One substantive error (the bid-fraction claim in Line numbers below refer to 473d382. Fixed in f596e5f
Prose that contradicted the output, or claimed more than the seeds support:
These are prose-only changes. A full Raised for the author: #1102A2.1 lock-in. "So these runs are slow rather than stuck for good" (L1348) and "all of them reach the fundamental pattern by t = 6000" (L1363) hold for seeds 0–19 only. On seeds 20–39, 3 of the 16 runs that are off the pattern at t = 1000 are still off at t = 6000. Seeds 24 and 26 are unchanged at t = 24,000. The cause is a different lock-in from the one described: type 2's general consumption rule Economy B.1. The overview's "nearly every run" is 31 of 40 on seeds 20–59. The main A2 verdict is unaffected: type 1 never speculates in any of 60 seeds. The issue sets out three ways to reword the claims. Left for the author (optional, not changed)
Verified corrections (highlights)
Build and runtimeAll seven lectures execute with zero cell errors. Locally, Not verifiedQuotations and chapter or footnote locators for Sargent (1993) and Marimon, McGrattan and Sargent (1990), the Arifovic and Bullard–Duffy results as characterised, and the rendered figures. 🤖 Generated with Claude Code |
…ity lectures - olg_adaptive_money: fold the two-sentence parenthetical on the pi0 = 3 rest point into one sentence (qe-writing-001) - exchange_rate_learning: write "IID", as the rest of the suite does (qe-writing-009, proposed) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Style-guide passI checked the PR against the QuantEcon style guide (rules from
The new material is in good shape. Commit f9a095d applies the two changes worth making. Pushed in f9a095d
Both are prose-only. A rescan shows both issues cleared. Checked and fine
Left for the author (optional)
🤖 Generated with Claude Code |
Per Tom's choice of option 2 in #1102: - The first lock-in (a lucky refusal rule shutting out an untried trade rule) is slow rather than permanent, as before; the text now says so only of that mode - A new seed-24 cell shows a second, permanent lock-in: type 2's general consumption rule `##0 -> 1`, kept strong by eating good 2, also eats the good 1 it should keep, and the specific rule `100 -> 0` never wins the argmax auction again; seeds 24 and 26 are unchanged at t = 24,000 - Overview and summary: "a few stay stuck for good" in A2; Economy B selects the fundamental equilibrium in most runs (31 of 40 on seeds 20-59) and the speculative one in none Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Follow-up: A2.1 lock-in (#1102)@thomassargent30 chose option 2 from #1102: describe the second lock-in as a failure mode in its own right. Done in 5a2bf5a, changing
The lecture runs cleanly: 51 cells, 0 errors, 57 s locally. #1102 stays open as the reminder to return to option 3 (more seeds and longer horizons, reporting frequencies) in about six months, as Tom suggested. With this, all the review items are addressed. This is ready to merge once the preview build is green. 🤖 Generated with Claude Code |
- Say the same fact once: the specific rule sits far below the general rule's strength, so it never wins the argmax auction - Name the mechanism with the lecture's own term, an overgeneral consumption rule, instead of coining "the cost of generality" - Add seed 24 to the third item of the three-mechanisms list so the new passage ties into the existing framework Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Five solution-block cells carried mystnb figure captions, which the LaTeX builder renders as a figure environment inside the solution box and rejects with "Not in outer par mode", failing the PDF build on every push of this branch. No lecture on main has a captioned figure inside a solution, and nothing cross-references these five names, so the plots now render as plain outputs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
📖 Netlify Preview Ready!Preview URL: https://pr-1101--sunny-cactus-210e3e.netlify.app Commit: 📚 Changed Lectures
Build Info
|
✅ Translation sync completed (zh-cn)Target repo: QuantEcon/lecture-python.zh-cn
|
Twenty solution-block cells across ten lectures carried mystnb figure captions, which the LaTeX builder renders as a figure environment inside the solution box and rejects with "Not in outer par mode", failing the PDF step of the preview build. Nothing cross-references these names, so the plots now render as plain outputs, as in the same change on #1101. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lectures (#1105) * [phillips] Correct, connect, and extend the Phillips Curve Tradeoffs lectures Review and revision of the Phillips Curve Tradeoffs suite, checked against The Conquest of American Inflation and the papers it draws on (Cho, Williams and Sargent 2002; Sargent and Williams 2005; Cogley and Sargent 2005; Sargent and Williams 2025/26; Abreu, Pearce and Stacchetti 1990). Structure - New lecture phillips_policy_evaluation on Conquest chapter 9: maximum likelihood estimation of the classical and Keynesian adaptive models - phillips_drifts_volatilities split; the post-2000 update is now phillips_drifts_volatilities_2 - phillips_lost_conquest moved to the end of the suite Shared across the suite - One escape story: Sims and Chung escape once and stay; Sargent (1999) and CWS recur; Sargent and Williams (2005) explain the difference by the prior; escapes are frequent at the gains the suite uses - The E-stability eigenvalue -1/(1+theta^2) made explicit in 98, 102, 103, 105 - Links to the Bounded Rationality suite, ls_learning, kalman, rational_expectations, markov_perf, and the advanced series, with reverse links from ls_learning, kalman, and rational_expectations - Rewritten notation and gain tables; MarcetSargent1989jet citation key; direct FRED CSV reads; 20 new bibliography entries Corrections that change results - Discounted Riccati cross term in phillips_learning and phillips_lost_conquest - Kalman-filter normalization and the Sims replication in phillips_priors - Both incentive constraints for Abreu's stick and carrot, the worst-value feasibility check, and the APS starting-set condition - Better-than-Nash outcomes of optimal misspecified beliefs shown to vanish as the perceived root goes to one - Vector field of phillips_escaping_nash (the moment matrix lags) - Escape-route persistence prediction, an exact longer MCMC chain, and Monte Carlo error in phillips_drifts_volatilities - Real-time data and the January 2026 propositions in phillips_lost_conquest - Data statements, figures, and the October 2025 gap in phillips_two_stories Exercises: about fifty, up from 21, many linking lectures Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips] Fix two notebook execution failures phillips_lost_conquest: real_time_gap capped vintage dates at the local date. ALFRED silently drops a vintage date that is still in the future in St. Louis, so whenever the run clock is ahead of US Central time (CI between about 00:00 and 06:00 UTC, or any machine east of the US) and the newest quarter is less than 45 days old, the lecture fails with KeyError 'GDPC1_<today>'. Take today's date in America/Chicago instead. phillips_drifts_volatilities: the nyblom_hansen solution solved a stack of 2x2 systems with a 2-D right-hand side, which NumPy 2 treats as a matrix rather than a stack of vectors. Use the [..., None] / [..., 0] idiom the suite already uses elsewhere. Exercise 3's output then matches the text (critical value 0.731, power 0.10-0.43, size 0.032). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips] Drop figure metadata from plots inside exercise solutions Twenty solution-block cells across ten lectures carried mystnb figure captions, which the LaTeX builder renders as a figure environment inside the solution box and rejects with "Not in outer par mode", failing the PDF step of the preview build. Nothing cross-references these names, so the plots now render as plain outputs, as in the same change on #1101. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips] Correct errors found in review - credible_policies, cpol_ex4 solution: the one-period deviation payoff is v^R + G, not v^R + T. - credible_policies, cpol_ex5 solution: as delta -> 0 both curves return to v^N, but the optimal punishment does not become "no harsher than Nash reversion". Measured from v^N it still sustains about twice the improvement (ratio 1.95 at delta = 0.02, 1.98 at 0.005, from the lecture's own solve_aps and nash_reversion_best); a short cell now prints the ratio. - self_confirming, sc_ex3 solution: use the main text's N = 2**14 grid. With 2**12 the solution printed largest B(C)/C = 0.21 at delta = 0.97 where the main text prints 0.311 for the same case; C and nu are unchanged. - escaping_nash: epsilon = 0.0002 is not one of the SW2005 gains (their Table 1 stops at 0.001, as en_ex4 lists) and phillips_priors no longer uses it; say what it is instead. - priors: define V* = sigma^2 M^{-1}, the epsilon-free RLS prior that the code (V_star) and ppr_ex3 (V = epsilon^2 V*) use. - lost_conquest: drop "with the Riccati equation solved correctly", which refers to an earlier bug the reader never sees. - two_stories: pin the Baxter-King comparison to 2008-2019. Its window currently ends in 2019-09, so the output is unchanged today, but once the data run past about 2027 it would take in the 2021-22 surge and contradict the sentence describing it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips_drifts_volatilities] Match the archive's interest-rate transform The archived NEWQDATA y3 column is exactly i/(400 - i) for the TB3MS first-month rate i (max error 2.3e-16 over all 211 quarters), the quarterly return on a bill bought at a discount of i/400 of face value, not log(1 + i/400) (max error 2.2e-3) as the text said. - Part 1: describe the transform correctly, and recover i in the data figure as 400 y3/(1 + y3). The 400 expm1(y3) used before overstated rates by up to about 0.9 percentage points in the early 1980s. No estimate changes. - Part 2: build the post-2000 extension with the same i/(400 - i), so the splice no longer changes definition at 2001Q1 (log1p understated the new quarters by up to about 2.5 basis points a quarter) and the text's "the transformations are unchanged" is true; plot it the same way. Because the effective sample size of tr(Q) is only about 9, this small data change moves the printed posterior summaries about as much as a new seed or a new quarter of FRED data does (posterior mean of tr(Q) 0.433 -> 0.318, 1970s peak of core inflation 16.6 -> 23.6 percent). Every statement in the text still holds in the new run, since the text quotes only features that are stable across seeds. - Both parts: integrated_autocorrelation_time fell over with an IndexError when no lag satisfies Sokal's window condition, which happens once the autocorrelation time exceeds about a fifth of the chain. Fall back to the last lag instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips] Apply Copilot's suggestions and small style fixes - policy_evaluation: use np.linalg.slogdet in the concentrated log likelihood (Copilot). - prospects_bounded_rationality: "shrank ... by a factor of about fifty", with the broken line rejoined (Copilot). - lost_conquest: pass sort=True to the pd.concat of the FRED series. Under pandas 3 the default emits a Pandas4Warning into the rendered output; sort=True keeps today's sorted union. It is the only concat in lost_conquest, two_stories or policy_evaluation that warns under pandas 3.1. - lost_conquest: IID rather than i.i.d., as elsewhere in the suite. - Split eight multi-sentence paragraphs (adaptive, drifts_volatilities_2, escaping_nash, lost_conquest, misspecified, priors) into one sentence per paragraph. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips] Use {cite:t} for in-text citations With bibtex_reference_style author_year, a bare {cite} renders as a bracketed parenthetical, so in-text uses read as "[Phelps, 1967] formulated a control problem" or "chapter 7 of [Sargent, 1999]" (as on the live site today). Switch the 89 narrative uses across 13 lectures to {cite:t}, which renders "Phelps [1967] formulated" and "chapter 7 of Sargent [1999]" (qe-ref-001). Kept as {cite}: end-of-clause citations and citations that follow an author's name written out in the prose ("Robert Solow and James Tobin {cite}`...`"). The parenthesized list of three separate citations in escaping_nash is now one {cite} with three keys, so it no longer renders nested brackets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [quant-econ.bib] Protect proper nouns in titles cited by the Phillips suite The bibliography style sentence-cases article titles, so capitals not protected by braces are lowercased on the references page: today it prints "The post-war U.S. phillips curve" and "Evolving post-world war II U.S. inflation dynamics". Brace the proper nouns in the eleven titles cited by the phillips lectures where this happens (Phillips, Great Inflation, Great Moderation, World War II, French Revolution, American), and brace the quoted paper titles inside the Sims, Stock and Taylor comments so they keep their own capitalization. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips] Drop embedded titles that repeat the figure caption Six main-text figures printed the same text twice: once as a matplotlib title or suptitle inside the image and again as the mystnb caption below it (qe-fig-003). Remove the embedded title in two_stories, credible_policies (two figures), escaping_nash (two) and learning. The one that also named the book's figures moves that reference into its caption. Kept on purpose: the two_stories titles that carry the book's figure numbers ("Figure 1.1: ..."), because the prose refers to the plots by those numbers, and panel titles in multi-panel figures, which label the panels rather than repeat the caption. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips] Greek identifiers in code, and the suite's blackboard operators - lost_conquest: phi_pi, phi_pi_riccati and the phi_0/phi_pi/phi_x/phi_i rule columns become φ_π, φ_π_riccati and φ_0/φ_π/φ_x/φ_i, matching the ρ, κ, λ_x, β already in the same signatures (qe-code-002). - policy_evaluation: gamma_of_beta becomes γ_of_β. - \mathbb E -> \mathbb{E} (lost_conquest), and \operatorname{var}(.) -> \mathbb{V}[.] (credibility, drifts_volatilities_2, lost_conquest) and \operatorname{Prob} -> \mathbb{P} (escaping_nash, learning), the forms the rest of the suite already uses. Outputs of lost_conquest and policy_evaluation are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [phillips_lost_conquest] Ask ALFRED for vintages up to yesterday For some hours after midnight in St. Louis, ALFRED still treats today's date as in the future and returns its latest vintage under yesterday's label, so looking up today's column raised a KeyError. The preview for 371f37a failed this way at 00:34 and 00:45 Central time. Capping the latest vintage at yesterday requests the same data ALFRED is serving, and the printed outputs are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: thomassargent30 <ts43@nyu.edu> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The preview failed at the PDF step with "Not in outer par mode": three code cells inside exercise solutions carried mystnb figure captions, and LaTeX cannot place a figure float inside the solution box. Their names (fig-lps-two-state, fig-lps-undirected, fig-lps-phillips) are not referenced anywhere, so the metadata is dropped and the plots render as plain outputs, as was done for #1101. Also moves the brentq import up to the imports at the top, and uses italics rather than bold for emphasis in three places. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rium search model (#1110) * Add a lecture on Lucas and Prescott's equilibrium search model 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> * [lucas_prescott_search] Bring in Alvarez and Veracierto's adaptation 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> * [lucas_prescott_search] Show the wage distribution and place the lecture 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> * [lucas_prescott_search] Correct two claims and count the regions 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> * [lucas_prescott_search] Add the paper's stability argument, and tighten 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> * [lucas_prescott_search] Bring in returns to labour mobility 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> * [lucas_prescott_search] Correct wage and welfare figures, and tidy style 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> * [lucas_prescott_search] Address the review of #1110: employment ratios, 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> * [lucas_prescott_search] Revise after two fresh-eyes reviews: efficiency, undirected search, robustness - Discretize log demand with Rouwenhorst's method, which matches the stated persistence and variance, and compute the stationary distribution exactly on the threshold set, raising an error when it is not unique - New Efficiency section: a planner for one market whose marginal value is v, and an aggregation argument showing that the stationary equilibrium maximizes the expected present value of surplus from its own stationary distribution when moving takes a period; it does not rank steady states (modified golden rule) - Reframe the Overview around the natural rate, Phelps's island economy, and Lucas (1972); add a roadmap - Undirected search rebuilt around a fixed population: each population has one equilibrium once the inflow can be fractional, and for the lecture's economy undirected search lowers both the value of search and unemployment - Exercises reorganized into six with descriptive labels; the moving-cost exercise contrasts the paper's claim about lambda, uses exact welfare accounting, and shows the cost that stops separations is a property of the discretized demand support; new Phillips-curve and planner exercises - Every quantitative claim checked at 7 and 25 Rouwenhorst states and on a doubled workforce grid; claims that depend on the grid are labeled as such - Code unified around a moving-cost argument, with bracket and grid guards - Bibliography: Lucas (1972), Phelps et al. (1970), Ljungqvist and Sargent (1998); correct two DOIs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * [lucas_prescott_search] Unbreak the PDF build, and tidy style The preview failed at the PDF step with "Not in outer par mode": three code cells inside exercise solutions carried mystnb figure captions, and LaTeX cannot place a figure float inside the solution box. Their names (fig-lps-two-state, fig-lps-undirected, fig-lps-phillips) are not referenced anywhere, so the metadata is dropped and the plots render as plain outputs, as was done for #1101. Also moves the brentq import up to the imports at the top, and uses italics rather than bold for emphasis in three places. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: thomassargent30 <ts43@nyu.edu> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Review and revision of the seven lectures in the Bounded Rationality in Macroeconomics suite, checked against the 1993 book and Marimon, McGrattan and Sargent (1990).
Shared across the suite
By lecture