🏠 Housing, Leverage, and Intergenerational Wealth Inequality
UQO Working Paper No. 18 — A Dynamic General Equilibrium Theory
TL;DR — A theoretical paper (no empirical estimation) on the conditions under which inherited wealth, mortgage leverage, nominal debt, housing supply and down-payment constraints generate persistent owner–renter wealth gaps among households with the same labour-income process, and on what an unanticipated inflation changes. A three-stage benchmark yields nine propositions (closed-form ownership-entry threshold, leverage multiplier with LTV-independent break-even, closed-form tenure persistence, existence/uniqueness, surprise-inflation accounting and impact). A 12-period OLG model with nominal annuity mortgages (FRM / 5-year term / ARM), gifts and estates, and segmented rental and construction sectors is solved in stationary general equilibrium and along perfect-foresight transitions. Transfers generate a 0.95 income-year wealth gap at mid-life and a rank–rank slope of 0.34 that vanishes without transfers; prices absorb 64–66 % of the partial-equilibrium ownership response to the down-payment constraint; no multiple equilibria; and, because households are net nominal creditors, a 10 % surprise lowers the real house price by 0.45 % where the benchmark predicted a rise.
📌 Status
| Item | Value |
|---|---|
| Version | 1.0 (October 2026) |
| SSRN | not yet submitted |
| Journal | — (target: a field journal in housing or macro-finance; see research/progress.md, Phase 4 verdict) |
| Code & data | fully reproducible from make all; no microdata (illustrative calibration with verified Canadian comparison points) |
🎯 What this paper does
The paper asks under what conditions inherited wealth, mortgage leverage, nominal debt, housing supply and down-payment constraints generate persistent owner–renter wealth inequality among households with identical income processes, and what an unanticipated inflation changes. It answers in two steps.
A benchmark (three stages of life, two-period generations, unit housing demand, nominal mortgage, inter-vivos transfer at the child's purchase) has closed forms. The ownership threshold is the down-payment bound plus the stage-1 consumption of the marginal buyer, $\hat b = (dp - \Lambda\rho)/(1-\Lambda) - y_1$; the parent–child tenure persistence is the second eigenvalue of the dynasty chain, $\lambda = G(\hat y_R) - G(\hat y_R - e_3 p)$, positive only if the house is net wealth at the end of life; a stationary equilibrium exists and is unique when the entry-threshold channel dominates the ladder channel; the revaluation of a price-level surprise is zero-sum with the lender and its general-equilibrium sign is that of a density-weighted net nominal position of the parents whose children are at the tenure margin.
A quantitative OLG economy (12 five-year periods, four house sizes and continuous rented services, Rouwenhorst income risk, 25-year constant-payment nominal mortgages under three contracts with LTV and nominal payment-to-income constraints, gift at the child's entry and estate at the parent's death, segmented durable stocks, lender balance sheet) is solved numerically with an illustrative calibration and every result at fixed prices is labelled as such.
🏆 Headline results
| Object | Value (baseline / experiment) |
|---|---|
| Owner–renter net-worth gap at 40–44, equal income process | 0.95 years of income |
| P(child owns at 35–39 | parent owner / renter) | 0.54 / 0.35; rank–rank wealth slope 0.34 |
| Same, without bequests | 0.38 / 0.38; rank–rank −0.01 (persistence vanishes) |
| Share of the PE ownership effect of θ absorbed by prices | 64 % (θ = 0.05), 66 % (θ = 0.40) |
| Multiple stationary equilibria (3 price scans incl. ε = 0.05) | none (monotone excess demand, one root) |
| Real house price on impact, 10 % surprise, FRM / term / ARM (level) | −0.45 / −0.47 / −0.79 % (benchmark predicted a rise) |
| CEV of mortgaged owners, persistent surprise, FRM / term / ARM | +1.14 / +0.46 / −1.21 % (ordering confirmed) |
| Same with a real-rate response, FRM / term | +1.43 / +0.20 % (the Canadian term loses its advantage) |
| Share of the PE ownership response to the surprise absorbed by prices | 77–92 % |
🗂 Repository layout
├── CLAUDE.md # author's specification of the project
├── configs/ # baseline.yaml (parameters, units, sources), scenarios.yaml (experiments)
├── src/
│ ├── toy_model.py # benchmark (closed forms, 44 tests)
│ ├── model.py # quantitative primitives: conversions, grids, income process, mortgages, supply
│ ├── household_solver.py # backward VFI with discrete tenure/size/loan/gift choices (numba)
│ ├── distributions.py # Monte-Carlo dynasty panel (gift + estate links), moments
│ ├── equilibrium.py # stationary GE (nested Illinois + lottery fixed point), MIT transitions (shooting)
│ ├── calibration.py # verified comparison points and model moments
│ ├── simulation.py # experiments 1-10 (python -m src.simulation)
│ ├── robustness.py / figures.py / tables.py # tables.py also writes numbers.tex (one macro per number)
├── tests/ # pytest: identities, debt dynamics, feasibility, clearing, residuals (69 tests)
├── research/ # literature (72 verified refs), model specification, propositions, failed
│ # hypotheses, results audit (integrity gate), style audit, progress
├── results/{data,figures,tables,logs}/ # raw CSV/JSON, 14 figures (PDF+PNG), 9 tables + numbers.tex
└── paper/ # main.tex → main.pdf (65 p.: 45 p. main text + references + appendices),
# sections/, appendix_proofs.tex, appendix_computation.tex, appendix/,
# figures/ and tables/ (copies made by `make paper`), references.bib🚀 Quick start
make setup # python3 -m venv .venv && pip install -r requirements.txt (pinned)
make test # pytest: 69 tests (≈ 20 s; two slow general-equilibrium tests included)
make simulate # 45 stationary GE + 5 PE + 3 scans + 16 transitions + welfare (≈ 60 min on 18 cores);
# skipped when results/data/diagnostics.json exists (make clean-results to redo)
make figures tables # results/figures/fig01-14.{pdf,png}, results/tables/tab01-09.tex + numbers.tex
make paper # copies figures/tables into paper/ and runs latexmk → paper/main.pdf
make all # test → simulate (skipped if done) → figures → tables → paper
cd paper && latexmk -pdf appendix_proofs_standalone.tex # theory only (model + propositions + proofs)Runtime on an Apple-silicon machine: tests 20 s; full simulation 60 min (18 cores); figures + tables + paper under 2 min.
🗃 Data
There are no microdata. The calibration is illustrative (no moment is fitted). Verified Canadian comparison points (Survey of Financial Security 2023 owner–renter net worth and mortgage share; Hou 2010 ownership profile; CIBC gift statistics via Mirdamadi–Khalid 2023) are listed in results/data/calibration_targets.csv and reported next to the model's moments (Table 1 of the paper) without being targeted. No verified Canadian estimate of the housing-supply elasticity was found; the parameter is swept over 0.05–2. All simulation outputs are committed under results/data/ (358 CSV/JSON files, 5.6 MB; .npz/.pkl and run logs are regenerable and excluded).
🔬 Methodology
- Benchmark theory —
src/toy_model.py: closed forms, general optimiser used to verify the hand-to-mouth assumption, dynasty chain, stationary equilibrium, surprise accounting and impact; proofs inpaper/appendix_proofs.tex. - Household problem —
src/household_solver.py: backward VFI over 12 ages; rent/buy/refinance/sell branches on a cash-on-hand grid, stay on the full state grid; exhaustive search + golden section on liquid assets; loans on 11 fractions of the binding constraint; gifts on 12 fractions of cash; 5-point estate lottery. - Distribution —
src/distributions.py: 96,000-dynasty Monte-Carlo panel with common random numbers and a small unanticipated transitory income component (removes atoms of the cash distribution that made excess demand discontinuous). - Stationary equilibrium —
src/equilibrium.py: nested Illinois regula falsi (rental inside owner market) + damped fixed point on the lottery and the transfer-tax rebate; tolerance 5e-4; supply scales normalised so that $p^* = \tilde p_r^* = 1$. - Transitions — sequence-space shooting over 14 periods with durable stocks, parallel finite-difference Jacobian, Broyden with refresh, damped tâtonnement pre-phase for large shocks; tolerance 1.5e-3 per period; every run labelled with its residual (12/16 within tolerance).
- Welfare — consumption-equivalent variation with $U = V - \Phi$ (flow utility net of warm glow), entrants by transfer quintile and households alive at a shock by age and tenure.
- Traceability —
src/tables.pywritesnumbers.tex(≈ 2,500 macros); every number in the manuscript's prose is a macro read fromresults/data/.
🖼 Figures & tables inventory
Figure (results/figures/) |
Content |
|---|---|
fig01_model_timing |
timing of the OLG model (parent, child, gift, estate, mortgage term) |
fig02_policy_functions |
buy-minus-rent value, liquid saving, house size on the cash grid |
fig03_ownership_thresholds |
threshold by age and productivity; threshold vs θ in GE and PE |
fig04_lifecycle_profiles |
tenure, mortgages, net worth, balance sheets by age |
fig05_equal_income_paths |
equal-income wealth paths by gift quantile; two households straddling the threshold |
fig06_inheritance_quantile_trajectories |
ownership and median net worth by transfer quintile and age |
fig07_inequality_mobility |
Gini by age; tenure and wealth persistence across scenarios |
fig08_inflation_transition |
price, rent, ownership and real debt after a 10 % surprise, three contracts |
fig09_inflation_redistribution |
revaluation, consumption and CEV by age and tenure |
fig10_supply_elasticity_heatmap |
ε × θ: price, ownership, mobility, rank–rank |
fig11_welfare |
CEV of entrants by transfer quintile; CEV by age after the surprise |
fig12_solver_diagnostics |
market clearing, Bellman residuals, grid/sample sensitivity (Appendix B) |
fig13_multiplicity_search |
excess demand and ownership along the price (uniqueness scan) |
fig14_down_payment_sweep |
ownership, prices and persistence vs θ in GE and PE |
Tables (results/tables/*.tex, copied to paper/tables/): 01 notation (Appendix C) · 02 parameters (Appendix B) · 03 baseline moments · 04 convergence (Appendix B) · 05 scenarios · 06 inflation · 07 mobility and inequality · 08 welfare · 09 robustness (Appendix B) · numbers.tex (macros).
⚠️ Limitations
- Illustrative calibration; no fitted moment; supply elasticity without a verified Canadian source.
- Ownership falls after 65 (warm glow over a liquid estate) whereas Canadian owners keep their houses; 72 % of entrants receive a gift vs 28 % in the Canadian source.
- No aggregate risk, default, survival risk or endogenous real rate; the estate is anticipated as an unconditional lottery and held fixed along transitions; the ARM is a stylised within-period repricing; the 5-year period understates peak LTV (nobody is ever underwater).
- Monte-Carlo noise bounds market clearing (≈ 5e-4 stationary, ≈ 1e-3 transitions); 4 of 16 transitions are reported with residuals above tolerance.
- Theory: single crossing proved only on the hand-to-mouth region; Prop. 2 holds for a once-and-for-all tenure decision with a binding LTV constraint; Prop. 7 under unit demand; Prop. 9 under pure debtor positions (Corollary 2 covers net creditors). The three simulation results that contradicted the broader statements are reported as results (
research/results_audit.md).
📝 Citation
@techreport{boucher2026housing,
author = {Boucher, Simon-Pierre},
title = {Housing, Leverage, and Intergenerational Wealth Inequality: A Dynamic General Equilibrium Theory},
institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives},
type = {Working Paper},
number = {18},
year = {2026},
month = {October}
}👤 Author & contact
Simon-Pierre Boucher — Département des sciences administratives, Université du Québec en Outaouais (UQO), Gatineau, QC. 📧 simon-pierre.boucher@uqo.ca
🗒 Notes
Deviations from Recherche-UQO/HARMONISATION.md (all required by the project specification in CLAUDE.md):
- Theoretical paper: no "Data" section; a "Numerical algorithm, calibration and verification" section replaces it.
- amsthm environments extended beyond WP8 (Assumption, Definition, Proposition, Lemma, Corollary, Remark,
proof); statements inpaper/sections/equilibrium.tex, proofs inpaper/appendix_proofs.tex(compiles stand-alone with the model section throughappendix_proofs_standalone.tex, PDF not committed). - Appendices
appendix_proofs.texandappendix_computation.texat the root ofpaper/, plusappendix/appendix.tex(notation); appendix tables and figures numbered A/B/C. src/*.py+Makefile+configs/*.yamlinstead of numberedscripts/;make simulateis skipped when results exist.- Wide tables (scenarios, inflation, mobility, robustness) are scaled with
\resizeboxand carry their note in aminipage(threeparttable cannot wrap a resized tabular). - Figures are generated without in-image titles (LaTeX captions only);
WP18_FIG_TITLES=1 make figuresrestores them for previews. - Numbering history: WP 18 assigned by
HARMONISATION.md§1; spbgit repositorywp18_uqo.git.