SPB Git

Ch. 21 livré (35 p., 12 750 mots, 21 tests) ; fusion des registres par chapitre ; étiquettes sans doublon

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Oct 31, 2026) parent 66a30b7 Browse files

25 changed files +347 −4

modified analysis/python/figures/ch30_flux.py +1 −1
@@ -27,7 +27,7 @@ def main():
27 ax2.scatter([T], [d["valeur"] / 1000], color=palette.cat[3], zorder=5) 27 ax2.scatter([T], [d["valeur"] / 1000], color=palette.cat[3], zorder=5)
28 ax2.axhline(d["valeur"] / 1000, color=palette.ink2, lw=0.8, ls="--") 28 ax2.axhline(d["valeur"] / 1000, color=palette.ink2, lw=0.8, ls="--")
29 ax2.annotate(f"$V_0$ = {fmt_milliers(d['valeur'])} \\$", xy=(1.2, d["valeur"] / 1000), va="bottom", fontsize=8, color=palette.ink) 29 ax2.annotate(f"$V_0$ = {fmt_milliers(d['valeur'])} \\$", xy=(1.2, d["valeur"] / 1000), va="bottom", fontsize=8, color=palette.ink)
30− ax2.annotate(f"flux : {fmt_milliers(d['va_flux'])} \\$ ({d['va_flux']/d['valeur']*100:.0f} %)", xy=(T - 0.1, tt["va_cumulee"].iloc[-1] / 1000 - 40), ha="right", va="top", fontsize=8) 30+ ax2.annotate(f"flux : {fmt_milliers(d['va_flux'])} \\$ ({d['va_flux']/d['valeur']*100:.0f} %)", xy=(T - 0.35, tt["va_cumulee"].iloc[-1] / 1000 - 90), ha="right", va="top", fontsize=8)
31 ax2.annotate(f"VT : {fmt_milliers(d['va_terminale'])} \\$ ({d['part_terminale']*100:.0f} %)", xy=(T - 0.1, (tt["va_cumulee"].iloc[-1] + d["valeur"]) / 2000), ha="right", va="center", fontsize=8) 31 ax2.annotate(f"VT : {fmt_milliers(d['va_terminale'])} \\$ ({d['part_terminale']*100:.0f} %)", xy=(T - 0.1, (tt["va_cumulee"].iloc[-1] + d["valeur"]) / 2000), ha="right", va="center", fontsize=8)
32 ax2.set_ylabel("Milliers de dollars"); ax2.set_xlabel("Année de projection") 32 ax2.set_ylabel("Milliers de dollars"); ax2.set_xlabel("Année de projection")
33 ax2.set_xticks(x); ax2.set_ylim(0, d["valeur"] / 1000 * 1.12) 33 ax2.set_xticks(x); ax2.set_ylim(0, d["valeur"] / 1000 * 1.12)
modified assets/figures/ch30/ch30-fig-flux.pdf +0 −0

Binary file not shown.

modified assets/figures/ch30/ch30-fig-gdc.pdf +0 −0

Binary file not shown.

modified assets/figures/ch30/ch30-fig-loyers.pdf +0 −0

Binary file not shown.

modified assets/figures/ch30/ch30-fig-surface.pdf +0 −0

Binary file not shown.

modified assets/figures/ch30/ch30-fig-tornade.pdf +0 −0

Binary file not shown.

modified manuscript/chapters/ch21.tex +1 −1
@@ -418,7 +418,7 @@ La \cref{fig:21:sensibilite} complète la grille par un diagramme en tornade où
418 L'élasticité de taille n'intervient pas dans le calcul par composantes, mais elle conditionne tout usage du coût unitaire du sujet pour d'autres bâtiments. Le \cref{tab:21:elasticite} transpose le coût unitaire de \parmsq{2409} à une maison de \msq{140} et à une maison de \msq{200} pour des élasticités de $-0{,}05$ à $-0{,}20$. Pour la maison de \msq{200}, le coût total varie de \dollars{477287} à \dollars{463711} selon l'élasticité, soit un écart de 2,9 \% ; pour celle de \msq{140}, de \dollars{340112} à \dollars{348599}, soit 2,5 \%. L'élasticité est donc un paramètre de second ordre tant que la superficie du bâtiment visé reste à moins de 25 \% de celle de la référence ; au-delà, l'erreur croît et il vaut mieux changer de référence que d'extrapoler. L'exemple inverse, un barème de \parmsq{2300} établi sur des maisons de \msq{200} et appliqué au sujet de \msq{165}, donne \dollars{379500} sans correction et \dollars{386871} avec une élasticité de $-0{,}10$ : ignorer la correction sous-estime le coût de 1,9 \%, un écart modeste mais systématique, toujours dans le même sens pour les bâtiments plus petits que la référence. 418 L'élasticité de taille n'intervient pas dans le calcul par composantes, mais elle conditionne tout usage du coût unitaire du sujet pour d'autres bâtiments. Le \cref{tab:21:elasticite} transpose le coût unitaire de \parmsq{2409} à une maison de \msq{140} et à une maison de \msq{200} pour des élasticités de $-0{,}05$ à $-0{,}20$. Pour la maison de \msq{200}, le coût total varie de \dollars{477287} à \dollars{463711} selon l'élasticité, soit un écart de 2,9 \% ; pour celle de \msq{140}, de \dollars{340112} à \dollars{348599}, soit 2,5 \%. L'élasticité est donc un paramètre de second ordre tant que la superficie du bâtiment visé reste à moins de 25 \% de celle de la référence ; au-delà, l'erreur croît et il vaut mieux changer de référence que d'extrapoler. L'exemple inverse, un barème de \parmsq{2300} établi sur des maisons de \msq{200} et appliqué au sujet de \msq{165}, donne \dollars{379500} sans correction et \dollars{386871} avec une élasticité de $-0{,}10$ : ignorer la correction sous-estime le coût de 1,9 \%, un écart modeste mais systématique, toujours dans le même sens pour les bâtiments plus petits que la référence.
419 419
420 \begin{table}[tbp] 420 \begin{table}[tbp]
421−\caption{Transposition du coût unitaire du sujet (\parmsq{2409} pour \msq{165}) à d'autres superficies selon l'élasticité de taille, \cref{eq:21:elasticite}.}\label{tab:21:elasticite} 421+\caption{Transposition du coût unitaire du sujet (\parmsq{2409} pour \msq{165}) à d'autres superficies selon l'élasticité de taille (\cref{eq:21:elasticite}).}\label{tab:21:elasticite}
422 \centering\small 422 \centering\small
423 \begin{tabular}{@{}S[table-format=-1.2] S[table-format=4.0] S[table-format=6.0] S[table-format=4.0] S[table-format=6.0]@{}} 423 \begin{tabular}{@{}S[table-format=-1.2] S[table-format=4.0] S[table-format=6.0] S[table-format=4.0] S[table-format=6.0]@{}}
424 \toprule 424 \toprule
added references/lib-ch30.bib +14 −0
@@ -0,0 +1,14 @@
1+% ==============================================================================
2+% lib-ch30.bib — Chapitre 30 (Flux actualisés et valeur terminale)
3+% Aucune nouvelle entrée : le chapitre ne cite que des clés déjà présentes dans
4+% references/library.bib (geltnerMillerClaytonEichholtz2014, baumCrosbyDevaney2021,
5+% gordonShapiro1956, frenchGabrielli2004, frenchGabrielli2005, hoesliJaniBender2006,
6+% plazziTorousValkanov2010, ghysels2013, bokhariGeltner2018, hardingRosenthalSirmans2007,
7+% sivitanidouSivitanides1999, chervachidzeWheaton2013, ducaLing2020, pyhrr1973, wofford1978,
8+% fisherMartin2007, brueggemanFisher2022, appraisal2026, arnott1995, kholodilin2024,
9+% bdcvalet, bdc20261028, bdctauxhypothecaires2026, cbrecaprates2026q3, schlLocatif2025,
10+% schlpmh2026ete, schlaphselect, statcanipc, talIndices2026, decret1455_2025,
11+% reglCriteresFixation, ccq, loi31_2024, ivs2025, oeaqNormes, quebecMutations).
12+% Besoin signalé (non ajouté faute de vérification dans ce lot) : Loi sur l'intérêt,
13+% L.R.C. 1985, c. I-15 (Justice Canada) — voir verification/chapters/ch30-claims.csv CLM-30-14.
14+% ==============================================================================
modified references/library.bib +10 −0
@@ -4432,3 +4432,13 @@
4432 urldate = {2026-10-31}, 4432 urldate = {2026-10-31},
4433 note = {Frais de gestion : forfait de 5~\%, frais réels admissibles jusqu'à 10~\% des revenus annuels de l'immeuble} 4433 note = {Frais de gestion : forfait de 5~\%, frais réels admissibles jusqu'à 10~\% des revenus annuels de l'immeuble}
4434 } 4434 }
4435+
4436+@manual{arcRC4028,
4437+ author = {{Agence du revenu du Canada}},
4438+ title = {RC4028 --- Remboursement de la TPS/TVH pour habitations neuves},
4439+ organization = {Agence du revenu du Canada},
4440+ year = {2026},
4441+ note = {Révision 10/2026 ; consulté le 31 octobre 2026 ; seuil de 450~000~\$ pour la maison construite par le propriétaire et remboursement pour les acheteurs d'une première habitation (travaux commencés à compter du 20 mars 2025 ; 1~M\$ / 1,5~M\$) lus sur la page ; autres paramètres (36~\%, 6~300~\$, 350~000~\$) non vérifiés mot à mot},
4442+ url = {https://www.canada.ca/fr/agence-revenu/services/formulaires-publications/publications/rc4028/remboursement-tps-tvh-habitations-neuves.html},
4443+ urldate = {2026-10-31}
4444+}
modified sources/registry.csv +1 −0
@@ -289,3 +289,4 @@ SRC-E-064,jeu_de_donnees,Richesse foncière uniformisée 2026,MAMH via Données
289 SRC-E-065,jeu_de_donnees,Profil financier des municipalités locales 2024-2025 (données 2025),MAMH via Données Québec,2026-10-28,https://www.donneesquebec.ca/recherche/dataset/profil-financier-des-municipalites-locales,2026-10-31,verifie,ch. 9; 48,CC BY 4.0. data/raw/mamh_profil_financier_2025/. 289 SRC-E-065,jeu_de_donnees,Profil financier des municipalités locales 2024-2025 (données 2025),MAMH via Données Québec,2026-10-28,https://www.donneesquebec.ca/recherche/dataset/profil-financier-des-municipalites-locales,2026-10-31,verifie,ch. 9; 48,CC BY 4.0. data/raw/mamh_profil_financier_2025/.
290 SRC-E-066,rapport,Rapport mensuel sur le marché immobilier au Québec — août 2026 (RMR Ottawa-Gatineau),JLR (Equifax),2026-09,https://solutions.jlr.ca/hubfs/Etudes_et_rapports/2026-08_Rapport_Mensuel.pdf?hsLang=fr,2026-10-31,verifie,ch. 13; 45,"Industrie (actes publiés au Registre foncier). Unifamiliale 522 741 $ (août 2026), 12 mois 495 000 $ ; 2-5 log. 545 750 $." 290 SRC-E-066,rapport,Rapport mensuel sur le marché immobilier au Québec — août 2026 (RMR Ottawa-Gatineau),JLR (Equifax),2026-09,https://solutions.jlr.ca/hubfs/Etudes_et_rapports/2026-08_Rapport_Mensuel.pdf?hsLang=fr,2026-10-31,verifie,ch. 13; 45,"Industrie (actes publiés au Registre foncier). Unifamiliale 522 741 $ (août 2026), 12 mois 495 000 $ ; 2-5 log. 545 750 $."
291 SRC-E-067,article,Banque du Canada — décision du 28 octobre 2026 (analyse),Desjardins Études économiques,2026-10-28,https://www.desjardins.com/fr/epargne-placements/etudes-economiques/canada-bdc-28-octobre-2026.html,2026-10-31,verifie,ch. 3,"Secondaire (institution financière) ; confirme +25 pb à 2,50 %, première hausse depuis juillet 2023." 291 SRC-E-067,article,Banque du Canada — décision du 28 octobre 2026 (analyse),Desjardins Études économiques,2026-10-28,https://www.desjardins.com/fr/epargne-placements/etudes-economiques/canada-bdc-28-octobre-2026.html,2026-10-31,verifie,ch. 3,"Secondaire (institution financière) ; confirme +25 pb à 2,50 %, première hausse depuis juillet 2023."
292+SRC-21-001,guide,RC4028 — Remboursement de la TPS/TVH pour habitations neuves,Agence du revenu du Canada,Rév. 10/2026,https://www.canada.ca/fr/agence-revenu/services/formulaires-publications/publications/rc4028/remboursement-tps-tvh-habitations-neuves.html,2026-10-31,partiellement_verifie,21,"Lu par agent web-fetch le 2026-10-31 : seuil 450 000 $ (maison construite par le propriétaire) verbatim ; remboursement premiers acheteurs (travaux dès le 20 mars 2025, 1 M$ / 1,5 M$) verbatim ; 36 % / 6 300 $ / 350 000 $ non vérifiés mot à mot. Pages Revenu Québec (TVQ) HTTP 403."
modified tools/compile_chapter.sh +1 −1
@@ -26,7 +26,7 @@ WRAP="$ROOT/manuscript/_wrap_$JOB.tex"
26 printf '%s\n' '\printbibliography' 26 printf '%s\n' '\printbibliography'
27 printf '%s\n' '\end{document}' 27 printf '%s\n' '\end{document}'
28 } > "$WRAP" 28 } > "$WRAP"
29−python3 "$ROOT/tools/make_labels.py" "$OUT/_labels.tex" 29+python3 "$ROOT/tools/make_labels.py" "$OUT/_labels.tex" "${N:-x}"
30 cd "$ROOT/manuscript"; export TEXINPUTS="../styles:${TEXINPUTS:-}" 30 cd "$ROOT/manuscript"; export TEXINPUTS="../styles:${TEXINPUTS:-}"
31 latexmk -g -lualatex -interaction=nonstopmode -halt-on-error -file-line-error -bibtex -e "\$biber=q{$ROOT/tools/biber %O %S};" -output-directory="$OUT" "$WRAP" >"$OUT/latexmk.out" 2>&1 31 latexmk -g -lualatex -interaction=nonstopmode -halt-on-error -file-line-error -bibtex -e "\$biber=q{$ROOT/tools/biber %O %S};" -output-directory="$OUT" "$WRAP" >"$OUT/latexmk.out" 2>&1
32 RC=$? 32 RC=$?
modified tools/make_labels.py +4 −1
@@ -4,12 +4,15 @@ se résolvent lors de la compilation isolée d'un chapitre (tools/compile_chapte
4 import json, sys, pathlib 4 import json, sys, pathlib
5 ROOT = pathlib.Path(__file__).resolve().parents[1] 5 ROOT = pathlib.Path(__file__).resolve().parents[1]
6 t = json.load(open(ROOT / "manuscript/chapters/TITRES.json", encoding="utf-8")) 6 t = json.load(open(ROOT / "manuscript/chapters/TITRES.json", encoding="utf-8"))
7+exclure = int(sys.argv[2]) if len(sys.argv) > 2 and sys.argv[2].isdigit() else -1
7 out = ["\\makeatletter"] 8 out = ["\\makeatletter"]
8 def lab(name, ref, title, anchor, kind): 9 def lab(name, ref, title, anchor, kind):
9 out.append("\\@newl@bel{r}{%s}{{%s}{1}{%s}{%s}{}}" % (name, ref, title, anchor)) 10 out.append("\\@newl@bel{r}{%s}{{%s}{1}{%s}{%s}{}}" % (name, ref, title, anchor))
10 out.append("\\@newl@bel{r}{%s@cref}{{[%s][%s][]%s}{[1][1][]1}{}{}{}}" % (name, kind, ref, ref)) 11 out.append("\\@newl@bel{r}{%s@cref}{{[%s][%s][]%s}{[1][1][]1}{}{}{}}" % (name, kind, ref, ref))
11 for n, title in t.items(): 12 for n, title in t.items():
12− n = int(n); lab(f"ch:{n:02d}", str(n), title, f"chapter.{n}", "chapter") 13+ n = int(n)
14+ if n == exclure: continue
15+ lab(f"ch:{n:02d}", str(n), title, f"chapter.{n}", "chapter")
13 if n < 10: lab(f"ch:{n}", str(n), title, f"chapter.{n}", "chapter") 16 if n < 10: lab(f"ch:{n}", str(n), title, f"chapter.{n}", "chapter")
14 for L, k in zip("ABCDEF", ["glossaire", "formulaires-inspection", "modeles-rapport", "conventions-calcul", "scripts-classeurs", "solutions"]): 17 for L, k in zip("ABCDEF", ["glossaire", "formulaires-inspection", "modeles-rapport", "conventions-calcul", "scripts-classeurs", "solutions"]):
15 lab(f"app:{k}", L, "", f"appendix.{L}", "chapter") 18 lab(f"app:{k}", L, "", f"appendix.{L}", "chapter")
modified verification/calculations.csv +53 −0
@@ -1 +1,54 @@
1 id,chapitre,description,script,test,resultat_attendu,resultat_obtenu,statut,date 1 id,chapitre,description,script,test,resultat_attendu,resultat_obtenu,statut,date
2+CALC-16-01,16,Entonnoir de sélection (600→236→40→27→16→5),analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_entonnoir_et_comparables,600;236;40;27;16;5,600;236;40;27;16;5,verifie,2026-10-31
3+CALC-16-02,16,Comparables retenus et prix,analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_entonnoir_et_comparables,G0574 598000;G0404 506500;G0468 624500;G0477 538000;G0575 513500,idem,verifie,2026-10-31
4+CALC-16-03,16,Indication brute $/m² médian × 165 m²,analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_indication_brute,551029,551029,verifie,2026-10-31
5+CALC-16-04,16,Statistiques $/m² candidats (méd/min/max) et prix bruts (min/max/moy/méd),analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_indication_brute,3286/2361/4140 ; 506500/624500/556100/538000,idem,verifie,2026-10-31
6+CALC-16-05,16,Sensibilité (48 combinaisons) min/max/écart-type,analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_sensibilite,525768/608014/24069,idem,verifie,2026-10-31
7+CALC-16-06,16,Solutions des exercices 16.1 16.3 16.4 16.5 16.7,solutions/ch16.tex,analysis/python/tests/test_ch16.py::test_solutions_exercices,569902 ; 0.509/2.504/1.807 ; 28200 ; 0.590/0.262/0.148 ; k*=4.27,idem,verifie,2026-10-31
8+CALC-21-001,21,Coûts directs du devis cas 1 (33 postes),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_totaux_cites,298826.17,298826.17,verifie,2026-10-31
9+CALC-21-002,21,Coûts indirects du devis cas 1 (5 postes) et taux I/D,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_totaux_cites,62598.68 ; 20.95 %,62598.68 ; 20.95 %,verifie,2026-10-31
10+CALC-21-003,21,Regroupement du devis en 7 blocs (somme = D+I),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_regroupement,361424.85,361424.85,verifie,2026-10-31
11+CALC-21-004,21,Incitatif 10 % sur D+I et coût neuf C_N = D(1+τI)(1+τE),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_identite_multiplicative,36142.49 ; 397567.33,36142.49 ; 397567.33,verifie,2026-10-31
12+CALC-21-005,21,Variante assiette directs seuls et écart D·τI·τE,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_variante_assiette_direct,391307.47 ; 6259.87,391307.47 ; 6259.87,verifie,2026-10-31
13+CALC-21-006,21,Coûts unitaires ($/m² et $/pi²) sur 165 m² habitables et 190 m² bruts,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_unitaires,2409 / 223.8 ; 2092 / 194.4,2409 / 223.8 ; 2092 / 194.4,verifie,2026-10-31
14+CALC-21-007,21,Fourchette Altus 155-215 $/pi² appliquée à 2045 pi² bruts et 1776 pi² habitables,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_comparaison_altus,316997-439705 (milieu 378351) ; 275287-381849,idem,verifie,2026-10-31
15+CALC-21-008,21,Lecture IPCB Montréal 18-10-0289-01 (valeurs du tableau 21.4),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestIPCB::test_valeurs_tableau,maison individuelle 66.1→116.5 ; résidentiel 65.5→117.8,idem,verifie,2026-10-31
16+CALC-21-009,21,Variation annuelle IPCB T3 2025→T3 2026 et ratios d'indexation,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestIPCB::test_ratios_et_variations,8.57 % ; 1.7625 ; 1.620 ; 6.15 %/an,idem,verifie,2026-10-31
17+CALC-21-010,21,Exemples d'indexation (C_N en $ de 2021/2019 ; 290 000 $ de 2019 → 2026 ; erreur de série),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestIPCB::test_indexation_exemples,294507 ; 245366 ; 469889 ; −5.9 %,idem,verifie,2026-10-31
18+CALC-21-011,21,Grille de sensibilité indirects × incitatif (min/max/étendue),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestSensibilite::test_grille,351420-436436 (24.2 %),idem,verifie,2026-10-31
19+CALC-21-012,21,Tornade (indirects ±5 pts ; incitatif 5-15 % ; indice ±8.6 %),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestSensibilite::test_tornade,381132-414003 ; 379496-415639 ; 366171-431655,idem,verifie,2026-10-31
20+CALC-21-013,21,Ajustement de taille (élasticités −0.05 à −0.20 ; 140 et 200 m² ; barème 2300 $/m²),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestSensibilite::test_elasticite,477287/463711 ; 340112/348599 ; 386871 vs 379500,idem,verifie,2026-10-31
21+CALC-21-014,21,Exercices 21.1 à 21.7 (solutions),analysis/python/tests/test_ch21.py,analysis/python/tests/test_ch21.py::TestExercices,voir solutions/ch21.tex,idem,verifie,2026-10-31
22+CALC-29-001,29,RBP contractuel du cas 3 (12 baux × 12),analysis/python/cases/ch29_capitalisation.py (traite.cas3.revenus),analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,165540,165540.00,verifie,2026-10-31
23+CALC-29-002,29,"RBE = RBP(1−3,9 %) + autres revenus 9 360 $",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,168443.94,168443.94,verifie,2026-10-31
24+CALC-29-003,29,"Dépenses normalisées hors réserve (taxes sur rôle 2 200 000 $, postes 2025 × 1,03, gestion 4 % RBE)",analysis/python/cases/ch29_capitalisation.py (traite.cas3.depenses_normalisees),analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,70385.19,70385.19,verifie,2026-10-31
25+CALC-29-004,29,RNE normalisé après réserve 8 103 $ (= RNE année 1 des ch. 30 et 47),analysis/python/cases/ch29_capitalisation.py (traite.cas3.rne),analysis/python/tests/test_ch29.py::test_coherence_avec_cas3_partage,89955.75,89955.75,verifie,2026-10-31
26+CALC-29-005,29,"Taux extraits : médiane / moyenne / pondérée RNE / Q1 / Q3 / min / max sur 40 ventes 6-30 log., 24 mois",analysis/python/cases/ch29_capitalisation.py (traite.cas3.taux_extraits),analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,415 / 4,404 / 4,332 / 4,153 / 4,638 / 3,72 / 5,47 %","4,415 / 4,404 / 4,332 / 4,153 / 4,638 / 3,72 / 5,47 %",verifie,2026-10-31
27+CALC-29-006,29,"Régression R = a + b1(état−3) + b2(n−12) : a, b1, b2, R², σ résiduel",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,567 % ; −0,0441 pt ; −0,0227 pt ; 0,156 ; 0,383 pt","4,567 % ; −0,0441 pt ; −0,0227 pt ; 0,156 ; 0,383 pt",verifie,2026-10-31
28+CALC-29-007,29,Médiane des 10 ventes les plus proches (distance taille/état/âge/quartier/date),analysis/python/cases/ch29_capitalisation.py::comparables_proches,analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,52 %","4,52 %",verifie,2026-10-31
29+CALC-29-008,29,"Valeur par capitalisation directe V = 89 955,75 / 0,04415 (identique à cas3.tout()['valeur_capitalisation'])",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_valeur,2037502.89,2037502.89,verifie,2026-10-31
30+CALC-29-009,29,"Valeurs alternatives : taux de régression 4,567 % ; médiane des proches 4,52 % ; Q3 ; Q1",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_valeur,1 969 694 ; 1 990 172 ; 1 939 747 ; 2 166 303 $,1 969 694 ; 1 990 172 ; 1 939 747 ; 2 166 303 $,verifie,2026-10-31
31+CALC-29-010,29,"Constante hypothécaire f (4,12 % composé semestriellement, 480 mois)",analysis/python/cases/ch29_capitalisation.py (traite.finance.Hypotheque),analysis/python/tests/test_ch29.py::test_bande_et_rcd,"5,0789 %","5,0789 %",verifie,2026-10-31
32+CALC-29-011,29,"Bande d'investissement : R_E impliqué par R = 4,415 % avec M = 0,75 ; R pour R_E = 6 %",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_bande_investissement),analysis/python/tests/test_ch29.py::test_valeurs_citees_construction,"2,42 % ; 5,309 %","2,42 % ; 5,309 %",verifie,2026-10-31
33+CALC-29-012,29,"Formule RCD : R = 1,20 × 0,75 × f et valeur",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_par_rcd),analysis/python/tests/test_ch29.py::test_valeurs_citees_construction,"4,571 % ; 1 967 946 $","4,571 % ; 1 967 946 $",verifie,2026-10-31
34+CALC-29-013,29,"Gordon : R = 7,25 − 2,25 ; 7,25 − 3,10 ; g implicite = 7,25 − 4,415",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_gordon),analysis/python/tests/test_ch29.py::test_gordon,"5,00 % ; 4,15 % ; 2,835 %","5,00 % ; 4,15 % ; 2,835 %",verifie,2026-10-31
35+CALC-29-014,29,"Ellwood/Akerson : P (10 ans), SFF(7,25 %,10), Δ = 1,0225^10 − 1, R(Δ=0), R(Δ), R sans dette, Δ implicite, Y implicite ; égalité Ellwood = Akerson",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_ellwood/taux_akerson),analysis/python/tests/test_ch29.py::test_ellwood_egal_akerson,"12,25 % ; 0,071527 ; 24,92 % ; 4,965 % ; 3,182 % ; 5,468 % ; 7,68 % ; 10,70 %","12,25 % ; 0,071527 ; 24,92 % ; 4,965 % ; 3,182 % ; 5,468 % ; 7,68 % ; 10,70 %",verifie,2026-10-31
36+CALC-29-015,29,"Multiplicateurs : MRB médian des 40 ventes, V par MRB (RBP contrat / marché), MRN = 1/R, MRB implicite du sujet",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"13,54 ; 2 241 412 $ ; 2 518 927 $ ; 22,65 ; 12,31","13,54 ; 2 241 412 $ ; 2 518 927 $ ; 22,65 ; 12,31",verifie,2026-10-31
37+CALC-29-016,29,"Cohérence : taxes sur rôle vs sur valeur indiquée (écart, effet capitalisé) ; taux avant réserve équivalent ; erreur taux avant réserve sur RNE après réserve",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"880,88 $ ; 19 952 $ ; 4,81 % ; 1 869 136 $","880,88 $ ; 19 952 $ ; 4,81 % ; 1 869 136 $",verifie,2026-10-31
38+CALC-29-017,29,RNE aux loyers de marché et valeur (erreur « capitaliser le marché avec baux en place »),analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"108 864,54 $ ; 2 465 788 $ (+21,0 %)","108 864,54 $ ; 2 465 788 $ (+21,0 %)",verifie,2026-10-31
39+CALC-29-018,29,"Droits de mutation Montréal 2026 : base = max(prix, rôle × 1,00) = 2 200 000 $ ; droits ; droits sur le prix",analysis/python/cases/ch29_capitalisation.py::droits_mutation,analysis/python/tests/test_ch29.py::test_droits_mutation_bareme,"45 460,50 $ ; 40 763,07 $ (2,23 % du prix)","45 460,50 $ ; 40 763,07 $ (2,23 % du prix)",verifie,2026-10-31
40+CALC-29-019,29,"Sensibilité : grille V(R, RNE±5 %) 3,75-5,25 % ; ∂V/∂R = −V/R ; V(R±25 pb) exact vs linéaire",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_sensibilite,"−115 374 $/25 pb ; 1 928 312 $ (−5,36 % vs −5,66 %) ; 2 159 802 $","−115 374 $/25 pb ; 1 928 312 $ (−5,36 % vs −5,66 %) ; 2 159 802 $",verifie,2026-10-31
41+CALC-29-020,29,Exercices 29.1 à 29.8 (toutes les valeurs des solutions),analysis/python/cases/ch29_capitalisation.py::exercices,analysis/python/tests/test_ch29.py::test_exercices,voir solutions/ch29.tex,identiques (tolérances 1 $ / 1e-6),verifie,2026-10-31
42+CALC-30-01,30,RNE normalisé année 1 du cas 3 (RBP 165 540 ; RBE 168 444 ; dépenses 70 385 + réserve 8 103),analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,89956,89955.75,verifie,2026-10-31
43+CALC-30-02,30,Taux global médian extrait des 40 comparables et valeur par capitalisation directe,analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,"4,415 % ; 2 037 503",0.04415 ; 2037502.89,verifie,2026-10-31
44+CALC-30-03,30,Projection 11 ans (RBP 165 540 → 259 911 ; RNE 89 956 → 159 658) ; identités RNE = RBE − DE − RR et CF = RNE − CAPEX,analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_tableau_dcf_identites,RNE_11 = 159 658,159658.38,verifie,2026-10-31
45+CALC-30-04,30,"Valeur terminale : VT brute 3 193 168 ; nette (2,5 %) 3 113 338 ; VA (×0,496623) 1 546 156 ; erreur si actualisée à T+1 = 104 519",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeur_terminale,3193168 ; 3113338 ; 1546156 ; 104519,3193167.52 ; 3113338.33 ; 1546156.00 ; 104518.71,verifie,2026-10-31
46+CALC-30-05,30,"Valeur DCF = VA flux 662 410 + VA VT 1 546 156 = 2 208 566 ; part VT 70,0 % ; écart vs capitalisation directe +171 063 (8,4 %)",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,2208566,2208565.91,verifie,2026-10-31
47+CALC-30-06,30,"TRI de l'investisseur non endetté payant V0 = r = 7,25 % ; VAN(r) = 0 ; MIRR(r,r) = r ; délai de récupération 9,42 ans",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_van_au_tri_nulle_sans_levier,0.0725,0.07250000,verifie,2026-10-31
48+CALC-30-07,30,"Taux implicites : R implicite DCF 4,07 % ; g implicite (r − R_med) 2,835 % ; g_T 2,25 % ; croissance RNE annualisée 5,90 % ; TRI si payé V_cap 8,25 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_taux_implicites,0.0407 ; 0.02835 ; 0.0225 ; 0.0590 ; 0.0825,0.040730 ; 0.028350 ; 0.022500 ; 0.059050 ; 0.082521,verifie,2026-10-31
49+CALC-30-08,30,"Financement (cas3.financement) : prêt RCD 1 475 959 (contrainte RCD) ; RPV 66,83 % ; SD 74 963 ; constante 5,079 % ; mise 732 606 ; solde 120 paiements 1 295 148 ; i_m 0,34042 % ; effectif 4,1624 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_levier,1475959 ; 74963 ; 732606 ; 1295148,1475959.45 ; 74963.13 ; 732606.46 ; 1295148.22,verifie,2026-10-31
50+CALC-30-09,30,"TRI des fonds propres avec levier 11,22 % (5 changements de signe ; VAN(TRI)=0) ; MIRR (4,12 % / 7,25 %) 10,61 % ; cash-on-cash an 1 2,05 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_levier,0.1122 ; 0.1061,0.112192 ; 0.106112,verifie,2026-10-31
51+CALC-30-10,30,"Proposition 30.1 : DCF = NOI_1/(r−g) pour T = 1, 5, 10, 25, 60 si R_T = r − g ; part VT = ((1+g)/(1+r))^T ; coûts de vente : V_G [1 − c_v q^T]",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_proposition_gordon,égalité à 1e-10 relatif,OK,verifie,2026-10-31
52+CALC-30-11,30,"Sensibilité R_T 4,25 → 5,75 % : V 2 481 417 → 2 006 893 (+12,4 % → −9,1 %) ; surfaces V(r,R_T) et V(r,g) monotones",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_sensibilite_monotone,2481417 ; 2006893,2481416.97 ; 2006893.39,verifie,2026-10-31
53+CALC-30-12,30,"Tornade : amplitude max = croissance des loyers de marché 368 235 ; scénarios : encadrement serré 1 912 046 (−13,4 %), hausse des taux 1 947 889 (−11,8 %) ; TRI FP si payé base 7,48 % / 8,31 % ; RCD min 1,04",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_tornade_et_scenarios,368235 ; 1912046 ; 1947889,368235.05 ; 1912046.35 ; 1947889.41,verifie,2026-10-31
54+CALC-30-13,30,Solutions des exercices 30.1 à 30.8 (fonction exercices()),analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_exercices_coherence,voir solutions/ch30.tex,OK,verifie,2026-10-31
added verification/chapters/ch21.md +34 −0
@@ -0,0 +1,34 @@
1+# Chapitre 21 — Reproduction et remplacement : bilan de rédaction (2026-10-31)
2+
3+## Compteurs
4+- Prose : ≈ 12 750 mots (regex de `tools/check_manuscript.py` sur `manuscript/chapters/ch21.tex`) ; 35 pages compilées (chapitre + solutions + bibliographie du chapitre).
5+- Figures : 4 (3 PDF Matplotlib + 1 schéma TikZ) — `ch21-fig-decomposition-corps.pdf` (synthétique), `ch21-fig-ipcb-montreal.pdf` (réelle, StatCan 18-10-0289-01), `ch21-fig-sensibilite.pdf` (synthétique + variation IPCB réelle), schéma de la méthode (TikZ dans le .tex).
6+- Tableaux : 8 (repro/remplacement, composantes, méthodes, IPCB, devis par corps de métier, coûts unitaires, grille de sensibilité, élasticité).
7+- Équations numérotées : 11 (identité, désuétude par base, C_N multiplicatif/additif, parts, élasticité, élasticité géométrique, composantes, indexation, chaînage, C_N du cas 1) ; 1 définition double + 1 définition, 2 propositions avec démonstration.
8+- Exercices : 7 (niveaux 1, 1, 2, 2, 2, 3, 3) ; solutions détaillées dans `solutions/ch21.tex`, chiffres testés (`TestExercices`).
9+- Encadrés : objectifs, synthetique, exemple intégral, formule, 2 × quebec (cadre de la construction ; coût neuf au rôle), erreurs, limites, synthese.
10+- Citations : 33 clés, toutes dans `references/library.bib` (aucune nouvelle clé citée).
11+
12+## Contrôles
13+- `tools/compile_chapter.sh 21` → `OK ch21 : 35 pages, 0 references/citations non definies, 0 overfull hbox`. Seul avertissement restant : « Label ch:21 multiply defined », artefact du script de compilation présent aussi dans les logs ch16/ch29/ch30.
14+- `python3 -m pytest -q analysis/python/tests/test_ch21.py` → 21 passed.
15+- Scripts : `analysis/python/cases/ch21_cout_neuf.py` (imprime tous les chiffres cités) ; `analysis/python/figures/ch21_{decomposition,ipcb,sensibilite}.py` (idempotents, `from traite.style import …`). Aucune modification de `traite/*.py` ; le regroupement par corps de métier, la lecture de l'IPCB brut, la grille et la tornade sont des fonctions du script de cas (candidates à `traite.cout` si d'autres chapitres en ont besoin).
16+- PDF relu page par page (planche de contact + pages 3, 14, 21, 23) : aucune figure ni aucun tableau ne déborde.
17+- Convention `\cref` sans article (consigne du 2026-10-31) : toutes les occurrences portent article/préposition écrits à la main (grep vérifié).
18+
19+## Fichiers livrés
20+`manuscript/chapters/ch21.tex`, `solutions/ch21.tex`, `analysis/python/cases/ch21_cout_neuf.py`, `analysis/python/figures/ch21_*.py`, `analysis/python/tests/test_ch21.py`, `assets/figures/ch21/*.pdf`, `verification/chapters/ch21-{figures,calculations,claims,registry}.csv`, `references/lib-ch21.bib` (1 entrée, non citée), ce bilan. Rien n'a été écrit dans les CSV globaux ni dans `library.bib`.
21+
22+## Points non vérifiés ou partiellement vérifiés (voir ch21-claims.csv)
23+1. Fourchette Altus 2026 Montréal 155-215 $/pi² : source secondaire (NerdWallet, SRC-E-043) ; tableaux Altus protégés non consultés (partiellement_verifie).
24+2. Taux d'incitatif de 10 % : hypothèse pédagogique, déclarée comme telle ; aucune extraction du marché de Gatineau (non_verifie).
25+3. TPS/TVQ sur habitation neuve : pages Revenu Québec en HTTP 403 le 2026-10-31 ; seuls le seuil fédéral de 450 000 $ et le remboursement « premiers acheteurs » (20 mars 2025 ; 1 M$ / 1,5 M$) ont été lus dans RC4028 Rév. 10/2026 (SRC-21-001). Paramètres TVQ non chiffrés dans le texte (non_verifie).
26+4. Hausses salariales CCQ 2025-2029 (8/5/5/4 %) : relayées par Altus, page CCQ non reconsultée (partiellement_verifie).
27+5. Barèmes 3E du MEFQ : non dépouillés ; renvoi sans reproduction ; pied de page « 2022 » dans le PDF 2026 des normes de mesurage.
28+6. Aire brute des étages du sujet (190 m²) : déduite de l'aire de la dalle (hypothèse de l'exemple, signalée).
29+
30+## Suggestions pour l'harmonisation
31+- Le ch. 24 doit partir de C_N = 397 567,33 $ (arrondi 398 000 $) et le ch. 25 de la valeur du terrain (620 m²) ; le ch. 45 réconcilie. Le ch. 23 pourra réutiliser `ipcb_montreal()` et la figure IPCB (ne pas dupliquer).
32+- Le ch. 22 (métré, 38 postes) reprend le même devis : le regroupement en 7 blocs (`CORPS` dans `ch21_cout_neuf.py`) devrait y être réutilisé pour la cohérence.
33+- Si `library.bib` intègre `arcRC4028` (lib-ch21.bib), remplacer la mention en toutes lettres du guide RC4028 dans l'encadré « Taxes de vente » par `\parencite{arcRC4028}`.
34+- `codeConstruction` : year=2022 dans library.bib alors que la note parle de 2025 ; voir corrections proposées dans notes-B.md.
added verification/chapters/ch29-calculations.csv +21 −0
@@ -0,0 +1,21 @@
1+id,chapitre,description,script,test,resultat_attendu,resultat_obtenu,statut,date
2+CALC-29-001,29,RBP contractuel du cas 3 (12 baux × 12),analysis/python/cases/ch29_capitalisation.py (traite.cas3.revenus),analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,165540,165540.00,verifie,2026-10-31
3+CALC-29-002,29,"RBE = RBP(1−3,9 %) + autres revenus 9 360 $",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,168443.94,168443.94,verifie,2026-10-31
4+CALC-29-003,29,"Dépenses normalisées hors réserve (taxes sur rôle 2 200 000 $, postes 2025 × 1,03, gestion 4 % RBE)",analysis/python/cases/ch29_capitalisation.py (traite.cas3.depenses_normalisees),analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,70385.19,70385.19,verifie,2026-10-31
5+CALC-29-004,29,RNE normalisé après réserve 8 103 $ (= RNE année 1 des ch. 30 et 47),analysis/python/cases/ch29_capitalisation.py (traite.cas3.rne),analysis/python/tests/test_ch29.py::test_coherence_avec_cas3_partage,89955.75,89955.75,verifie,2026-10-31
6+CALC-29-005,29,"Taux extraits : médiane / moyenne / pondérée RNE / Q1 / Q3 / min / max sur 40 ventes 6-30 log., 24 mois",analysis/python/cases/ch29_capitalisation.py (traite.cas3.taux_extraits),analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,415 / 4,404 / 4,332 / 4,153 / 4,638 / 3,72 / 5,47 %","4,415 / 4,404 / 4,332 / 4,153 / 4,638 / 3,72 / 5,47 %",verifie,2026-10-31
7+CALC-29-006,29,"Régression R = a + b1(état−3) + b2(n−12) : a, b1, b2, R², σ résiduel",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,567 % ; −0,0441 pt ; −0,0227 pt ; 0,156 ; 0,383 pt","4,567 % ; −0,0441 pt ; −0,0227 pt ; 0,156 ; 0,383 pt",verifie,2026-10-31
8+CALC-29-007,29,Médiane des 10 ventes les plus proches (distance taille/état/âge/quartier/date),analysis/python/cases/ch29_capitalisation.py::comparables_proches,analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,52 %","4,52 %",verifie,2026-10-31
9+CALC-29-008,29,"Valeur par capitalisation directe V = 89 955,75 / 0,04415 (identique à cas3.tout()['valeur_capitalisation'])",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_valeur,2037502.89,2037502.89,verifie,2026-10-31
10+CALC-29-009,29,"Valeurs alternatives : taux de régression 4,567 % ; médiane des proches 4,52 % ; Q3 ; Q1",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_valeur,"1 969 694 ; 1 990 172 ; 1 939 747 ; 2 166 303 $","1 969 694 ; 1 990 172 ; 1 939 747 ; 2 166 303 $",verifie,2026-10-31
11+CALC-29-010,29,"Constante hypothécaire f (4,12 % composé semestriellement, 480 mois)",analysis/python/cases/ch29_capitalisation.py (traite.finance.Hypotheque),analysis/python/tests/test_ch29.py::test_bande_et_rcd,"5,0789 %","5,0789 %",verifie,2026-10-31
12+CALC-29-011,29,"Bande d'investissement : R_E impliqué par R = 4,415 % avec M = 0,75 ; R pour R_E = 6 %",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_bande_investissement),analysis/python/tests/test_ch29.py::test_valeurs_citees_construction,"2,42 % ; 5,309 %","2,42 % ; 5,309 %",verifie,2026-10-31
13+CALC-29-012,29,"Formule RCD : R = 1,20 × 0,75 × f et valeur",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_par_rcd),analysis/python/tests/test_ch29.py::test_valeurs_citees_construction,"4,571 % ; 1 967 946 $","4,571 % ; 1 967 946 $",verifie,2026-10-31
14+CALC-29-013,29,"Gordon : R = 7,25 − 2,25 ; 7,25 − 3,10 ; g implicite = 7,25 − 4,415",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_gordon),analysis/python/tests/test_ch29.py::test_gordon,"5,00 % ; 4,15 % ; 2,835 %","5,00 % ; 4,15 % ; 2,835 %",verifie,2026-10-31
15+CALC-29-014,29,"Ellwood/Akerson : P (10 ans), SFF(7,25 %,10), Δ = 1,0225^10 − 1, R(Δ=0), R(Δ), R sans dette, Δ implicite, Y implicite ; égalité Ellwood = Akerson",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_ellwood/taux_akerson),analysis/python/tests/test_ch29.py::test_ellwood_egal_akerson,"12,25 % ; 0,071527 ; 24,92 % ; 4,965 % ; 3,182 % ; 5,468 % ; 7,68 % ; 10,70 %","12,25 % ; 0,071527 ; 24,92 % ; 4,965 % ; 3,182 % ; 5,468 % ; 7,68 % ; 10,70 %",verifie,2026-10-31
16+CALC-29-015,29,"Multiplicateurs : MRB médian des 40 ventes, V par MRB (RBP contrat / marché), MRN = 1/R, MRB implicite du sujet",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"13,54 ; 2 241 412 $ ; 2 518 927 $ ; 22,65 ; 12,31","13,54 ; 2 241 412 $ ; 2 518 927 $ ; 22,65 ; 12,31",verifie,2026-10-31
17+CALC-29-016,29,"Cohérence : taxes sur rôle vs sur valeur indiquée (écart, effet capitalisé) ; taux avant réserve équivalent ; erreur taux avant réserve sur RNE après réserve",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"880,88 $ ; 19 952 $ ; 4,81 % ; 1 869 136 $","880,88 $ ; 19 952 $ ; 4,81 % ; 1 869 136 $",verifie,2026-10-31
18+CALC-29-017,29,"RNE aux loyers de marché et valeur (erreur « capitaliser le marché avec baux en place »)",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"108 864,54 $ ; 2 465 788 $ (+21,0 %)","108 864,54 $ ; 2 465 788 $ (+21,0 %)",verifie,2026-10-31
19+CALC-29-018,29,"Droits de mutation Montréal 2026 : base = max(prix, rôle × 1,00) = 2 200 000 $ ; droits ; droits sur le prix",analysis/python/cases/ch29_capitalisation.py::droits_mutation,analysis/python/tests/test_ch29.py::test_droits_mutation_bareme,"45 460,50 $ ; 40 763,07 $ (2,23 % du prix)","45 460,50 $ ; 40 763,07 $ (2,23 % du prix)",verifie,2026-10-31
20+CALC-29-019,29,"Sensibilité : grille V(R, RNE±5 %) 3,75-5,25 % ; ∂V/∂R = −V/R ; V(R±25 pb) exact vs linéaire",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_sensibilite,"−115 374 $/25 pb ; 1 928 312 $ (−5,36 % vs −5,66 %) ; 2 159 802 $","−115 374 $/25 pb ; 1 928 312 $ (−5,36 % vs −5,66 %) ; 2 159 802 $",verifie,2026-10-31
21+CALC-29-020,29,"Exercices 29.1 à 29.8 (toutes les valeurs des solutions)",analysis/python/cases/ch29_capitalisation.py::exercices,analysis/python/tests/test_ch29.py::test_exercices,voir solutions/ch29.tex,identiques (tolérances 1 $ / 1e-6),verifie,2026-10-31
added verification/chapters/ch29-claims.csv +23 −0
@@ -0,0 +1,23 @@
1+id,chapitre,affirmation,source_id,verification,date,statut,notes
2+CLM-29-001,29,"CBRE T3 2026 : multirésidentiel Montréal 4,25-4,75 % (tours A 4,50-4,75 ; tours B 4,25-4,75 ; basse hauteur A 4,50-4,75 ; basse hauteur B 4,25-4,75 ; neuf 4,50-4,75) ; Québec 4,25-6,00 % (tours A 4,25-5,00 ; tours B 4,75-5,75 ; basse A 4,50-5,25 ; basse B 5,00-6,00 ; neuf 4,25-4,75) ; national tours A 4,60, tours B 4,86, basse A 4,73, basse B 4,99, neuf 4,68 ; toutes propriétés 6,56 % ; écart 256 pb avec l'obligation 10 ans",SRC-E-045,sources/notes-E.md §ch. 29 (rapport publié le 2026-10-21),2026-10-31,verifie,"Opinion d'industrie ; citée avec attribution, aucun tableau reproduit"
3+CLM-29-002,29,"Aucun taux de capitalisation publié par CBRE pour Gatineau, Sherbrooke, Trois-Rivières, Saguenay",SRC-E-045,sources/notes-E.md,2026-10-31,verifie,"Le chapitre s'interdit d'avancer un chiffre pour ces marchés"
4+CLM-29-003,29,"Obligations du GdC au 2026-10-29 : 5 ans 3,58 %, 10 ans 3,84 % ; taux directeur relevé à 2,50 % le 2026-10-28",SRC-C-029;SRC-C-027;SRC-E-010,"data/raw/bdc_valet/*.csv (dernières observations relues par le script de figures) ; notes-C §4.1",2026-10-31,verifie,
5+CLM-29-004,29,"Taux hypothécaire conventionnel 5 ans affiché 6,19 % (semaine du 2026-10-28) ; fonds avancés août 2026 : assuré fixe ≥ 5 ans 4,12 %, non assuré fixe ≥ 5 ans 4,58 %",SRC-C-030;SRC-E-011;SRC-E-012,"data/raw/bdc_valet/V80691335.csv et A4_RATES_MORTGAGES.csv (dernière ligne 2026-08-01 : V122667780 = 4,12 ; V122667786 = 4,58)",2026-10-31,verifie,
6+CLM-29-005,29,"Rendement moyen de l'obligation GdC 10 ans 2001-2026 ≈ 3,0 % ; minimum 0,43 % le 2020-08-04",SRC-E-010,calcul de l'auteur sur data/raw/bdc_valet/BD.CDN.10YR.DQ.YLD.csv (ch29_figures.py),2026-10-31,verifie,"Moyenne des observations quotidiennes 2001-01-02 → 2026-10-29"
7+CLM-29-006,29,"APH Select (SCHL) : RCD minimal 1,10 pour le locatif ordinaire, amortissement jusqu'à 40-50 ans, RPV jusqu'à 95 %",SRC-C-040,sources/notes-C.md §4.4,2026-10-31,partiellement_verifie,"Certaines cellules du tableau SCHL déduites de la mise en page (notes-C point 7)"
8+CLM-29-007,29,"SCHL Rapport sur le marché locatif : inoccupation RMR Montréal 2,9 % en octobre 2025 ; SCHL prévoit 3,8 % pour 2026 (Summer Update)",SRC-E-007;SRC-C-045,sources/notes-C.md §4.5-4.6,2026-10-31,verifie,
9+CLM-29-008,29,"Barème SCHL « Frais d'exploitation — immeubles locatifs au Québec » (avril 2015) : gestion 5 % du revenu brut pour 12 logements et plus ; réserve ≈ 100 $/logement (électroménagers) ; aucune norme publique récente de réserve",SRC-E-047,sources/notes-E.md §ch. 28,2026-10-31,verifie,"Document daté, hébergé par un tiers (PMML)"
10+CLM-29-009,29,"TAL : frais de gestion forfaitaires de 5 % des revenus, maximum 10 % (formulaire de fixation) ; taux de base 2026 = 3,1 %",SRC-A-005,sources/notes-E.md §ch. 28 ; clé talIndices2026,2026-10-31,verifie,
11+CLM-29-010,29,"LFM art. 46 al. 1 : état et conditions du marché au 1er juillet du 2e exercice précédant le rôle ; rôle triennal ; Montréal 2026-2028 référence 2024-07-01 ; art. 264 proportion médiane / facteur comparatif",SRC-B-001,sources/notes-B.md §9 (texte de l'art. 46 relu),2026-10-31,verifie,
12+CLM-29-011,29,"Une vente ne modifie pas en elle-même la valeur inscrite au rôle ; révision au rôle suivant ou lors d'un événement de l'art. 174 LFM (travaux, changement d'usage)",SRC-B-001,"notes-B §9 énumère les événements de l'art. 174 (6°-8°, 12°, 12.1°, 18°, 19°) ; la vente n'y figure pas",2026-10-31,partiellement_verifie,"Texte intégral de l'art. 174 non relu par le rédacteur du ch. 29 ; à confirmer par le juriste"
13+CLM-29-012,29,"Rôle Montréal 2026-2028 : hausse moyenne 10,9 % pour les immeubles de 6 logements et plus (9,6 % pour 5 et moins)",SRC-B-031,communiqué Ville de Montréal du 2025-09-10 (clés montrealrole2026 / mtlrole2026),2026-10-31,verifie,
14+CLM-29-013,29,"Taxe foncière générale résidentielle Montréal 2026 = 0,4631 $/100 $ ; taux « 6 logements et plus » et taxes d'arrondissement non vérifiés",SRC-B-024;SRC-E-031;SRC-B-023,Le Devoir 2026-01-12 (source secondaire) ; document officiel Constellio non lisible,2026-10-31,partiellement_verifie,"Le chapitre le déclare dans limites ; taxes du cas 3 = taxe générale seulement"
15+CLM-29-014,29,"Taxe scolaire 2026-2027 = 0,07899 $/100 $",SRC-E-026,communiqué CSS (clé taxescolaire2026),2026-10-31,verifie,
16+CLM-29-015,29,"LDMI art. 1.1 : base des droits = max(contrepartie fournie, contrepartie stipulée, valeur marchande = rôle × facteur comparatif) ; art. 2 tranches 2026 : 0,5 % ≤ 62 900 $, 1 % ≤ 315 000 $, 1,5 % au-delà",SRC-B-034;SRC-B-033,sources/notes-B.md §9 (tranches indexées, G.O. 2025),2026-10-31,verifie,
17+CLM-29-016,29,"Barème Montréal 2026 des droits de mutation : 1,5 % ≤ 552 300 ; 2 % ≤ 1 104 700 ; 2,5 % ≤ 2 136 500 ; 3,5 % ≤ 3 113 000 ; 4 % au-delà ; facteur comparatif 1,00",SRC-B-030,page Ville de Montréal (màj 2026-01-12) ; clé mtlmutations2026,2026-10-31,verifie,"Codé dans ch29_capitalisation.py (MUTATIONS_MTL_2026) et testé"
18+CLM-29-017,29,"IVS 2025 : approches de marché, du revenu et du coût à IVS 103 (sect. 50, 60, 70)",SRC-C-014,sources/notes-C.md §3.2,2026-10-31,verifie,
19+CLM-29-018,29,"NPP OEAQ règle 2.3 : éléments 8 (traitement de l'information et raisonnement) et 10 (rejet d'une méthode traditionnelle à justifier) ; définition de la valeur marchande (paiement comptant ou équivalent)",SRC-C-001,sources/notes-C.md §1.1 et §2.1,2026-10-31,verifie,
20+CLM-29-019,29,"Hypothèques canadiennes à taux fixe : intérêt composé semestriellement (Loi sur l'intérêt, L.R.C. 1985, c. I-15, art. 6)",,manuscript/appendices/conventions-calcul.tex et traite/finance.py (docstring) ; loi non ouverte par le rédacteur du ch. 29,2026-10-31,partiellement_verifie,"Aucune clé bib pour la Loi sur l'intérêt ; à ajouter par l'orchestrateur si souhaité"
21+CLM-29-020,29,"Formulation d'Akerson (« Ellwood without algebra », The Appraisal Journal, 1970) : référence exacte (volume, pages) non vérifiée ; citée d'après appraisal2026",,sources/notes-D.md (entrées non vérifiées),2026-10-31,non_verifie,"Le chapitre le signale dans limites ; pas d'entrée bib créée"
22+CLM-29-021,29,"Formules : R = Mf + (1−M)R_E ; R = RCD·M·f ; R = r − g ; Ellwood R = Y − M(Y + P·SFF − f) − Δ·SFF ; Akerson équivalente ; ∂V/∂R = −V/R",,dérivations complètes dans ch29.tex ; identités testées dans test_ch29.py,2026-10-31,verifie,"Références : ellwood1970, appraisal2026, fisherMartin2007, gordonShapiro1956, geltnerMillerClaytonEichholtz2014"
23+CLM-29-022,29,"Littérature sur les déterminants des taux : Sivitanidou & Sivitanides 1999 ; Sivitanides, Torto & Wheaton 2003 ; Chervachidze & Wheaton 2013 ; Duca & Ling 2020 ; Hendershott & MacGregor 2005 ; Plazzi, Torous & Valkanov 2010 ; Bokhari & Geltner 2018",,references/library.bib (entrées vérifiées par le lot D via Crossref),2026-10-31,verifie,"Résumés qualitatifs, aucun chiffre repris de ces articles"
added verification/chapters/ch29-figures.csv +6 −0
@@ -0,0 +1,6 @@
1+fichier,chapitre,script,donnees,type_donnees,legende_courte,statut
2+ch29/ch29-fig-taux-extraits.pdf,29,analysis/python/figures/ch29_figures.py,data/synthetic/cas3_montreal_comparables.csv,synthetique,"Histogramme des 40 taux globaux extraits (cas 3) avec médiane, quartiles et prévision de la régression [données synthétiques]",verifie
3+ch29/ch29-fig-taux-etat-taille.pdf,29,analysis/python/figures/ch29_figures.py,data/synthetic/cas3_montreal_comparables.csv,synthetique,"Nuage taux extrait vs nombre de logements par état (3 séries) et droites de régression ; étoile = sujet [données synthétiques]",verifie
4+ch29/ch29-fig-surface-v.pdf,29,analysis/python/figures/ch29_figures.py,analysis/python/cases/ch29_capitalisation.py (traite.cas3),synthetique,"Carte de chaleur V = RNE/R pour RNE ±10 % et R de 3,75 à 5,25 % ; cadre = cas de base [données synthétiques]",verifie
5+ch29/ch29-fig-bande-investissement.pdf,29,analysis/python/figures/ch29_figures.py,analysis/python/cases/ch29_capitalisation.py (paramètres cas3_montreal_hypotheses_dcf.json),synthetique,"Barres empilées : décomposition du taux global (bande d'investissement, RCD, Akerson Δ implicite, Akerson Δ du cas) [données synthétiques]",verifie
6+ch29/ch29-fig-taux-gdc.pdf,29,analysis/python/figures/ch29_figures.py,"data/raw/bdc_valet/BD.CDN.5YR.DQ.YLD.csv ; BD.CDN.10YR.DQ.YLD.csv ; V80691335.csv",reelle,"Rendements des obligations du GdC 5 et 10 ans et taux hypothécaire affiché 5 ans, moyennes mensuelles 2001-2026 (Banque du Canada, Valet, SRC-E-010/SRC-E-011)",verifie
added verification/chapters/ch29-registry.csv +19 −0
@@ -0,0 +1,19 @@
1+id,type,titre,organisme,version_ou_date,url,date_consultation,statut,utilise_dans,notes
2+SRC-E-045,rapport,Canadian Cap Rates & Investment Insights — Q3 2026,CBRE Canada (CBRE Limited),2026-10-21,https://www.cbre.ca/insights/reports/canada-cap-rates-investment-insights-q3-2026,2026-10-31,verifie,ch29,"RATTACHEMENT : source déjà au registre ; ajouter ch29 à utilise_dans (fourchettes Montréal/Québec, moyennes nationales, écart 256 pb)"
3+SRC-E-010,serie,Rendements des obligations de référence du GdC 5 ans et 10 ans (Valet),Banque du Canada,2026-10-29,https://www.bankofcanada.ca/valet/observations/BD.CDN.5YR.DQ.YLD/csv?start_date=2000-01-01,2026-10-31,verifie,ch29,"RATTACHEMENT : figure ch29-fig-taux-gdc.pdf (séries réelles) ; moyenne 2001-2026 et minimum 2020 calculés"
4+SRC-E-011,serie,Taux hypothécaire affiché 5 ans — prêt conventionnel (V80691335),Banque du Canada,2026-10-28,https://www.bankofcanada.ca/valet/observations/V80691335/csv?start_date=2000-01-01,2026-10-31,verifie,ch29,"RATTACHEMENT : figure ch29-fig-taux-gdc.pdf"
5+SRC-E-012,serie,Taux des prêts hypothécaires résidentiels assurés et non assurés — fonds avancés (A4_RATES_MORTGAGES),Banque du Canada,août 2026,https://www.bankofcanada.ca/valet/observations/group/A4_RATES_MORTGAGES/csv?start_date=2000-01-01,2026-10-31,verifie,ch29,"RATTACHEMENT : taux assuré 4,12 % du financement du cas 3 ; non assuré 4,58 %"
6+SRC-C-027,donnees,Communiqué : la Banque du Canada relève le taux directeur à 2½ %,Banque du Canada,28 octobre 2026,https://www.banqueducanada.ca/2026/10/fad-communique-2026-10-28/,2026-10-31,verifie,ch29,"RATTACHEMENT : déjà listé pour ch29 au registre"
7+SRC-C-040,page_web,APH Select,SCHL,Page publiée le 21 septembre 2026,https://www.cmhc-schl.gc.ca/fr/professionnels/financement-de-projets-et-financement-hypothecaire/assurance-pret-hypothecaire/assurance-pret-pour-immeubles-collectifs/aph-select,2026-10-31,partiellement_verifie,ch29,"RATTACHEMENT : RCD 1,10 et amortissement 40 ans cités"
8+SRC-E-047,document,Frais d'exploitation de la SCHL — immeubles locatifs au Québec (avril 2015),SCHL (diffusé par PMML),avril 2015,https://pmml.ca/wp-content/uploads/2020/10/Frais-dexploitation-avril-2015.pdf,2026-10-31,verifie,ch29,"RATTACHEMENT : gestion 5 % (12 log. et plus), réserve 100 $/log."
9+SRC-A-005,page_web,Pourcentages applicables aux critères de fixation de loyer (2025 et 2026),Tribunal administratif du logement,2026,https://www.tal.gouv.qc.ca/fr/reconduction-du-bail-et-fixation-de-loyer/pourcentages-applicables-aux-criteres-de-fixation-de-loyer,2026-10-31,verifie,ch29,"RATTACHEMENT : taux de base 3,1 % utilisé comme g dans Gordon"
10+SRC-B-001,loi,"Loi sur la fiscalité municipale (RLRQ, c. F-2.1)",Québec / LégisQuébec,À jour au 15 octobre 2026,https://www.legisquebec.gouv.qc.ca/fr/document/lc/F-2.1,2026-10-31,verifie,ch29,"RATTACHEMENT : art. 46 al. 1, 174, 264 (encadré Québec)"
11+SRC-B-034,loi,"Loi concernant les droits sur les mutations immobilières (RLRQ, c. D-15.1)",Québec / LégisQuébec,À jour au 15 octobre 2026,https://www.legisquebec.gouv.qc.ca/fr/document/lc/D-15.1,2026-10-31,verifie,ch29,"RATTACHEMENT : art. 1.1 et 2 (encadré Québec)"
12+SRC-B-030,page_web,Comment sont calculés les droits sur les mutations immobilières (Montréal) — barème 2026,Ville de Montréal,Mis à jour le 12 janvier 2026,https://montreal.ca/articles/comment-sont-calcules-les-droits-sur-les-mutations-immobilieres-9279,2026-10-31,verifie,ch29,"RATTACHEMENT : barème codé dans ch29_capitalisation.py"
13+SRC-B-031,page_web,Déclaration de l'administration à la suite du dépôt des rôles d'évaluation foncière 2026-2027-2028,Ville de Montréal,10 septembre 2025,https://montreal.ca/communiques-de-presse/declaration-de-ladministration-la-suite-du-depot-des-roles-devaluation-fonciere-2026-2027-2028-de,2026-10-31,verifie,ch29,"RATTACHEMENT : +10,9 % pour 6 logements et plus"
14+SRC-B-024,page_web,"Budget Montréal 2026 : les taxes foncières augmenteront de 3,8 % en moyenne (Le Devoir)",Le Devoir,2026-01-12,https://www.ledevoir.com/economie/947379/montreal-hausse-taxes-residentielles-3-8-2026,2026-10-31,partiellement_verifie,ch29,"RATTACHEMENT : taux 0,4631 $/100 $ (source secondaire)"
15+SRC-E-026,communique,"Taxe scolaire 2026-2027 — taux 0,07899 $/100 $",Centre de services scolaire des Hautes-Rivières,2026,,2026-10-31,verifie,ch29,"RATTACHEMENT : URL = celle du registre existant"
16+SRC-E-007,rapport,Rapport sur le marché locatif — données d'octobre 2025,SCHL,2025-12-11,https://www.cmhc-schl.gc.ca/fr/professionnels/marche-du-logement-donnees-et-recherche/marches-de-lhabitation/rapports-sur-le-marche-locatif,2026-10-31,verifie,ch29,"RATTACHEMENT : inoccupation RMR Montréal 2,9 %"
17+SRC-C-045,donnees,Summer Update — 2026 Housing Market Outlook,SCHL,22 juillet 2026,https://www.cmhc-schl.gc.ca/observer/2026/summer-update-2026-housing-market-outlook,2026-10-31,verifie,ch29,"RATTACHEMENT : inoccupation prévue 3,8 % (2026) RMR Montréal"
18+SRC-C-014,norme,International Valuation Standards (effective 31 January 2025),IVSC,Publiées le 31 janvier 2024,https://ivsc.org/wp-content/uploads/2024/01/IVS-effective-31-January-2025.pdf,2026-10-31,verifie,ch29,"RATTACHEMENT : IVS 103 sect. 60"
19+SRC-C-001,norme,Normes de pratique professionnelle des évaluateurs agréés (NPP),OEAQ,En vigueur depuis le 1er février 2024,https://oeaq.qc.ca/wp-content/uploads/2025/03/NPP-24-mars-2025.pdf,2026-10-31,verifie,ch29,"RATTACHEMENT : règle 2.3 éléments 8 et 10 ; définition de la valeur marchande"
added verification/chapters/ch30-calculations.csv +14 −0
@@ -0,0 +1,14 @@
1+id,chapitre,description,script,test,resultat_attendu,resultat_obtenu,statut,date
2+CALC-30-01,30,RNE normalisé année 1 du cas 3 (RBP 165 540 ; RBE 168 444 ; dépenses 70 385 + réserve 8 103),analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,89956,89955.75,verifie,2026-10-31
3+CALC-30-02,30,Taux global médian extrait des 40 comparables et valeur par capitalisation directe,analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,"4,415 % ; 2 037 503","0.04415 ; 2037502.89",verifie,2026-10-31
4+CALC-30-03,30,Projection 11 ans (RBP 165 540 → 259 911 ; RNE 89 956 → 159 658) ; identités RNE = RBE − DE − RR et CF = RNE − CAPEX,analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_tableau_dcf_identites,RNE_11 = 159 658,159658.38,verifie,2026-10-31
5+CALC-30-04,30,"Valeur terminale : VT brute 3 193 168 ; nette (2,5 %) 3 113 338 ; VA (×0,496623) 1 546 156 ; erreur si actualisée à T+1 = 104 519",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeur_terminale,"3193168 ; 3113338 ; 1546156 ; 104519","3193167.52 ; 3113338.33 ; 1546156.00 ; 104518.71",verifie,2026-10-31
6+CALC-30-05,30,"Valeur DCF = VA flux 662 410 + VA VT 1 546 156 = 2 208 566 ; part VT 70,0 % ; écart vs capitalisation directe +171 063 (8,4 %)",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,2208566,2208565.91,verifie,2026-10-31
7+CALC-30-06,30,"TRI de l'investisseur non endetté payant V0 = r = 7,25 % ; VAN(r) = 0 ; MIRR(r,r) = r ; délai de récupération 9,42 ans",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_van_au_tri_nulle_sans_levier,0.0725,0.07250000,verifie,2026-10-31
8+CALC-30-07,30,"Taux implicites : R implicite DCF 4,07 % ; g implicite (r − R_med) 2,835 % ; g_T 2,25 % ; croissance RNE annualisée 5,90 % ; TRI si payé V_cap 8,25 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_taux_implicites,"0.0407 ; 0.02835 ; 0.0225 ; 0.0590 ; 0.0825","0.040730 ; 0.028350 ; 0.022500 ; 0.059050 ; 0.082521",verifie,2026-10-31
9+CALC-30-08,30,"Financement (cas3.financement) : prêt RCD 1 475 959 (contrainte RCD) ; RPV 66,83 % ; SD 74 963 ; constante 5,079 % ; mise 732 606 ; solde 120 paiements 1 295 148 ; i_m 0,34042 % ; effectif 4,1624 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_levier,"1475959 ; 74963 ; 732606 ; 1295148","1475959.45 ; 74963.13 ; 732606.46 ; 1295148.22",verifie,2026-10-31
10+CALC-30-09,30,"TRI des fonds propres avec levier 11,22 % (5 changements de signe ; VAN(TRI)=0) ; MIRR (4,12 % / 7,25 %) 10,61 % ; cash-on-cash an 1 2,05 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_levier,"0.1122 ; 0.1061","0.112192 ; 0.106112",verifie,2026-10-31
11+CALC-30-10,30,"Proposition 30.1 : DCF = NOI_1/(r−g) pour T = 1, 5, 10, 25, 60 si R_T = r − g ; part VT = ((1+g)/(1+r))^T ; coûts de vente : V_G [1 − c_v q^T]",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_proposition_gordon,égalité à 1e-10 relatif,OK,verifie,2026-10-31
12+CALC-30-11,30,"Sensibilité R_T 4,25 → 5,75 % : V 2 481 417 → 2 006 893 (+12,4 % → −9,1 %) ; surfaces V(r,R_T) et V(r,g) monotones",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_sensibilite_monotone,"2481417 ; 2006893","2481416.97 ; 2006893.39",verifie,2026-10-31
13+CALC-30-12,30,"Tornade : amplitude max = croissance des loyers de marché 368 235 ; scénarios : encadrement serré 1 912 046 (−13,4 %), hausse des taux 1 947 889 (−11,8 %) ; TRI FP si payé base 7,48 % / 8,31 % ; RCD min 1,04",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_tornade_et_scenarios,"368235 ; 1912046 ; 1947889","368235.05 ; 1912046.35 ; 1947889.41",verifie,2026-10-31
14+CALC-30-13,30,Solutions des exercices 30.1 à 30.8 (fonction exercices()),analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_exercices_coherence,voir solutions/ch30.tex,OK,verifie,2026-10-31
added verification/chapters/ch30-claims.csv +18 −0
@@ -0,0 +1,18 @@
1+id,chapitre,affirmation,source_id,verification,date,statut,notes
2+CLM-30-01,30,"Obligations de référence du GdC au 2026-10-29 : 10 ans 3,84 %, 5 ans 3,58 %",SRC-C-029,API Valet BD.CDN.10YR/5YR.DQ.YLD (data/raw/bdc_valet ; notes-C.md §4.1),2026-10-31,verifie,aussi SRC-E-010
3+CLM-30-02,30,"Taux directeur relevé à 2,50 % le 2026-10-28 (première hausse depuis juillet 2023)",SRC-C-027,Communiqué BdC 2026-10-28 (notes-C.md §4.1),2026-10-31,verifie,
4+CLM-30-03,30,"Taux hypothécaire conventionnel 5 ans affiché 6,19 % (semaine du 2026-10-28)",SRC-C-030,Valet V80691335 (notes-C.md §4.1),2026-10-31,verifie,figure ch30-fig-gdc
5+CLM-30-04,30,"Taux effectif des fonds avancés, prêts hypothécaires assurés à taux fixe ≥ 5 ans : 4,12 % (août 2026)",SRC-E-012,Valet A4_RATES_MORTGAGES (notes-C.md §4.1 ; calibration.json),2026-10-31,verifie,repère du taux de financement du cas 3
6+CLM-30-05,30,"CBRE T3 2026 : multirésidentiel Montréal faible hauteur classe B 4,25-4,75 % ; écart national toutes propriétés / GdC 10 ans 256 pb",SRC-E-045,notes-E.md ch. 29 (CBRE Canadian Cap Rates Q3 2026, publié 2026-10-21),2026-10-31,verifie,source d'industrie ; valeurs ponctuelles citées avec attribution
7+CLM-30-06,30,"SCHL oct. 2025 : RMR Montréal inoccupation 2,9 % ; loyer 2 ch. 1 346 $ (+7,2 % même échantillon) ; rotation 9,4 % (11,1 % en 2024) ; immeubles 6-19 logements île 2,2 %",SRC-E-007,Rapport sur le marché locatif publié 2025-12-11 (notes-E.md ; notes-C.md §4.5),2026-10-31,verifie,
8+CLM-30-07,30,"SCHL mise à jour été 2026 : inoccupation RMR Montréal 3,8 % (2026), 4,5 % (2027), 4,8 % (2028)",SRC-C-042,notes-C.md §4.6 (schlpmh2026ete),2026-10-31,partiellement_verifie,extraction du rapport ; à relire sur le PDF
9+CLM-30-08,30,"IPC Québec +3,1 % sur 12 mois en septembre 2026 (167,7 vs 162,6)",SRC-E-015,Tableau 18-10-0004-01 (notes-C.md §4.7 ; notes-E.md),2026-10-31,verifie,calcul de l'auteur
10+CLM-30-09,30,"TAL : pourcentage de base 3,1 % pour 2026 (avis à compter du 2026-01-01) ; 4,5 % en 2025",SRC-A-005,Page « Pourcentages applicables » lue le 2026-10-31 (notes-A.md §6.2),2026-10-31,verifie,
11+CLM-30-10,30,"D. 1455-2025 (en vigueur 2026-01-01) : pourcentage de base = moyenne des 3 variations annuelles de l'IPC Québec (art. 3.1) ; critères art. 3 dont rendement de 5 % sur les dépenses d'immobilisation",SRC-A-004,G.O. 2 du 2025-12-17 p. 6890-6893 (notes-A.md §6.2),2026-10-31,verifie,
12+CLM-30-11,30,"C.c.Q. art. 1941-1942, 1947, 1953 (reconduction, avis, fixation) ; art. 1896 et 1950 (loyer le plus bas des 12 mois, demande de fixation dans les 10 jours) ; art. 1955 (immeubles neufs, loyer maximal depuis 2024) ; art. 1978.1-1978.4 (cession, Loi 31)",SRC-A-001,LégisQuébec CCQ-1991 à jour au 2026-10-15 (notes-A.md §4-6),2026-10-31,verifie,
13+CLM-30-12,30,"NPP OEAQ règle 2.1 c) et 2.3 élément 7 : divulgation des hypothèses extraordinaires et de leur incidence sur la valeur ; rappel à chaque conclusion",SRC-C-001,NPP PDF 24 mars 2025 (notes-C.md §2.1),2026-10-31,verifie,
14+CLM-30-13,30,"IVS 2025 (en vigueur 2025-01-31) : IVS 103 range le DCF dans l'approche par le revenu (sect. 60)",SRC-C-014,notes-C.md §3.2,2026-10-31,partiellement_verifie,la formulation « intrants appropriés à la base de valeur » est une paraphrase ; vérifier le paragraphe exact d'IVS 103 avant publication
15+CLM-30-14,30,"Loi sur l'intérêt (L.R.C. 1985, c. I-15, art. 6) : taux hypothécaire exprimé en taux annuel calculé semestriellement ou annuellement, non à l'avance",,manuscript/appendices/conventions-calcul.tex et traite/finance.py (docstring) ; texte de loi non relu dans ce lot,2026-10-31,non_verifie,aucune clé bib ni entrée registre pour la Loi sur l'intérêt : à ajouter par le documentaliste (Justice Canada)
16+CLM-30-15,30,"Droits sur les mutations immobilières payés par l'acquéreur (Québec)",SRC-A-021,"clé bib quebecMutations ; Loi concernant les droits sur les mutations immobilières (D-15.1), art. sur le débiteur du droit non relu dans ce lot",2026-10-31,partiellement_verifie,vérifier l'article qui désigne l'acquéreur comme débiteur
17+CLM-30-16,30,"SCHL APH Select : RCD minimal 1,10 pour le locatif ordinaire",SRC-C-040,Page APH Select publiée 2026-09-21 lue le 2026-10-31 (notes-C.md §4.4),2026-10-31,partiellement_verifie,cellules du tableau SCHL partiellement déduites (notes-C.md point 7)
18+CLM-30-17,30,"Aucune enquête publique vérifiée ne publie de taux d'actualisation pour le multirésidentiel québécois ; le taux de 7,25 % du cas 3 est une hypothèse",,constat d'absence (notes-C, notes-E),2026-10-31,non_verifie,déclaré dans limites ; hypothèse synthétique identifiée
added verification/chapters/ch30-figures.csv +6 −0
@@ -0,0 +1,6 @@
1+fichier,chapitre,script,donnees,type_donnees,legende_courte,statut
2+ch30/ch30-fig-gdc.pdf,30,analysis/python/figures/ch30_gdc.py,data/raw/bdc_valet/BD.CDN.10YR.DQ.YLD.csv;data/raw/bdc_valet/BD.CDN.5YR.DQ.YLD.csv;data/raw/bdc_valet/V80691335.csv,reelle,"Rendements GdC 5 et 10 ans et taux hypothécaire 5 ans affiché, moyennes mensuelles 2006-2026 (Banque du Canada, Valet, 2026-10-31)",verifie
3+ch30/ch30-fig-loyers.pdf,30,analysis/python/figures/ch30_loyers.py,data/synthetic/cas3_montreal_etat_locatif.csv;data/synthetic/cas3_montreal_hypotheses_dcf.json,synthetique,"Trajectoire du RBP contractuel (TAL 3,1 % + rotation 15 %) vs RBP au marché (+3,5 %), cas 3 [données synthétiques]",verifie
4+ch30/ch30-fig-flux.pdf,30,analysis/python/figures/ch30_flux.py,data/synthetic/cas3_montreal_*.csv;cas3_montreal_hypotheses_dcf.json,synthetique,"RNE, CAPEX, flux avant dette (barres) et VA cumulée + VA de la valeur terminale, cas 3 [données synthétiques]",verifie
5+ch30/ch30-fig-surface.pdf,30,analysis/python/figures/ch30_surface.py,data/synthetic/cas3_montreal_*.csv;cas3_montreal_hypotheses_dcf.json,synthetique,"Heatmap V(r, R_T) du DCF du cas 3, 9 x 7 cellules, base encadrée [données synthétiques]",verifie
6+ch30/ch30-fig-tornade.pdf,30,analysis/python/figures/ch30_tornade.py,data/synthetic/cas3_montreal_*.csv;cas3_montreal_hypotheses_dcf.json,synthetique,"Diagramme en tornade de la valeur DCF du cas 3, 9 intrants [données synthétiques]",verifie
added verification/chapters/ch30-registry.csv +1 −0
@@ -0,0 +1 @@
1+id,type,titre,organisme,version_ou_date,url,date_consultation,statut,utilise_dans,notes
added verification/chapters/ch30.md +34 −0
@@ -0,0 +1,34 @@
1+# Chapitre 30 — Flux actualisés et valeur terminale : bilan de rédaction (2026-10-31)
2+
3+## Livrables
4+- `manuscript/chapters/ch30.tex` : ≈ 11 500 mots de prose (13 452 jetons avec commandes selon `check_manuscript.py`), 7 sections + exercices + « Pour aller plus loin ».
5+- Compteurs : **5 figures** (4 synthétiques cas 3 + 1 réelle Banque du Canada), **8 tableaux**, **14 équations numérotées** (dont 1 `align` à 2 lignes), 1 définition, 1 proposition avec démonstration, 1 exemple intégral, **8 exercices** (2 × niveau 1, 3 × niveau 2, 3 × niveau 3), encadrés `objectifs`, `synthetique`, `quebec` ×2 (TAL/trajectoire des loyers ; composition semestrielle), `erreurs`, `limites`, `synthese`.
6+- `analysis/python/cases/ch30_dcf.py` : imprime tous les chiffres cités (tableau DCF complet 10 + 1 ans, VT, valeur, taux implicites, financement, flux après dette, TRI/MIRR, sensibilité R_T, surfaces V(r,R_T) et V(r,g), tornade, scénarios, vérification de la proposition de Gordon, exercices) ; option `--latex` qui génère les corps de tableaux collés dans le chapitre. N'appelle que `traite.cas3` et `traite.finance` (aucune modification de `traite/*.py`).
7+- `analysis/python/figures/ch30_{flux,loyers,surface,tornade,gdc}.py` → `assets/figures/ch30/ch30-fig-*.pdf`.
8+- `analysis/python/tests/test_ch30.py` : 15 tests (VAN(TRI)=0 sans et avec levier ; VT ; DCF = ΣVA + VA(VT) ; proposition Gordon pour T = 1, 5, 10, 25, 60 ; part VT = q^T ; effet des coûts de vente ; valeurs citées à ±1 $ ; monotonie des surfaces ; tornade ; scénarios ; exercices).
9+- `solutions/ch30.tex` : 8 solutions détaillées.
10+- `verification/chapters/ch30-figures.csv` (5), `ch30-calculations.csv` (13), `ch30-claims.csv` (17), `ch30-registry.csv` (en-tête seul : aucune nouvelle source), `references/lib-ch30.bib` (aucune nouvelle entrée ; besoin signalé : Loi sur l'intérêt).
11+
12+## Contrôles
13+- `tools/compile_chapter.sh 30` → `OK ch30 : 37 pages, 0 references/citations non definies, 0 overfull hbox`.
14+- `python3 -m pytest -q analysis/python/tests/test_ch30.py` → `15 passed`.
15+- `python3 analysis/python/figures/run_all.py ch30` → 5/5.
16+- `tools/check_manuscript.py --no-log` : seules remarques pour ch30 = 5 figures non inscrites dans `verification/figures.csv` global (lignes fournies dans `ch30-figures.csv`, fusion par l'orchestrateur).
17+- Inspection visuelle du PDF (pages 1, 8, 11, 17, 18, 20, 21, 23, 24, 26, 34) : tableaux dans la justification, figures lisibles, encadrés corrects.
18+
19+## Chiffres clés (tous issus de `ch30_dcf.py`)
20+RNE_1 89 956 $ ; taux médian 4,415 % ; V_cap 2 037 503 $ ; RNE_11 159 658 $ ; VT brute 3 193 168 $, nette 3 113 338 $, VA 1 546 156 $ ; VA flux 662 410 $ ; **V_DCF 2 208 566 $** ; part VT 70,0 % ; R implicite 4,07 % ; écart DCF − cap +171 063 $ (+8,4 %) ; prêt 1 475 959 $ (RCD liant), SD 74 963 $, mise 732 606 $, solde an 10 1 295 148 $ ; TRI FP 11,22 %, MIRR 10,61 % ; scénarios : −13,4 % (encadrement serré), −11,8 % (hausse des taux).
21+
22+## Points non vérifiés / à l'attention de l'orchestrateur
23+1. **Loi sur l'intérêt (L.R.C. 1985, c. I-15, art. 6)** citée dans l'encadré québécois sans clé bib ni entrée registre (reprise de `conventions-calcul.tex`) → CLM-30-14 `non_verifie` ; ajouter la source (Justice Canada).
24+2. IVS 103 : paraphrase « intrants appropriés à la base de valeur » → CLM-30-13 `partiellement_verifie` ; vérifier le paragraphe exact.
25+3. Débiteur des droits de mutation (acquéreur) → CLM-30-15 `partiellement_verifie` (loi D-15.1 non relue).
26+4. APH Select RCD 1,10 → `partiellement_verifie` (cellules déduites, notes-C point 7).
27+5. Prévisions d'inoccupation SCHL été 2026 → `partiellement_verifie`.
28+6. Absence d'enquête publique de taux d'actualisation pour le multirésidentiel québécois : constat déclaré dans `limites` ; le 7,25 % est une hypothèse synthétique.
29+
30+## Suggestions d'harmonisation
31+- Les chapitres 29, 31 et 47 doivent citer les mêmes valeurs (`cas3.tout()`) : V_cap 2 037 503 $, V_DCF 2 208 566 $, prêt 1 475 959 $ ; `ch30_dcf.taux_implicites` et `flux_levier` peuvent être réutilisés par ch. 31/47 pour éviter les recalculs.
32+- `traite.finance` : envisager une fonction `van_courbe(flux, taux)` / `tri_multiples` pour tracer la VAN en fonction du taux (ch. 31/40) ; et un paramètre `reserve_dans_rne` explicite dans `cas3.projection_dcf` si un chapitre veut tester la convention « sans réserve ».
33+- Le scénario « hausse des taux » approxime le renouvellement hypothécaire (taux +100 pb dès l'origine) ; le ch. 31 devrait traiter le renouvellement exact à l'échéance du terme de 5 ans.
34+- Les crefs vers `ch:*` et `app:conventions-calcul` se résolvent désormais en compilation isolée (sty mis à jour par le coordinateur) ; conventions « nom sans article » appliquées et relues (grep).
modified verification/claims.csv +67 −0
@@ -1 +1,68 @@
1 id,chapitre,affirmation,source_id,verification,date,statut,notes 1 id,chapitre,affirmation,source_id,verification,date,statut,notes
2+CLM-16-01,16,Définition OEAQ de la valeur marchande (prix sincère le plus probable ; marché libre et ouvert ; parties informées ; exposition suffisante ; comptant ; épuré des incitatifs),SRC-C-001,NPP OEAQ p. Intro-11 (notes-C.md §1.1),2026-10-31,verifie,citation ≤ 25 mots
3+CLM-16-02,16,LFM art. 43-45 : valeur réelle = prix le plus probable d'une vente de gré à gré entre parties informées,SRC-B-001,LégisQuébec F-2.1 à jour au 2026-10-15 (notes-B.md),2026-10-31,verifie,
4+CLM-16-03,16,F-2.1 r. 10 : ventes ≥ 5 000 $ ; taille de la liste de base ; épuration ± 2 écarts-types,SRC-B-010,LégisQuébec F-2.1 r. 10 (notes-B.md),2026-10-31,verifie,id source approximatif : voir registry.csv (lot B)
5+CLM-16-04,16,APCIQ T3 2026 RMR Gatineau : médiane unifamiliale 480 000 $ (−3 %) ; 1 044 ventes ; 2 256 inscriptions ; délai 34 jours ; médianes par secteur Hull 475 000 / Aylmer 530 000 / Gatineau 464 900 / Buckingham-Masson-Angers 395 000,SRC-E-002,Baromètre APCIQ Gatineau T3 2026 (calibration.json),2026-10-31,verifie,source d'industrie citée avec attribution
6+CLM-16-05,16,APCIQ T3 2026 : 9 265 ventes RMR Montréal ; 2 161 RMR Québec,SRC-E-004;SRC-E-003,calibration.json,2026-10-31,verifie,
7+CLM-16-06,16,Rôle 2027-2029 Gatineau déposé le 2026-10-27 ; référence 2025-07-01 ; médiane unifamiliale 454 600 → 495 800 $ (+9,06 %),SRC-E-054;SRC-E-057,calibration.json (communiqué Ville de Gatineau),2026-10-31,verifie
8+CLM-16-07,16,Consultation du registre foncier payante à l'unité (1 $/document),SRC-A-030,notes-A.md (grille tarifaire 1er avril 2025),2026-10-31,verifie,id source approximatif : voir registry.csv (lot A)
9+CLM-16-08,16,Seuils indicatifs d'ajustement brut 25 % et net 15 % dans la pratique nord-américaine,,pratique courante (formulaires des prêteurs américains) — non attribuée à une norme,2026-10-31,non_verifie,présenté comme signal d'alerte et non comme règle
10+CLM-16-09,16,Pratique de 3 à 6 comparables ; exigence fréquente d'au moins 3 par les prêteurs,,pratique courante,2026-10-31,partiellement_verifie,appuyé sur Kummerow & Galfalvy 2002 et Appraisal Institute 2026 (usage)
11+CLM-21-001,21,"L'IPCB (18-10-0289-01, 2023=100) couvre 15 RMR dont Montréal ; séries résidentielles de Montréal depuis T1 2017, non résidentielles depuis 1981, tours depuis 1988 ; T3 2026 diffusé le 2026-10-29",SRC-E-017,Lecture du CSV brut et des métadonnées data/raw/statcan_18100289,2026-10-31,verifie,
12+CLM-21-002,21,Maison individuelle Montréal : 66.1 (T1 2017) → 116.5 (T3 2026) ; +8.6 % sur un an ; +36 % entre T1 2020 et T4 2022 ; pic trimestriel +4.75 % au T4 2021,SRC-E-017,Calcul depuis le CSV brut (test_ch21.py),2026-10-31,verifie,
13+CLM-21-003,21,"Tableau 18-10-0276-01 archivé (dernière période T2 2024), remplacé par 18-10-0289-01",SRC-C-047,notes-E.md et library.bib (statcanipcb0276),2026-10-31,verifie,
14+CLM-21-004,21,"Altus Canadian Cost Guide 2026 publié le 2026-04-23 ; fourchette Montréal unifamiliale 155-215 $/pi² (sous-sol non fini, hors terrain)",SRC-E-041;SRC-E-043,Communiqué Altus vérifié ; fourchette relayée par NerdWallet (source secondaire),2026-10-31,partiellement_verifie,Tableaux Altus protégés non consultés ; fourchette 2025 (150-215) non vérifiée
15+CLM-21-005,21,Règlement sur le rôle (F-2.1 r. 13) art. 1-2 : consignes du MEFQ obligatoires ; art. 8 : méthode(s) la/les plus pertinente(s) parmi 3C/3D/3E ; art. 9 : conciliation 3F,SRC-B-006,notes-B.md §9.7 (texte lu),2026-10-31,verifie,
16+CLM-21-006,21,"MEFQ édition 2026 applicable aux rôles entrant en vigueur le 1er janvier 2027 ; partie 3E = Coût ; barèmes protégés (droit d'auteur, pas de licence ouverte)",SRC-B-006;SRC-B-008,notes-B.md §9.7,2026-10-31,verifie,Contenu des barèmes 3E non dépouillé
17+CLM-21-007,21,"Normes de mesurage MEFQ : aire au sol, aire des étages, mesures brutes à la face externe des murs ; étage compté si plancher ≤ 0,4 m sous le niveau moyen du sol",SRC-B-009,notes-B.md §9.7 (p. 2C-53/54),2026-10-31,verifie,Pied de page « 2022 » dans le PDF 2026
18+CLM-21-008,21,"LFM art. 42-43 (valeur réelle), art. 46 al. 1 (date de référence : 1er juillet du 2e exercice précédent) ; rôle 2027-2029 Gatineau → 2025-07-01",SRC-B-001,notes-B.md §9.2 et notes-E ch. 45,2026-10-31,verifie,
19+CLM-21-009,21,Loi sur le bâtiment art. 46 (licence obligatoire) et art. 49 par. 2° (exemption autoconstruction unifamiliale sauf gaz/pétrole/électricité),SRC-B-052,notes-B.md §44.1,2026-10-31,verifie,
20+CLM-21-010,21,Règlement B-1.1 r. 8 : bâtiments visés (art. 2) ; couvertures 1 an malfaçons / 3 ans vices cachés / 5 ans vices de conception-sol (art. 10) ; plafond 300 000 $ par unifamiliale (art. 13),SRC-B-057;SRC-B-058,notes-B.md §44.1,2026-10-31,verifie,
21+CLM-21-011,21,"Code de construction chap. I = CNB 2020 modifié Québec, en vigueur le 17 avril 2025, transition jusqu'au 17 octobre 2027",SRC-B-053,notes-B.md §44.1,2026-10-31,verifie,
22+CLM-21-012,21,"Convention collective construction 2025-2029 : hausses 8 %, 5 %, 5 %, 4 %",SRC-E-042,notes-E.md (relayé par Altus ; page CCQ non reconsultée),2026-10-31,partiellement_verifie,
23+CLM-21-013,21,"TPS/TVQ : habitation neuve taxable, revente usagée exonérée en règle générale",,Connaissance générale ; pages Revenu Québec inaccessibles (HTTP 403) le 2026-10-31,2026-10-31,non_verifie,Formulé prudemment dans l'encadré ; à vérifier sur IN-203 / RC4028 §généralités
24+CLM-21-014,21,Remboursement fédéral TPS habitation neuve (maison construite par le propriétaire) nul à partir d'une JVM de 450 000 $,SRC-21-001,Guide ARC RC4028 Rév. 10/2026 lu le 2026-10-31 (seuil 450 000 $ verbatim ; 36 % / 6 300 $ / 350 000 $ non vérifiés mot à mot),2026-10-31,partiellement_verifie,
25+CLM-21-015,21,"Remboursement TPS premiers acheteurs : travaux commencés à compter du 20 mars 2025, 100 % de la TPS jusqu'à 1 M$, dégressif jusqu'à 1,5 M$",SRC-21-001,Guide ARC RC4028 Rév. 10/2026 (verbatim),2026-10-31,verifie,
26+CLM-21-016,21,Paramètres du remboursement de la TVQ pour habitation neuve,,Pages Revenu Québec HTTP 403 le 2026-10-31,2026-10-31,non_verifie,Signalé dans limites ; non chiffré dans le texte
27+CLM-21-017,21,IVS 103 sect. 70 = approche par le coût ; NPP OEAQ règle 2.3 élément 10 (rejet d'une méthode traditionnelle à expliquer) ; CUSPAP 2026 en vigueur le 1er avril 2026 ; NPP normes 13-14 (assurance),SRC-C-001,notes-C.md §1.2,§2.1,§2.5,§3.2
28+CLM-21-018,21,Taux d'incitatif de 10 % retenu pour le cas 1,,Hypothèse pédagogique (aucune extraction du marché de Gatineau),2026-10-31,non_verifie,Déclaré comme hypothèse dans le texte et les limites ; sensibilité 5-15 %
29+CLM-21-019,21,"Données Québec — rôles d'évaluation : licence CC-BY 4.0, interdiction de réidentification",SRC-B-012,notes-B.md §9.8,2026-10-31,verifie,id SRC à confirmer lors de la fusion (dqroles)
30+CLM-29-001,29,"CBRE T3 2026 : multirésidentiel Montréal 4,25-4,75 % (tours A 4,50-4,75 ; tours B 4,25-4,75 ; basse hauteur A 4,50-4,75 ; basse hauteur B 4,25-4,75 ; neuf 4,50-4,75) ; Québec 4,25-6,00 % (tours A 4,25-5,00 ; tours B 4,75-5,75 ; basse A 4,50-5,25 ; basse B 5,00-6,00 ; neuf 4,25-4,75) ; national tours A 4,60, tours B 4,86, basse A 4,73, basse B 4,99, neuf 4,68 ; toutes propriétés 6,56 % ; écart 256 pb avec l'obligation 10 ans",SRC-E-045,sources/notes-E.md §ch. 29 (rapport publié le 2026-10-21),2026-10-31,verifie,"Opinion d'industrie ; citée avec attribution, aucun tableau reproduit"
31+CLM-29-002,29,"Aucun taux de capitalisation publié par CBRE pour Gatineau, Sherbrooke, Trois-Rivières, Saguenay",SRC-E-045,sources/notes-E.md,2026-10-31,verifie,Le chapitre s'interdit d'avancer un chiffre pour ces marchés
32+CLM-29-003,29,"Obligations du GdC au 2026-10-29 : 5 ans 3,58 %, 10 ans 3,84 % ; taux directeur relevé à 2,50 % le 2026-10-28",SRC-C-029;SRC-C-027;SRC-E-010,data/raw/bdc_valet/*.csv (dernières observations relues par le script de figures) ; notes-C §4.1,2026-10-31,verifie,
33+CLM-29-004,29,"Taux hypothécaire conventionnel 5 ans affiché 6,19 % (semaine du 2026-10-28) ; fonds avancés août 2026 : assuré fixe ≥ 5 ans 4,12 %, non assuré fixe ≥ 5 ans 4,58 %",SRC-C-030;SRC-E-011;SRC-E-012,"data/raw/bdc_valet/V80691335.csv et A4_RATES_MORTGAGES.csv (dernière ligne 2026-08-01 : V122667780 = 4,12 ; V122667786 = 4,58)",2026-10-31,verifie,
34+CLM-29-005,29,"Rendement moyen de l'obligation GdC 10 ans 2001-2026 ≈ 3,0 % ; minimum 0,43 % le 2020-08-04",SRC-E-010,calcul de l'auteur sur data/raw/bdc_valet/BD.CDN.10YR.DQ.YLD.csv (ch29_figures.py),2026-10-31,verifie,Moyenne des observations quotidiennes 2001-01-02 → 2026-10-29
35+CLM-29-006,29,"APH Select (SCHL) : RCD minimal 1,10 pour le locatif ordinaire, amortissement jusqu'à 40-50 ans, RPV jusqu'à 95 %",SRC-C-040,sources/notes-C.md §4.4,2026-10-31,partiellement_verifie,Certaines cellules du tableau SCHL déduites de la mise en page (notes-C point 7)
36+CLM-29-007,29,"SCHL Rapport sur le marché locatif : inoccupation RMR Montréal 2,9 % en octobre 2025 ; SCHL prévoit 3,8 % pour 2026 (Summer Update)",SRC-E-007;SRC-C-045,sources/notes-C.md §4.5-4.6,2026-10-31,verifie,
37+CLM-29-008,29,Barème SCHL « Frais d'exploitation — immeubles locatifs au Québec » (avril 2015) : gestion 5 % du revenu brut pour 12 logements et plus ; réserve ≈ 100 $/logement (électroménagers) ; aucune norme publique récente de réserve,SRC-E-047,sources/notes-E.md §ch. 28,2026-10-31,verifie,"Document daté, hébergé par un tiers (PMML)"
38+CLM-29-009,29,"TAL : frais de gestion forfaitaires de 5 % des revenus, maximum 10 % (formulaire de fixation) ; taux de base 2026 = 3,1 %",SRC-A-005,sources/notes-E.md §ch. 28 ; clé talIndices2026,2026-10-31,verifie,
39+CLM-29-010,29,LFM art. 46 al. 1 : état et conditions du marché au 1er juillet du 2e exercice précédant le rôle ; rôle triennal ; Montréal 2026-2028 référence 2024-07-01 ; art. 264 proportion médiane / facteur comparatif,SRC-B-001,sources/notes-B.md §9 (texte de l'art. 46 relu),2026-10-31,verifie,
40+CLM-29-011,29,"Une vente ne modifie pas en elle-même la valeur inscrite au rôle ; révision au rôle suivant ou lors d'un événement de l'art. 174 LFM (travaux, changement d'usage)",SRC-B-001,"notes-B §9 énumère les événements de l'art. 174 (6°-8°, 12°, 12.1°, 18°, 19°) ; la vente n'y figure pas",2026-10-31,partiellement_verifie,Texte intégral de l'art. 174 non relu par le rédacteur du ch. 29 ; à confirmer par le juriste
41+CLM-29-012,29,"Rôle Montréal 2026-2028 : hausse moyenne 10,9 % pour les immeubles de 6 logements et plus (9,6 % pour 5 et moins)",SRC-B-031,communiqué Ville de Montréal du 2025-09-10 (clés montrealrole2026 / mtlrole2026),2026-10-31,verifie,
42+CLM-29-013,29,"Taxe foncière générale résidentielle Montréal 2026 = 0,4631 $/100 $ ; taux « 6 logements et plus » et taxes d'arrondissement non vérifiés",SRC-B-024;SRC-E-031;SRC-B-023,Le Devoir 2026-01-12 (source secondaire) ; document officiel Constellio non lisible,2026-10-31,partiellement_verifie,Le chapitre le déclare dans limites ; taxes du cas 3 = taxe générale seulement
43+CLM-29-014,29,"Taxe scolaire 2026-2027 = 0,07899 $/100 $",SRC-E-026,communiqué CSS (clé taxescolaire2026),2026-10-31,verifie,
44+CLM-29-015,29,"LDMI art. 1.1 : base des droits = max(contrepartie fournie, contrepartie stipulée, valeur marchande = rôle × facteur comparatif) ; art. 2 tranches 2026 : 0,5 % ≤ 62 900 $, 1 % ≤ 315 000 $, 1,5 % au-delà",SRC-B-034;SRC-B-033,sources/notes-B.md §9 (tranches indexées,G.O. 2025),2026-10-31,verifie
45+CLM-29-016,29,"Barème Montréal 2026 des droits de mutation : 1,5 % ≤ 552 300 ; 2 % ≤ 1 104 700 ; 2,5 % ≤ 2 136 500 ; 3,5 % ≤ 3 113 000 ; 4 % au-delà ; facteur comparatif 1,00",SRC-B-030,page Ville de Montréal (màj 2026-01-12) ; clé mtlmutations2026,2026-10-31,verifie,Codé dans ch29_capitalisation.py (MUTATIONS_MTL_2026) et testé
46+CLM-29-017,29,"IVS 2025 : approches de marché, du revenu et du coût à IVS 103 (sect. 50, 60, 70)",SRC-C-014,sources/notes-C.md §3.2,2026-10-31,verifie,
47+CLM-29-018,29,NPP OEAQ règle 2.3 : éléments 8 (traitement de l'information et raisonnement) et 10 (rejet d'une méthode traditionnelle à justifier) ; définition de la valeur marchande (paiement comptant ou équivalent),SRC-C-001,sources/notes-C.md §1.1 et §2.1,2026-10-31,verifie,
48+CLM-29-019,29,"Hypothèques canadiennes à taux fixe : intérêt composé semestriellement (Loi sur l'intérêt, L.R.C. 1985, c. I-15, art. 6)",,manuscript/appendices/conventions-calcul.tex et traite/finance.py (docstring) ; loi non ouverte par le rédacteur du ch. 29,2026-10-31,partiellement_verifie,Aucune clé bib pour la Loi sur l'intérêt ; à ajouter par l'orchestrateur si souhaité
49+CLM-29-020,29,"Formulation d'Akerson (« Ellwood without algebra », The Appraisal Journal, 1970) : référence exacte (volume, pages) non vérifiée ; citée d'après appraisal2026",,sources/notes-D.md (entrées non vérifiées),2026-10-31,non_verifie,Le chapitre le signale dans limites ; pas d'entrée bib créée
50+CLM-29-021,29,Formules : R = Mf + (1−M)R_E ; R = RCD·M·f ; R = r − g ; Ellwood R = Y − M(Y + P·SFF − f) − Δ·SFF ; Akerson équivalente ; ∂V/∂R = −V/R,,dérivations complètes dans ch29.tex ; identités testées dans test_ch29.py,2026-10-31,verifie,"Références : ellwood1970, appraisal2026, fisherMartin2007, gordonShapiro1956, geltnerMillerClaytonEichholtz2014"
51+CLM-29-022,29,"Littérature sur les déterminants des taux : Sivitanidou & Sivitanides 1999 ; Sivitanides, Torto & Wheaton 2003 ; Chervachidze & Wheaton 2013 ; Duca & Ling 2020 ; Hendershott & MacGregor 2005 ; Plazzi, Torous & Valkanov 2010 ; Bokhari & Geltner 2018",,references/library.bib (entrées vérifiées par le lot D via Crossref),2026-10-31,verifie,"Résumés qualitatifs, aucun chiffre repris de ces articles"
52+CLM-30-01,30,"Obligations de référence du GdC au 2026-10-29 : 10 ans 3,84 %, 5 ans 3,58 %",SRC-C-029,API Valet BD.CDN.10YR/5YR.DQ.YLD (data/raw/bdc_valet ; notes-C.md §4.1),2026-10-31,verifie,aussi SRC-E-010
53+CLM-30-02,30,"Taux directeur relevé à 2,50 % le 2026-10-28 (première hausse depuis juillet 2023)",SRC-C-027,Communiqué BdC 2026-10-28 (notes-C.md §4.1),2026-10-31,verifie,
54+CLM-30-03,30,"Taux hypothécaire conventionnel 5 ans affiché 6,19 % (semaine du 2026-10-28)",SRC-C-030,Valet V80691335 (notes-C.md §4.1),2026-10-31,verifie,figure ch30-fig-gdc
55+CLM-30-04,30,"Taux effectif des fonds avancés, prêts hypothécaires assurés à taux fixe ≥ 5 ans : 4,12 % (août 2026)",SRC-E-012,Valet A4_RATES_MORTGAGES (notes-C.md §4.1 ; calibration.json),2026-10-31,verifie,repère du taux de financement du cas 3
56+CLM-30-05,30,"CBRE T3 2026 : multirésidentiel Montréal faible hauteur classe B 4,25-4,75 % ; écart national toutes propriétés / GdC 10 ans 256 pb",SRC-E-045,notes-E.md ch. 29 (CBRE Canadian Cap Rates Q3 2026,publié 2026-10-21),2026-10-31,verifie
57+CLM-30-06,30,"SCHL oct. 2025 : RMR Montréal inoccupation 2,9 % ; loyer 2 ch. 1 346 $ (+7,2 % même échantillon) ; rotation 9,4 % (11,1 % en 2024) ; immeubles 6-19 logements île 2,2 %",SRC-E-007,Rapport sur le marché locatif publié 2025-12-11 (notes-E.md ; notes-C.md §4.5),2026-10-31,verifie,
58+CLM-30-07,30,"SCHL mise à jour été 2026 : inoccupation RMR Montréal 3,8 % (2026), 4,5 % (2027), 4,8 % (2028)",SRC-C-042,notes-C.md §4.6 (schlpmh2026ete),2026-10-31,partiellement_verifie,extraction du rapport ; à relire sur le PDF
59+CLM-30-08,30,"IPC Québec +3,1 % sur 12 mois en septembre 2026 (167,7 vs 162,6)",SRC-E-015,Tableau 18-10-0004-01 (notes-C.md §4.7 ; notes-E.md),2026-10-31,verifie,calcul de l'auteur
60+CLM-30-09,30,"TAL : pourcentage de base 3,1 % pour 2026 (avis à compter du 2026-01-01) ; 4,5 % en 2025",SRC-A-005,Page « Pourcentages applicables » lue le 2026-10-31 (notes-A.md §6.2),2026-10-31,verifie,
61+CLM-30-10,30,D. 1455-2025 (en vigueur 2026-01-01) : pourcentage de base = moyenne des 3 variations annuelles de l'IPC Québec (art. 3.1) ; critères art. 3 dont rendement de 5 % sur les dépenses d'immobilisation,SRC-A-004,G.O. 2 du 2025-12-17 p. 6890-6893 (notes-A.md §6.2),2026-10-31,verifie,
62+CLM-30-11,30,"C.c.Q. art. 1941-1942, 1947, 1953 (reconduction, avis, fixation) ; art. 1896 et 1950 (loyer le plus bas des 12 mois, demande de fixation dans les 10 jours) ; art. 1955 (immeubles neufs, loyer maximal depuis 2024) ; art. 1978.1-1978.4 (cession, Loi 31)",SRC-A-001,LégisQuébec CCQ-1991 à jour au 2026-10-15 (notes-A.md §4-6),2026-10-31,verifie,
63+CLM-30-12,30,NPP OEAQ règle 2.1 c) et 2.3 élément 7 : divulgation des hypothèses extraordinaires et de leur incidence sur la valeur ; rappel à chaque conclusion,SRC-C-001,NPP PDF 24 mars 2025 (notes-C.md §2.1),2026-10-31,verifie,
64+CLM-30-13,30,IVS 2025 (en vigueur 2025-01-31) : IVS 103 range le DCF dans l'approche par le revenu (sect. 60),SRC-C-014,notes-C.md §3.2,2026-10-31,partiellement_verifie,la formulation « intrants appropriés à la base de valeur » est une paraphrase ; vérifier le paragraphe exact d'IVS 103 avant publication
65+CLM-30-14,30,"Loi sur l'intérêt (L.R.C. 1985, c. I-15, art. 6) : taux hypothécaire exprimé en taux annuel calculé semestriellement ou annuellement, non à l'avance",,manuscript/appendices/conventions-calcul.tex et traite/finance.py (docstring) ; texte de loi non relu dans ce lot,2026-10-31,non_verifie,aucune clé bib ni entrée registre pour la Loi sur l'intérêt : à ajouter par le documentaliste (Justice Canada)
66+CLM-30-15,30,Droits sur les mutations immobilières payés par l'acquéreur (Québec),SRC-A-021,"clé bib quebecMutations ; Loi concernant les droits sur les mutations immobilières (D-15.1), art. sur le débiteur du droit non relu dans ce lot",2026-10-31,partiellement_verifie,vérifier l'article qui désigne l'acquéreur comme débiteur
67+CLM-30-16,30,"SCHL APH Select : RCD minimal 1,10 pour le locatif ordinaire",SRC-C-040,Page APH Select publiée 2026-09-21 lue le 2026-10-31 (notes-C.md §4.4),2026-10-31,partiellement_verifie,cellules du tableau SCHL partiellement déduites (notes-C.md point 7)
68+CLM-30-17,30,"Aucune enquête publique vérifiée ne publie de taux d'actualisation pour le multirésidentiel québécois ; le taux de 7,25 % du cas 3 est une hypothèse",,constat d'absence (notes-C,notes-E),2026-10-31,non_verifie
modified verification/figures.csv +19 −0
@@ -1 +1,20 @@
1 fichier,chapitre,script,donnees,type_donnees,legende_courte,statut 1 fichier,chapitre,script,donnees,type_donnees,legende_courte,statut
2+ch16/ch16-fig-nuage-selection.pdf,16,analysis/python/cases/ch16_selection.py,data/synthetic/cas1_gatineau_ventes.csv,synthetique,"Prix vs superficie, candidats et comparables retenus [données synthétiques]",verifie
3+ch16/ch16-fig-carte-comparables.pdf,16,analysis/python/cases/ch16_selection.py,data/synthetic/cas1_gatineau_ventes.csv,synthetique,"Carte fictive des ventes par secteur, sujet et comparables [données synthétiques]",verifie
4+ch16/ch16-fig-boites-prix-m2.pdf,16,analysis/python/cases/ch16_selection.py,data/synthetic/cas1_gatineau_ventes.csv,synthetique,"Boîtes à moustaches du prix par m² : secteur, candidats, retenus [données synthétiques]",verifie
5+ch16/ch16-fig-sensibilite-selection.pdf,16,analysis/python/cases/ch16_selection.py,data/synthetic/cas1_gatineau_ventes.csv,synthetique,Indication brute selon k et rayon [données synthétiques],verifie
6+ch16/tikz-processus-selection,16,manuscript/chapters/ch16.tex,,schema,Entonnoir de sélection des comparables (TikZ),verifie
7+ch21/ch21-fig-decomposition-corps.pdf,21,analysis/python/figures/ch21_decomposition.py,data/synthetic/cas1_gatineau_couts.csv,synthetique,"Décomposition du coût neuf du sujet du cas 1 par corps de métier, indirects et incitatif [données synthétiques]",verifie
8+ch21/ch21-fig-ipcb-montreal.pdf,21,analysis/python/figures/ch21_ipcb.py,data/raw/statcan_18100289/18100289.csv,reelle,"IPCB Montréal 2017T1-2026T3 (18-10-0289-01, 2023=100) : résidentiel, maison individuelle, appartements <5 étages, tours, non résidentiel",verifie
9+ch21/ch21-fig-sensibilite.pdf,21,analysis/python/figures/ch21_sensibilite.py,data/synthetic/cas1_gatineau_couts.csv;data/raw/statcan_18100289/18100289.csv,synthetique,"Sensibilité du coût neuf : grille indirects × incitatif et tornade (indirects, incitatif, indice) [données synthétiques]",verifie
10+ch21/schema-methode-cout (TikZ),21,manuscript/chapters/ch21.tex,,schema,"Architecture de la méthode du coût : terrain + coût neuf (directs, indirects, incitatif) − dépréciations",verifie
11+ch29/ch29-fig-taux-extraits.pdf,29,analysis/python/figures/ch29_figures.py,data/synthetic/cas3_montreal_comparables.csv,synthetique,"Histogramme des 40 taux globaux extraits (cas 3) avec médiane, quartiles et prévision de la régression [données synthétiques]",verifie
12+ch29/ch29-fig-taux-etat-taille.pdf,29,analysis/python/figures/ch29_figures.py,data/synthetic/cas3_montreal_comparables.csv,synthetique,Nuage taux extrait vs nombre de logements par état (3 séries) et droites de régression ; étoile = sujet [données synthétiques],verifie
13+ch29/ch29-fig-surface-v.pdf,29,analysis/python/figures/ch29_figures.py,analysis/python/cases/ch29_capitalisation.py (traite.cas3),synthetique,"Carte de chaleur V = RNE/R pour RNE ±10 % et R de 3,75 à 5,25 % ; cadre = cas de base [données synthétiques]",verifie
14+ch29/ch29-fig-bande-investissement.pdf,29,analysis/python/figures/ch29_figures.py,analysis/python/cases/ch29_capitalisation.py (paramètres cas3_montreal_hypotheses_dcf.json),synthetique,"Barres empilées : décomposition du taux global (bande d'investissement, RCD, Akerson Δ implicite, Akerson Δ du cas) [données synthétiques]",verifie
15+ch29/ch29-fig-taux-gdc.pdf,29,analysis/python/figures/ch29_figures.py,data/raw/bdc_valet/BD.CDN.5YR.DQ.YLD.csv ; BD.CDN.10YR.DQ.YLD.csv ; V80691335.csv,reelle,"Rendements des obligations du GdC 5 et 10 ans et taux hypothécaire affiché 5 ans, moyennes mensuelles 2001-2026 (Banque du Canada, Valet, SRC-E-010/SRC-E-011)",verifie
16+ch30/ch30-fig-gdc.pdf,30,analysis/python/figures/ch30_gdc.py,data/raw/bdc_valet/BD.CDN.10YR.DQ.YLD.csv;data/raw/bdc_valet/BD.CDN.5YR.DQ.YLD.csv;data/raw/bdc_valet/V80691335.csv,reelle,"Rendements GdC 5 et 10 ans et taux hypothécaire 5 ans affiché, moyennes mensuelles 2006-2026 (Banque du Canada, Valet, 2026-10-31)",verifie
17+ch30/ch30-fig-loyers.pdf,30,analysis/python/figures/ch30_loyers.py,data/synthetic/cas3_montreal_etat_locatif.csv;data/synthetic/cas3_montreal_hypotheses_dcf.json,synthetique,"Trajectoire du RBP contractuel (TAL 3,1 % + rotation 15 %) vs RBP au marché (+3,5 %), cas 3 [données synthétiques]",verifie
18+ch30/ch30-fig-flux.pdf,30,analysis/python/figures/ch30_flux.py,data/synthetic/cas3_montreal_*.csv;cas3_montreal_hypotheses_dcf.json,synthetique,"RNE, CAPEX, flux avant dette (barres) et VA cumulée + VA de la valeur terminale, cas 3 [données synthétiques]",verifie
19+ch30/ch30-fig-surface.pdf,30,analysis/python/figures/ch30_surface.py,data/synthetic/cas3_montreal_*.csv;cas3_montreal_hypotheses_dcf.json,synthetique,"Heatmap V(r, R_T) du DCF du cas 3, 9 x 7 cellules, base encadrée [données synthétiques]",verifie
20+ch30/ch30-fig-tornade.pdf,30,analysis/python/figures/ch30_tornade.py,data/synthetic/cas3_montreal_*.csv;cas3_montreal_hypotheses_dcf.json,synthetique,"Diagramme en tornade de la valeur DCF du cas 3, 9 intrants [données synthétiques]",verifie
2 21
Menu

Theme