Progress — WP18
2026-10-20 — Phase 0 (setup)
- Dépôt créé depuis le gabarit UQO (HARMONISATION.md), dépôt spbgit wp18_uqo.git, CLAUDE.md déposé.
2026-10-20 — Phase 0 (audit de style) : FAIT
- Les 17 WP locaux (
immobilier/*,finance/*) et le gabarit_modele-working-paper/inspectés (préambule, métadonnées \WP…, sections, flottants, bibliographie, annexes, latexmk ; lecture détaillée WP2, WP5, WP8, WP10, WP16). Aucun fichier manquant. - Livrable :
research/wp_style_audit.md— couverture/numéro, typographie, résumé/mots-clés/JEL, structure des sections adaptée à un papier théorique, figures/tables (fragments générés + macrosnumbers.texcomme WP16), citations natbib/aer, annexes, compilation ; convention amsthm proposée (Assumption/Definition en styledefinition, Proposition/Lemma/Corollary/Theorem enplain, Remark,proofdansappendix_proofs.tex, numérotation globale comme WP8) ; dérogations à consigner dans le README. - Preuve : grep des 17
main.tex(15/17\bibliographystyle{aer}; WP8 seul avec\newtheorem), pages PDF 39–82.
2026-10-20 — Phase 1 (revue de littérature vérifiée + nouveauté) : FAIT
- Méthode : 131 requêtes Crossref (
query.bibliographic, rows 3–4, JSON brut par entrée dansresearch/verification/*.crossref*.json), résolution doi.org testée sur 12 DOI (302 vers l'éditeur), pages Banque du Canada / Statistique Canada / SCHL / NBER / AEA / IDEAS lues pour 38 résumés. Outil OpenAlex indisponible (MCP fermé) ; SSRN/ScienceDirect 403. - Livrables :
research/literature_matrix.csv(72 références vérifiées, 66 avec DOI, 6 avec URL officielle),paper/references.bib(72 entrées, mêmes données ; compilation test natbib+aer : 0 avertissement BibTeX),research/literature_review.md(≈4 300 mots, 9 sections par mécanismes + lacunes),research/novelty_matrix.csv(4 contributions × 5 papiers les plus proches, verdicts),research/inaccessible_sources.md(2 sources du brief non identifiées — Uzeda, Alexander & Bazel ; 3 BoC/WP non vérifiables écartés ; 26 références vérifiées mais périphériques, réintégrables). - Verdicts de nouveauté : (i) seuil d'accession — incrémental (Ortalo-Magné & Rady 2006, KMV 2020, FLVN 2017 ; nouveau = héritage + secteur locatif + caractérisation analytique conditionnelle à la segmentation/offre) ; (ii) persistance — nouveau en théorie, établi empiriquement (Daysal et al. 2023, Charles & Hurst 2002 ; multiplicité à ne pas promettre) ; (iii) inflation surprise — incrémental sur la revalorisation directe (Doepke-Schneider, GKS 2017, Meh et al. 2010), potentiellement nouveau sur la marge d'entrée et le terme de 5 ans canadien ; (iv) offre × contrat → mobilité — incrémental (KMN 2011, Grossmann et al. 2021, Chambers et al. 2009), nouveau seulement comme statique comparative d'une mesure de mobilité.
- Blocages : aucune source vérifiée d'élasticité de l'offre canadienne (paramètre illustratif à prévoir) ; « Uzeda » et « Alexander & Bazel » à préciser par l'auteur ; Muellbauer et al. 2015 (BoC) à revérifier pour la calibration.
- Prochaines étapes : Phase 2 (spécification du modèle, agent parallèle) doit (1) rendre explicite le paramètre de segmentation propriétaire/locatif et l'élasticité de l'offre, (2) tenir le processus de revenus fixe entre quantiles d'héritage dans la base, (3) prévoir trois contrats (FRM long, FRM renouvelable 5 ans, ARM) et deux régimes d'indexation des loyers pour toute expérience d'inflation, (4) formuler (ii) comme distribution stationnaire à deux classes de tenure avec demi-vie, sans promettre la multiplicité.
2026-10-20 — Phase 2 (modèle, propositions, preuves, benchmark 2-3 périodes) : FAIT
- Modèle :
research/model_specification.md(≈7 300 mots). Partie A = benchmark à trois étapes de vie (acheteur / payeur / vendeur-donateur) et générations de deux périodes, transfert inter vivos reçu au moment de l'achat, demande unitaire de logement, hypothèque nominale (principalB_nom = P(1-θ)p, amortissementaà l'étape 2, FRM vs ARM/terme renouvelé), dépôts nominaux, prêteur risque-neutre (résidu des réévaluations), marchés propriétaire et locatif segmentés avec élasticitésε,ε_r, indexation salaires/loyersη_w,η_ρ. Partie B = modèle OLG complet directement implémentable (J = 12 périodes de 5 ans, revenu de Markov Rouwenhorst, tailles de logement avec minimum, hypothèques nominales à paiement constant sur N périodes, FRM/ARM/terme-k, refinancement, LTV + DSTI nominal, don à j_g = 7 et succession à J, bailleurs avec arbitrage et paramètre de segmentation σ, construction stock-flux, prêteur avec bilan, ERC stationnaire + transition MIT, états/grilles/EGM/Young/Broyden, statistiques de mobilité et bien-être). - Propositions et preuves :
paper/appendix_proofs.tex(amsthm : 6 hypothèses, 2 lemmes, 9 propositions, 1 corollaire, 3 remarques de lacunes ; compilable seul viacd paper && latexmk -pdf appendix_proofs_standalone.tex, 12 p., 0 référence non définie ; artefacts nettoyés, PDF non commité conformément à HARMONISATION §2). Résumé des statuts :research/propositions.md. Hypothèses abandonnées/affaiblies :research/failed_hypotheses.md. - Résultats analytiques : (1) seuil d'accession fermé
b̂ = (dp − Λρ)/(1−Λ) − y_1= borne de faisabilité + composante de préférence (consommation du marginal) ; (2) signes : ↑ en p, θ, κ_b, κ_s, m, π̄ anticipée (effet de « tilt »), ↓ en ρ, χ, y_1 — tous des effets de liquidité (neutres pour un ménage non contraint, Prop. 3) ; (4) multiplicateur de levier(1−κ_s)/d, seuil de croissance d'équilibreg*indépendant du LTV, seuil de dette négativex*; (5) persistance intergénérationnelle ferméeλ = G(ŷ_R) − G(ŷ_R − e_3 p)= corrélation de tenure parent-enfant, demi-vie, nulle si la maison n'est pas une richesse nette en fin de vie ; (6) existence de l'équilibre stationnaire (TVI) et unicité sous la condition de dominance (C) ; corollaire offre fixe (taux de propriété figé, prix et composition absorbent tout) ; (7) neutralité des prix sans segmentation ; (8) comptabilité de l'inflation surprise : FRM = ARM pour une surprise de niveau, FRM > ARM pour une surprise persistante, l'ARM perd à l'étape 3 ssi φ_r > R, identité à somme nulle avec le prêteur, condition exacte de gain ; (9) impact GE d'une surprise : dp ≥ 0, dρ ≤ 0, dμ ≥ 0 (= 0 à stock fixe : effet de composition pur), seuil ↑, mobilité ascendante q_RO ↓, persistance λ ↑, vendeurs gagnants, nouveaux acheteurs perdants possibles. - Benchmark numérique :
src/toy_model.py(formules fermées HTM, optimiseur général pour vérifier A4 et non la supposer, chaîne dynastique, équilibre stationnaire, comptabilité, impact GE, simulation myope diagnostique) ;tests/test_toy_model.py: 44 tests passent (.venv/bin/python -m pytest tests/; venv.venvavec numpy 2.5.4, scipy 1.18.1, pytest 9.1.1 épinglés dansrequirements.txt) : identités budgétaires état par état (2 tenures × 2 contrats × 3 surprises × 2 expériences), trajectoire dette nominale/réelle, identité de Fisher, seuil fermé = seuil optimisé (1e-14), inégalités d'Euler strictes sur le support des transferts, croisement unique, signes des 9 statiques comparatives, chaîne de Markov (valeur propre, distribution stationnaire), apurement des deux marchés, condition (C), offre fixe, non-segmentation, somme nulle, ordre FRM/ARM, signes d'impact, impact croissant quand l'offre est moins élastique, transition myope = impact puis retour. - Résultats surprenants ou négatifs : le seuil de croissance d'équilibre ne dépend pas du levier ; la persistance par classes absorbantes est un cas limite sans risque (remplacée par une demi-vie) ; sans segmentation, ni crédit, ni héritage, ni inflation ne bougent les prix ; les effets GE d'une surprise de 10 % sont minuscules dans le benchmark (dp = +0,03 %) parce que le prix absorbe le déplacement de demande ; une version à deux périodes a été abandonnée (hypothèque-ballon ⇒ richesse immobilière nette négative) ; la simulation myope montre une oscillation d'éviction entre cohortes (unités détenues deux périodes, valeur propre ≈ −1) à surveiller en Phase 3.
- Hypothèses fortes : A4 (ménages contraints à la marge, vérifiée numériquement dans le benchmark mais à vérifier dans le modèle complet), A6 (anticipations statiques pour l'impact), demande unitaire de logement, prêteur extérieur au système dynastique, offre « par période » en Partie A.
- Prochaines étapes (Phase 3) : implémenter la Partie B selon §B.9–B.12 ; vérifier A4 au seuil, le croisement unique pour les épargnants, la condition (C) le long de la courbe d'apurement et chercher des équilibres multiples sous offre quasi fixe ; transition à anticipations parfaites avec stock durable ; expériences 1–10 du CLAUDE.md ; ne jamais étiqueter GE un résultat à prix fixes.
2026-10-20 — Phase 3 (implémentation numérique) : EN COURS
Jalon 3.0 — conception (écrit avant le code)
- Modèle implémenté = Partie B de
model_specification.mdavec les réductions suivantes, toutes documentées dansconfigs/baseline.yamletresearch/results_audit.md:- État
(j, z, h, b^m, n_m, a); le taux contractuel FRM n'est pas un état : en transition,n_met la datetidentifient la date d'origination et donc le taux (refinancement = nouvelle origination). - Branches : stay / refinance / move / sell-and-rent / rent / buy. Toutes les branches sauf stay ne dépendent de l'état que par le cash-on-hand → fonctions de valeur
W^B_j(z,x),W^R_j(z,x),W^F_j(z,h,x)sur une grille de cash ; stay sur la grille d'état complète. VFI rétrograde par âge avec recherche sur grille dea'(EGM non retenu : choix discrets × contraintes LTV/DSTI × hypothèque sur grille rendent l'enveloppe supérieure plus fragile que la recherche exhaustive, et le coût numba de la recherche est faible). - Distribution : panel Monte-Carlo de dynasties (paires parent–enfant, phases équiréparties, graine fixe, nombres aléatoires communs) plutôt qu'un histogramme de Young : le lien dynastique (don à l'âge 1 ET succession à l'âge 7, corrélés par l'état du parent) exige la loi jointe parent–enfant, que l'histogramme ne porte pas. Sensibilité à la taille du panel rapportée (exp. 10).
- Anticipation de la succession : loterie à K = 5 points (moyennes conditionnelles par quintile de la distribution simulée des successions), objet d'équilibre (inconnue du Broyden) ; approximation : l'anticipation est inconditionnelle à l'état propre (le lien réalisé est exact dans le panel).
- Contrats : FRM (taux d'origination à vie), TERM5 (k = 1 : réinitialisation à chaque frontière de période = ARM à la fréquence quinquennale, cf. §B.5), ARM (variante stylisée : repricing intra-période, aucune érosion). En ERC stationnaire les trois sont identiques ; ils ne diffèrent qu'en transition.
- Normalisation :
p* = p^{r*} = 1dans la base par choix des échelles d'offreH̄,H̄_r(calibration = demande simulée à prix unitaire), comme chez KMV.
- État
- Algorithme ERC : Broyden amorti sur
(p, p^r, loterie K)avec Jacobien initial par différences finies ; transition MIT : tir en espace des séquences sur(p_t, p^r_t)_{t<T}, Jacobien par différences finies parallélisé (multiprocessing), T = 16 périodes (80 ans), stock durableH_t = (1-δ_H)H_{t-1} + δ_H H̄ p_t^ε. - Étiquetage : tout résultat à prix fixes est marqué
partial equilibrium (prices fixed)dans les fichiers de résultats (equilibrium= "GE" | "PE").
Jalon 3.1 — code écrit et validé unitairement (2026-10-20, ~3 h après le début)
configs/baseline.yaml(tous les paramètres, unités, provenance ; ν = 2, x̲ = 1 retenus après balayage pour des dons ≈ 2 années de revenu),configs/scenarios.yaml(≈ 60 scénarios en 8 groupes).src/model.py(conversion annuel → 5 ans, Rouwenhorst, annuité à paiement de début de période — un premier essai avec paiement de fin de période rendait l'emprunt artificiellement plus coûteux que les dépôts (~20 % du paiement) et faisait disparaître l'hypothèque chez les ménages non contraints ; corrigé),src/household_solver.py(noyaux numba, VFI par âge, 4 branches sur grille de cash + stay sur l'état complet, raffinement par section dorée dea', transformée « don », loterie successorale, résidus de Bellman hors grille),src/distributions.py(panel de dynasties par paires, nombres aléatoires communs, loterie, Gini, rang–rang, cohortes pour le bien-être),src/equilibrium.py(ERC : d'abord Broyden sur 7 inconnues — abandonné car la demande est lisse mais très non linéaire en p/p̃_r (la tenure bascule de 15–20 pp pour 5 % de prix relatif) et le bruit MC ~1e-4 corrompait les mises à jour ; remplacé par un apurement emboîté Illinois (locatif dans propriétaire) + point fixe amorti sur loterie et rebate ; transition MIT par tir en espace des séquences, Jacobien FD parallèle, Broyden avec rafraîchissement),src/calibration.py,src/simulation.py(10 expériences),src/robustness.py,src/figures.py(14 figures),src/tables.py(9 tables +numbers.tex),Makefile,requirements.txtépinglé.- Tests :
tests/test_model.py,test_solver.py,test_simulation.py(+conftest.py) — 22 tests rapides verts (identités budgétaires branche par branche à 1e-8, loi de la dette, faisabilité LTV/DSTI, condition terminale, lien dynastique, loterie, nombres aléatoires communs, monotonie des valeurs, croisement unique, seuil ↑ en p et θ, résidus de Bellman) ; 2 tests lents (ERC petit + comptabilité de la surprise) marquésslow. - Diagnostics à ce stade (base, p = 1) : résidus de Bellman moyens 7e-4 (propriétaires) / 2e-4 (locataires), aucune vente forcée, 0,003 % de politiques tronquées ; une évaluation du bloc ménages + distribution ≈ 1 s ; ERC ≈ 1–2 min ; transition GE : Jacobien 32 colonnes ≈ 90 s sur 8 processus.
- Résultat contraire déjà visible : après une surprise d'inflation de 10 %, la demande de logement baisse à l'impact (p₀ ≈ −0,5 %) parce que les dépôts nominaux des ménages (3,9) dépassent la dette hypothécaire (2,4) dans la base : les jeunes locataires qui épargnent pour la mise de fonds perdent ; la demande remonte ensuite via les transferts. À documenter dans
results_audit.md(ne pas forcer).
Jalon 3.2 — pipeline validé de bout en bout (quick runs, 09:00–09:14) ; lancement du run complet à 09:14
make simulate-quick(panel 24 000 dynasties, T = 8, 3 itérations Broyden) : base, scénarios ERC (ex.bequests_off→ p = 0,934, convergé en 126 s), transitions FRM/terme 5 ans, tables d'impact et de bien-être,diagnostics.json: EXIT 0.- Corrections issues des quick runs : (i) Broyden sur (p, p̃_r) abandonné dans les tours ≥ 2 au profit de la régula falsi emboîtée avec départ à chaud (le bruit MC des différences d'excès de demande, ~1e-3 pour 0,5 % de prix, faisait échouer la recherche linéaire) ; (ii) tolérance ERC 5e-4 (prix d'équilibre déterminé à ±0,05 %), tolérance de transition 1,5e-3 (coupes transversales à une seule période) avec arrêt au plancher de bruit après un rafraîchissement du Jacobien ; (iii) choix de taille de logement interpolé en cash (valeurs par taille stockées) ; (iv) bien-être : la décomposition U + Φ simulée s'écartait de 1–5 % de la fonction de valeur (politiques simulées au plus proche point de grille) et gonflait le CEV (5,5 % au lieu de ~0,6 %) → U := V − Φ (identité exacte à la base ; U simulé conservé comme contrôle) ; (v)
pkillne tuait pas les processusspawnorphelins (journaux pollués) → tuermultiprocessing.spawnavant toute relance. - Premiers signes (quick, à confirmer sur le run complet) : surprise de 10 % FRM : p₀ ≈ −0,6 %, ρ₀ ≈ −0,6 %, propriété +0,1 pp en ERC contre −0,15 pp à prix fixes ; le prêteur gagne (dépôts 3,9 > dette 2,4) ; terme 5 ans persistant : p₀ ≈ −1,6 %.
Jalon 3.3 — run complet (lancé 09:26 après deux faux départs : glob zsh et processus spawn orphelins)
- Découverte pendant le premier run complet : discontinuité réelle de l'excès de demande (saut de 1,5 % de la demande locative entre p̃_r = 0,9730 et 0,9735 dans
eps_200_theta005) causée par des atomes de la distribution de cash (entrants sans don et locataires contraints à a = 0 partagent le même cash à z donné et basculent de tenure simultanément). Remède : composante de revenu transitoire i.i.d. non anticipée (σ = 0,03 par période,income.sigma_transitory), réalisée avant les décisions, qui étale les atomes ; la fonction redevient continue (racine encadrée) ; identités budgétaires vérifiées avec le revenu réalisé (test dédié). Documenté dansresults_audit.md§0. - Étape stationnaire : 48/48 scénarios convergés en ERC (résidus relatifs < 5e-4, sauf
sample_smallarrêté au plancher de bruit 7,8e-4, étiqueté) en 17 min (9 processus) ; base en 8 s (p* = 1,0000, loterie en 5 tours). - Balayage de multiplicité : excès de demande propriétaire strictement décroissant en p sur [0,80 ; 1,25] avec une seule racine, pour la base, ε = 0,05 et ε = 0,05 × θ = 0,05 ; dμ/dp < 0 partout (analogue de la condition (C)) → aucun équilibre multiple.
- Transitions (16, 2 en parallèle, Jacobien FD sur 8 processus chacune) lancées à t = 21,7 min.
research/results_audit.md: §0 (algorithme), §1–3, §5a, §6–8, §10 rédigés avec les chiffres du run complet ; §4, §5b, §9 en attente des transitions.
Jalon 3.4 — run complet terminé (all_done à 59,8 min ; 09:26 → 10:26)
- Étapes : base 8 s ; 48 scénarios stationnaires 17 min (9 processus) ; balayage de multiplicité 5 min ; 16 transitions 50 min (2 en parallèle) ; bien-être 1 min ;
robustness.pyOK. - Convergence : 48/48 ERC stationnaires (dont
sample_smallau plancher de bruit 7,8e-4) ; transitions : 12/16 convergées (résidu ≤ 1,5e-3), 3 arrêtées au plancher de bruit juste au-dessus (frm_level 2,2e-3, unindexed_wages 2,0e-3, fixed_supply 3,1e-3 — étiquetéesGE NOT CONVERGED), 1 échec du tir à froid (rate_shock_theta005, choc de taux réel sous θ = 0,05 : résidu initial 0,17, pas de Broyden rejetés) → pré-phase de tâtonnement amorti ajoutée àsolve_transition(gros chocs) + option--rerun-transition … --warm-from …; relance en cours. - Résultats contraires aux propositions (détaillés dans
results_audit.md) : (i) le prix réel baisse après une surprise d'inflation (p₀ ≈ −0,5 %) parce que les ménages sont créanciers nominaux nets (dépôts 4,1 > dette 2,5) — Prop. 9 suppose l'inverse ; (ii) la neutralité sans segmentation (Prop. 7) ne tient pas avec marge intensive (p₀ = −0,39 % vs −0,45 %) ; (iii) le seuil d'accession n'est pas monotone en θ pour le z médian en EP (valeur d'option d'attendre), dans la sensibilité de grille ; (iv) aucun équilibre multiple (balayages monotones) ; (v) l'élasticité d'offre de long terme ne compte presque pas à l'impact (élasticité d'impact εδ_H). - Résultats conformes : ordre des contrats FRM = terme 5 ans > ARM (niveau), FRM > terme > ARM (persistant), terme pénalisé par une réponse de taux réel (Prop. 8) ; identité à somme nulle ; absorption de 80–90 % de la réponse de propriété par les prix ; persistance intergénérationnelle nulle sans transferts (Prop. 5) ; tilt de l'inflation anticipée par la contrainte DSTI nominale (Prop. 3) ; q_RO ↓ et λ ↑ à l'impact (Prop. 9.3, effets de composition < 0,1 pp).
Jalon 3.5 — Phase 3 livrée (10:40)
rate_shock_theta005relancé deux fois (départ à chaud puis tâtonnement 80 pas + Jacobien) : le tir s'arrête au résidu 8,8e-3 (étiquetéGE NOT CONVERGED), p₀ = −16,2 % cohérent avec θ = 0,20 (−15,5 %) et θ = 0,40 (−14,6 %). Bilan transitions : 12/16 convergées à 1,5e-3, 3 à 2–3e-3, 1 à 8,8e-3 — toutes étiquetées avec leur résidu dansdiagnostics.csvet la Table 6.- Livrables finaux : 14 figures (PDF + PNG), 9 tables LaTeX +
numbers.tex(164 macros),results/data/(358 fichiers CSV/JSON commités, 5,6 Mo ;.npz/.pkl/journaux exclus),research/results_audit.md(brouillon par expérience avec étiquettes identité / théorie / simulation GE / PE), 69 tests verts,make simulatereproductible (60 min). - Temps de calcul (18 cœurs) : base 8 s ; ERC stationnaire 45–300 s ; transition 2,5–8 min ; run complet 59,8 min + relances 13 min.
2026-10-20 — Phase 4 (audit final, réconciliation théorie–simulation, manuscrit v1.0) : FAIT
A. Audit final — research/results_audit.md (version finale)
- Par expérience (1–10) : hypothèse, paramètres, algorithme, convergence (résidus réels ; non convergés nommés :
frm_level2,2e-3,frm_level_unindexed_wages2,0e-3,frm_level_fixed_supply3,1e-3,rate_shock_theta0058,8e-3 ;sample_small7,8e-4), résultats, limites, robustesse, et étiquette de ce qui est réellement soutenu : identité / théorie / simulation GE / simulation PE (prix fixes) / A6 / conjecture. Décompte exact : 45 ERC stationnaires (44 dans la tolérance), 5 relances PE, 3 balayages de multiplicité, 16 transitions (12 dans la tolérance). - Les trois désaccords théorie–simulation classés et réconciliés (tableau dédié) : (1) Prop. 9 — la prémisse « hypothèque = seule position nominale » n'était pas énoncée (impliquée par A4) ; rendue explicite (Assumption 7), Prop. 9 restreinte, Corollary 2 prouvé : signe de $dp$ = signe de $\Xi = \mu^* g(\hat y_O)(\delta_3 p^* - Rn^O) - (1-\mu^*) g(\hat y_R) Rn^R$ ; la baisse simulée est le cas $\Xi<0$ ; les deux écarts résiduels (loyer qui baisse au lieu de monter : marge intensive ; seuil qui monte : dépôts des entrants) nommés dans Remark 3 et rapportés comme résultats. (2) Prop. 7 — « demande unitaire » mise dans l'énoncé (Remark 2) ; résultat Part B rapporté (−0,39 % vs −0,45 %, effet de richesse sur la demande totale). (3) Prop. 2 — restriction exacte nommée : contrainte LTV serrée + décision de tenure une fois pour toutes ($V^R$ indépendant de $\theta$) (Remark 1) ; non-monotonie au $z$ médian rapportée avec sa sensibilité de grille ±0,07. Ni la théorie ni les simulations n'ont été forcées.
research/propositions.mdréécrit (statuts P / P-scoped / C / N + colonne « Sim ») ;research/failed_hypotheses.mdcomplété (§10–15 : signe de $dp$, neutralité, monotonie en $\theta$, multiplicité non trouvée, élasticité de l'offre sans effet mesurable sur la mobilité, moments non soutenus).- Preuves :
paper/appendix_proofs.texréorganisé (énoncés danssections/equilibrium.tex, lemmes + preuves + remarques de lacune en annexe A ; preuve commune Prop. 9 / Cor. 2) ;appendix_proofs_standalone.tex= modèle + énoncés + preuves, compile (22 p., 0 erreur).
B. Porte d'intégrité
make test: 69 tests verts (21 s). Figures/tables référencées : toutes présentes (make papercopieresults/figures/*.pdf→paper/figures/,results/tables/*.tex→paper/tables/). Chaque chiffre du texte est une macro denumbers.tex(≈ 2 500 macros, dont les jumeaux…Abspour les valeurs négatives et le signe moins\ensuremath{-}) ; vérification par script : 0 macro utilisée non définie. Bibliographie : 72 entrées, 0 avertissement BibTeX.
C. Manuscrit — paper/main.tex v1.0
- Métadonnées : WP 18, titre + sous-titre, October 2026, Version 1.0, résumé 217 mots avec résultats réels (dont négatifs), 7 mots-clés, JEL R21, R31, D31, D91, E31, G51 (E44 écarté : pas de friction de marché financier au-delà des contraintes des ménages).
\hypersetup{pdftitle,pdfauthor}; amsthm selonwp_style_audit.md§6. - Sections (
paper/sections/) : introduction, literature (critique, par mécanismes, 72 réf. seulement), model (Part A + Part B), equilibrium (A1–A7, Prop. 1–9, Cor. 1–2, Remarks 1–3, concepts d'équilibre Part B), computation, baseline, inflation, supply_policy_welfare, sensitivity_conclusion ; annexes A (preuves), B (algorithme, paramètres, diagnostics, robustesse), C (notation). Sections du gabarit inutilisées supprimées. - Figures : 13 dans le texte + 1 en annexe (titres dans l'image retirés, légendes LaTeX) ; tables : 5 dans le texte + 4 en annexe (tables larges en
\resizebox+ note en minipage ; colonne « p peak » redondante retirée de la table d'inflation).
D. QA
cd paper && make: 0!, 0 référence/citation indéfinie, 0 avertissement BibTeX, overfull max 3,7 pt (< 10 pt). PDF : 65 pages = 2 (titre, résumé) + 45 pages de texte principal (p. 3–47) + références (6) + annexes (12). Page 1 et page 2 vérifiées avec python3 -I + fitz (Working Paper No. 18, titre, auteur, October 2026, Version 1.0 ; Abstract / Keywords / JEL). Relecture intégrale du texte extrait : cohérence chiffres/tables, formulation des nombres négatifs corrigée (macros…Abs), légende Fig. 7 alignée sur la figure, libellés des lignes de la table de bien-être.make all: test → simulate (sauté, résultats présents) → figures → tables → paper, EXIT 0.make cleangardemain.pdf.- README.md final (gabarit UQO : Status v1.0 not yet submitted, Quick start, Data = calibration illustrative, Notes = dérogations).
Verdict de maturité
Papier théorique complet et reproductible, résultats honnêtement étiquetés ; calibration illustrative et deux moments non soutenus (profil de propriété après 65 ans, part des dons) ; cible réaliste : Journal of Housing Economics ou Regional Science and Urban Economics (ou Canadian Journal of Economics après une calibration des positions nominales nettes par âge et tenure à la Meh–Terajima et un motif de legs sur le logement — prochaines étapes nommées dans la conclusion).