SPB Git

Ch. 29 et 30 livrés (35 et 37 p.) ; Loi sur l'intérêt vérifiée et référencée ; fusion des registres

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

12 changed files +658 −10

added analysis/python/cases/ch01_valeur_prix.py +234 −0
@@ -0,0 +1,234 @@
1+#!/usr/bin/env python3
2+"""Chapitre 1 — Théorie de la valeur et prix immobiliers : tous les chiffres cités dans le texte (DONNÉES SYNTHÉTIQUES, cas 1, graine 20261031).
3+
4+Sections du script :
5+ 1. modèle hédonique de référence du cas 1 (traite.cas1.hedonique) : dispersion des prix à caractéristiques données (sigma),
6+ prix implicites, contributions, rendements décroissants, anticipation (tendance), conformité (secteurs) ;
7+ 2. valeur = espérance conditionnelle : prédiction pour le sujet, médiane/moyenne/mode log-normaux, facteur de Duan,
8+ intervalle de prédiction, probabilité d'un écart prix/valeur supérieur à un seuil ;
9+ 3. prix des comparables du chapitre 16 (prix observés vs valeur estimée) ;
10+ 4. modèle de recherche du vendeur (simulation étiquetée) : prix de réserve, délai de vente, dispersion des prix de biens identiques ;
11+ 5. plus haute et meilleure utilisation : valeur résiduelle du terrain selon trois usages (hypothèses déclarées) ;
12+ 6. sensibilité à la dispersion sigma.
13+Exécuter depuis la racine : python3 analysis/python/cases/ch01_valeur_prix.py
14+"""
15+from __future__ import annotations
16+import sys, pathlib, math
17+import numpy as np, pandas as pd
18+
19+ROOT = pathlib.Path(__file__).resolve().parents[3]
20+sys.path.insert(0, str(ROOT / "analysis/python"))
21+from traite import cas1
22+from scipy.stats import norm
23+
24+GRAINE = 20261031
25+
26+# ---------------------------------------------------------------------------- 1. modèle hédonique et principes
27+
28+LIBELLES = {
29+ "ln_S": "Superficie habitable (élasticité, réf. 140 m²)", "ln_T": "Superficie du terrain (élasticité, réf. 560 m²)",
30+ "age": "Âge (par année)", "age2_100": "Âge au carré (/100)", "qualite": "Qualité (par échelon, réf. 3)",
31+ "garage": "Garage (par place)", "sous_sol": "Sous-sol fini", "piscine": "Piscine", "etages": "Bâtiment à étages",
32+ "dist_centre": "Distance au centre au-delà de 3 km (par km)", "sect_Gatineau": "Secteur Gatineau (réf. Hull)",
33+ "sect_Aylmer": "Secteur Aylmer (réf. Hull)", "sect_Buckingham": "Secteur Buckingham (réf. Hull)",
34+ "sect_Masson-Angers": "Secteur Masson-Angers (réf. Hull)", "mois": "Tendance du marché (par mois)",
35+}
36+
37+def modele() -> dict:
38+ d = cas1.charger(); m = cas1.hedonique(d["ventes"])
39+ return {**d, "modele": m}
40+
41+def prediction_sujet(r: dict) -> dict:
42+ """Valeur du sujet comme espérance conditionnelle : médiane (exp(x'b)), moyenne (Duan), intervalle de prédiction à 95 %."""
43+ m, s = r["modele"], r["sujet"]
44+ sd = cas1.sujet_df(s)
45+ X = cas1.matrice(sd)[m["X"].columns]
46+ lnp = float((X.values @ m["beta"])[0])
47+ duan = float(np.mean(np.exp(m["residus"])))
48+ sigma = m["sigma"]
49+ ip = cas1.intervalle_prediction(m, sd).iloc[0]
50+ return {"ln_pred": lnp, "mediane": math.exp(lnp), "moyenne_duan": math.exp(lnp) * duan, "facteur_duan": duan,
51+ "moyenne_lognormale": math.exp(lnp + sigma ** 2 / 2), "mode_lognormal": math.exp(lnp - sigma ** 2),
52+ "ip_bas": float(ip["bas"]), "ip_haut": float(ip["haut"]), "sigma": sigma,
53+ "se_pred_log": float(math.sqrt(sigma ** 2 + (X.values @ m["V_hc1"] @ X.values.T)[0, 0])),
54+ "x_sujet": X.iloc[0]}
55+
56+def contributions(r: dict, pred: dict) -> pd.DataFrame:
57+ """Prix implicites et contributions marginales des attributs du sujet : C_k = P̂ [1 − exp(−β_k x_k)] (retrait de l'attribut)."""
58+ m = r["modele"]; beta = pd.Series(m["beta"], index=m["X"].columns); x = pred["x_sujet"]; P = pred["mediane"]
59+ rows = []
60+ for k in beta.index:
61+ if k == "const": continue
62+ bx = float(beta[k] * x[k])
63+ rows.append({"variable": k, "libelle": LIBELLES.get(k, k), "x_sujet": float(x[k]), "beta": float(beta[k]),
64+ "se_hc1": float(m["coef"].loc[k, "se_hc1"]), "effet_pct_unitaire": math.exp(beta[k]) - 1,
65+ "beta_x": bx, "effet_pct_sujet": math.exp(bx) - 1, "contribution_dollars": P * (1 - math.exp(-bx))})
66+ return pd.DataFrame(rows).set_index("variable")
67+
68+def rendements_decroissants(r: dict, pred: dict) -> dict:
69+ """Prix moyen et prix marginal du mètre carré habitable pour le sujet : dP/dS = β_S P / S."""
70+ m, s = r["modele"], r["sujet"]; bS = float(m["coef"].loc["ln_S", "coef"]); P = pred["mediane"]; S = s["superficie_habitable_m2"]
71+ out = {"elasticite_S": bS, "prix_moyen_m2": P / S, "prix_marginal_m2": bS * P / S}
72+ # valeur ajoutée par 10 m² supplémentaires, puis par 10 m² de plus (décroissance)
73+ out["gain_10m2"] = P * ((1 + 10 / S) ** bS - 1)
74+ out["gain_10m2_suivants"] = P * ((1 + 20 / S) ** bS - (1 + 10 / S) ** bS)
75+ return out
76+
77+def anticipation(r: dict, pred: dict) -> dict:
78+ """Tendance temporelle : croissance mensuelle, annuelle composée ; prix du sujet à la date de référence du rôle vs date d'évaluation."""
79+ m, s = r["modele"], r["sujet"]; g_m = m["croissance_mensuelle"]
80+ mois_ref = float(pred["x_sujet"]["mois"]) # mois entre 2024-07-01 et 2026-09-01
81+ return {"croissance_mensuelle": g_m, "croissance_annuelle": (1 + g_m) ** 12 - 1, "mois_depuis_reference": mois_ref,
82+ "facteur_cumule": (1 + g_m) ** mois_ref, "valeur_a_la_reference": pred["mediane"] / (1 + g_m) ** mois_ref,
83+ "valeur_role": s["valeur_role_2025"]}
84+
85+def conformite(r: dict, pred: dict) -> pd.DataFrame:
86+ """Valeur du sujet (médiane conditionnelle) s'il était situé dans chacun des cinq secteurs, toutes choses égales d'ailleurs."""
87+ m = r["modele"]; beta = pd.Series(m["beta"], index=m["X"].columns); P = pred["mediane"]
88+ rows = [{"secteur": "Hull", "effet_pct": 0.0, "valeur": P}]
89+ for sct in cas1.SECTEURS[1:]:
90+ b = float(beta[f"sect_{sct}"]); rows.append({"secteur": sct, "effet_pct": math.exp(b) - 1, "valeur": P * math.exp(b)})
91+ return pd.DataFrame(rows).set_index("secteur")
92+
93+# ---------------------------------------------------------------------------- 2. dispersion et espérance conditionnelle
94+
95+def dispersion(r: dict) -> dict:
96+ res = r["modele"]["residus"]; sigma = r["modele"]["sigma"]
97+ s = pd.Series(res)
98+ out = {"n": len(res), "sigma": sigma, "ecart_type_residus": float(s.std(ddof=1)), "asymetrie": float(s.skew()), "aplatissement_exces": float(s.kurt()),
99+ "q025": float(np.quantile(res, 0.025)), "q975": float(np.quantile(res, 0.975)),
100+ "part_dans_pm10pct": float(np.mean(np.abs(res) <= math.log(1.10))),
101+ "part_dans_pm5pct": float(np.mean(np.abs(res) <= math.log(1.05)))}
102+ out["r2"] = r["modele"]["r2"]; out["r2_ajuste"] = r["modele"]["r2_ajuste"]
103+ return out
104+
105+def proba_ecart(sigma: float, d: float) -> float:
106+ """P(|P/V − 1| > d) sous ln(P/V) ~ N(0, σ²) : 2[1 − Φ(ln(1+d)/σ)] (approximation symétrique en log)."""
107+ return 2 * (1 - norm.cdf(math.log(1 + d) / sigma))
108+
109+def tableau_sensibilite(sigmas=(0.04, 0.06, 0.083, 0.12, 0.16)) -> pd.DataFrame:
110+ rows = []
111+ for sg in sigmas:
112+ rows.append({"sigma": sg, "moyenne_sur_mediane": math.exp(sg ** 2 / 2) - 1, "mode_sur_mediane": math.exp(-sg ** 2) - 1,
113+ "ip95_bas_pct": math.exp(-1.96 * sg) - 1, "ip95_haut_pct": math.exp(1.96 * sg) - 1,
114+ "proba_ecart_10pct": proba_ecart(sg, 0.10), "proba_ecart_5pct": proba_ecart(sg, 0.05),
115+ "n_pour_se_2pct": math.ceil((1.96 * sg / math.log(1.02)) ** 2)})
116+ return pd.DataFrame(rows).set_index("sigma")
117+
118+# ---------------------------------------------------------------------------- 3. comparables du chapitre 16 : prix observés vs valeur estimée
119+
120+def comparables_ch16(r: dict) -> pd.DataFrame:
121+ sel = cas1.selection(); comps = sel["comparables"].copy()
122+ m = r["modele"]
123+ idx = comps.index
124+ comps["valeur_estimee"] = np.exp(m["X"].loc[idx].values @ m["beta"])
125+ comps["residu_log"] = m["residus"][[list(r["ventes"].index).index(i) for i in idx]]
126+ comps["ecart_pct"] = comps["prix_vente"] / comps["valeur_estimee"] - 1
127+ return comps[["id_vente", "date_vente", "superficie_habitable_m2", "qualite_1a5", "garage_places", "prix_vente", "valeur_estimee", "ecart_pct"]]
128+
129+# ---------------------------------------------------------------------------- 4. recherche du vendeur (simulation étiquetée)
130+
131+def prix_reserve(centre: float, sigma_o: float, c_mois: float, taux_annuel: float, p_offre: float = 1.0, n_quad: int = 4001) -> float:
132+ """Point fixe W = −c + δ [ p E max(O, W) + (1 − p) W ], offres O ~ log-normale(ln centre, σ_o²) ; prix de réserve r = W.
133+ centre = médiane des enchères des acheteurs (≠ valeur marchande, qui est l'espérance du prix ACCEPTÉ) ;
134+ c_mois = coût de détention mensuel (proportion de centre) ; δ = 1/(1 + i/12)."""
135+ delta = 1 / (1 + taux_annuel / 12); c = c_mois * centre
136+ z = np.linspace(-6, 6, n_quad); w = norm.pdf(z); w /= w.sum()
137+ O = centre * np.exp(sigma_o * z)
138+ W = centre * 0.9
139+ for _ in range(10_000):
140+ EmaxO = float(np.sum(w * np.maximum(O, W)))
141+ Wn = -c + delta * (p_offre * EmaxO + (1 - p_offre) * W)
142+ if abs(Wn - W) < 1e-6: W = Wn; break
143+ W = Wn
144+ return float(W)
145+
146+def simuler_ventes(centre: float, sigma_o: float, c_mois: float, taux_annuel: float, p_offre: float = 1.0, n: int = 20_000, graine: int = GRAINE) -> dict:
147+ """n vendeurs de biens identiques de valeur centre suivent la règle du prix de réserve ; prix accepté et délai de vente."""
148+ rng = np.random.default_rng(graine)
149+ r = prix_reserve(centre, sigma_o, c_mois, taux_annuel, p_offre)
150+ prix = np.empty(n); delai = np.empty(n)
151+ for i in range(n):
152+ t = 0
153+ while True:
154+ t += 1
155+ if rng.random() <= p_offre:
156+ o = centre * math.exp(sigma_o * rng.standard_normal())
157+ if o >= r: prix[i] = o; delai[i] = t; break
158+ return {"prix_reserve": r, "prix": prix, "delai": delai, "prix_moyen": float(prix.mean()), "prix_median": float(np.median(prix)),
159+ "ecart_type_prix": float(prix.std(ddof=1)), "cv_prix": float(prix.std(ddof=1) / prix.mean()),
160+ "delai_moyen": float(delai.mean()), "delai_median": float(np.median(delai)),
161+ "delai_theorique": 1 / (p_offre * (1 - norm.cdf(math.log(r / centre) / sigma_o)))}
162+
163+PARAMS_RECHERCHE = {"sigma_o": 0.06, "c_mois": 0.004, "taux_annuel": 0.05, "p_offre": 0.6}
164+
165+def tableau_recherche(centre: float) -> pd.DataFrame:
166+ rows = []
167+ for c in (0.002, 0.004, 0.008, 0.015):
168+ s = simuler_ventes(centre, PARAMS_RECHERCHE["sigma_o"], c, PARAMS_RECHERCHE["taux_annuel"], PARAMS_RECHERCHE["p_offre"], n=10_000)
169+ rows.append({"cout_detention_mensuel": c, "prix_reserve_sur_V": s["prix_reserve"] / centre, "delai_moyen_mois": s["delai_moyen"],
170+ "delai_theorique_mois": s["delai_theorique"], "prix_moyen_sur_V": s["prix_moyen"] / centre, "cv_prix": s["cv_prix"]})
171+ return pd.DataFrame(rows).set_index("cout_detention_mensuel")
172+
173+# ---------------------------------------------------------------------------- 5. PHMU : valeur résiduelle du terrain (hypothèses déclarées)
174+
175+USAGES_PHMU = pd.DataFrame({
176+ "usage": ["Unifamiliale (usage actuel)", "Duplex", "Triplex (si le zonage le permet)"],
177+ "valeur_produit_fini": [640_000, 880_000, 1_150_000],
178+ "cout_total_construction": [470_000, 720_000, 1_010_000],
179+}).set_index("usage")
180+
181+def phmu() -> pd.DataFrame:
182+ """Valeur résiduelle du terrain = valeur du produit fini − coût total (construction, frais, profit du promoteur inclus).
183+ Chiffres HYPOTHÉTIQUES, pédagogiques, déclarés dans le texte ; non calibrés."""
184+ t = USAGES_PHMU.copy(); t["valeur_residuelle_terrain"] = t["valeur_produit_fini"] - t["cout_total_construction"]
185+ return t
186+
187+# ---------------------------------------------------------------------------- 6. ancrage : modèle descriptif
188+
189+def estimation_ancree(valeur: float, ancre: float, lam: float) -> float:
190+ """Estimation = λ·ancre + (1 − λ)·valeur (modèle descriptif de l'ancrage-ajustement)."""
191+ return lam * ancre + (1 - lam) * valeur
192+
193+# ---------------------------------------------------------------------------- tout
194+
195+def tout() -> dict:
196+ r = modele(); pred = prediction_sujet(r)
197+ out = {**r, "pred": pred, "contrib": contributions(r, pred), "rendements": rendements_decroissants(r, pred),
198+ "anticipation": anticipation(r, pred), "conformite": conformite(r, pred), "dispersion": dispersion(r),
199+ "sensibilite": tableau_sensibilite(), "comparables": comparables_ch16(r), "phmu": phmu()}
200+ V = pred["mediane"]
201+ out["recherche"] = simuler_ventes(V, **PARAMS_RECHERCHE)
202+ out["recherche_tableau"] = tableau_recherche(V)
203+ return out
204+
205+def main():
206+ pd.set_option("display.width", 220); pd.set_option("display.max_columns", 30)
207+ t = tout(); m = t["modele"]; p = t["pred"]; d = t["dispersion"]
208+ print(f"== Modèle hédonique cas 1 : n = {m['n']}, k = {m['k']}, R² = {m['r2']:.4f}, R² ajusté = {m['r2_ajuste']:.4f}, sigma = {m['sigma']:.4f}")
209+ print(f"== Résidus : écart-type {d['ecart_type_residus']:.4f}, asymétrie {d['asymetrie']:.3f}, aplatissement (excès) {d['aplatissement_exces']:.3f}, "
210+ f"q2,5 % {d['q025']:.4f}, q97,5 % {d['q975']:.4f} ; part des ventes à ±10 % de la valeur estimée {d['part_dans_pm10pct']:.3f}, à ±5 % {d['part_dans_pm5pct']:.3f}")
211+ print(f"== Sujet : ln V = {p['ln_pred']:.4f} ; médiane {p['mediane']:,.0f} $ ; moyenne (Duan ×{p['facteur_duan']:.5f}) {p['moyenne_duan']:,.0f} $ ; "
212+ f"moyenne log-normale {p['moyenne_lognormale']:,.0f} $ ; mode {p['mode_lognormal']:,.0f} $ ; IP 95 % [{p['ip_bas']:,.0f} ; {p['ip_haut']:,.0f}] ; se(log) {p['se_pred_log']:.4f}")
213+ print(f"== P(|P/V − 1| > 10 %) = {proba_ecart(m['sigma'], 0.10):.3f} ; > 5 % = {proba_ecart(m['sigma'], 0.05):.3f} ; > 20 % = {proba_ecart(m['sigma'], 0.20):.4f}")
214+ print("== Prix implicites et contributions pour le sujet :\n", t["contrib"].round(5).to_string())
215+ rd = t["rendements"]
216+ print(f"== Rendements décroissants : élasticité {rd['elasticite_S']:.4f} ; prix moyen {rd['prix_moyen_m2']:,.0f} $/m² ; prix marginal {rd['prix_marginal_m2']:,.0f} $/m² ; "
217+ f"+10 m² = {rd['gain_10m2']:,.0f} $ ; 10 m² suivants = {rd['gain_10m2_suivants']:,.0f} $")
218+ a = t["anticipation"]
219+ print(f"== Anticipation : {a['croissance_mensuelle']*100:.4f} %/mois = {a['croissance_annuelle']*100:.2f} %/an ; {a['mois_depuis_reference']:.1f} mois depuis 2024-07-01, "
220+ f"facteur {a['facteur_cumule']:.4f} ; valeur du sujet à la référence {a['valeur_a_la_reference']:,.0f} $ vs rôle fictif {a['valeur_role']:,.0f} $")
221+ print("== Conformité (secteurs) :\n", t["conformite"].round(4).to_string())
222+ c = t["comparables"].copy(); c["date_vente"] = c["date_vente"].dt.strftime("%Y-%m-%d")
223+ print("== Comparables du chapitre 16 : prix observés vs valeur estimée :\n", c.round(3).to_string(index=False))
224+ s = t["recherche"]
225+ print(f"== Recherche (σ_o {PARAMS_RECHERCHE['sigma_o']}, c {PARAMS_RECHERCHE['c_mois']}/mois, i {PARAMS_RECHERCHE['taux_annuel']}, p {PARAMS_RECHERCHE['p_offre']}) : "
226+ f"prix de réserve {s['prix_reserve']:,.0f} $ ({s['prix_reserve']/p['mediane']:.4f} V) ; prix moyen {s['prix_moyen']:,.0f} $ ; CV {s['cv_prix']:.4f} ; "
227+ f"délai moyen {s['delai_moyen']:.2f} mois (théorique {s['delai_theorique']:.2f}), médian {s['delai_median']:.0f}")
228+ print("== Recherche : sensibilité au coût de détention :\n", t["recherche_tableau"].round(4).to_string())
229+ print("== PHMU (hypothèses déclarées) :\n", t["phmu"].to_string())
230+ print("== Sensibilité à sigma :\n", t["sensibilite"].round(4).to_string())
231+ return t
232+
233+if __name__ == "__main__":
234+ main()
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.35, tt["va_cumulee"].iloc[-1] / 1000 - 90), ha="right", va="top", fontsize=8) 30+ ax2.annotate(f"flux : {fmt_milliers(d['va_flux'])} \\$ ({d['va_flux']/d['valeur']*100:.0f} %)", xy=(5.3, 640), ha="left", va="bottom", 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 analysis/python/traite/cas3.py +1 −1
@@ -23,7 +23,7 @@ def revenus(etat: pd.DataFrame, hyp: dict) -> dict:
23 23
24 def depenses_normalisees(dep: pd.DataFrame, hyp: dict, rbe: float, annee_base: int = 2025, inflation: float | None = None) -> pd.DataFrame: 24 def depenses_normalisees(dep: pd.DataFrame, hyp: dict, rbe: float, annee_base: int = 2025, inflation: float | None = None) -> pd.DataFrame:
25 """Normalisation : dernière année observée indexée d'un an (dépenses +g), taxes recalculées sur la valeur au rôle × taux, 25 """Normalisation : dernière année observée indexée d'un an (dépenses +g), taxes recalculées sur la valeur au rôle × taux,
26− gestion = 4 % du RBE (imputée, même si propriétaire gère), réserve = 650 $/logement (convention du livre).""" 26+ gestion = 4 % du RBE (imputée, même si propriétaire gère), réserve = montant historique 2025 conservé tel quel (≈ 675 $/logement), non indexée (convention du livre)."""
27 g = hyp["croissance_depenses"] if inflation is None else inflation 27 g = hyp["croissance_depenses"] if inflation is None else inflation
28 d = dep[dep["annee"] == annee_base].set_index("poste")["montant"].astype(float) 28 d = dep[dep["annee"] == annee_base].set_index("poste")["montant"].astype(float)
29 norm = {} 29 norm = {}
modified assets/figures/ch30/ch30-fig-flux.pdf +0 −0

Binary file not shown.

modified manuscript/chapters/ch29.tex +3 −3
@@ -303,7 +303,7 @@ Revenu brut potentiel, loyers contractuels (RBP) & 165540.00 & douze baux en vig
303 \quad\emph{pour mémoire : RBP aux loyers de marché} & {\emph{186 036,00}} & loyers SCHL zone Rosemont, oct. 2025 \\ 303 \quad\emph{pour mémoire : RBP aux loyers de marché} & {\emph{186 036,00}} & loyers SCHL zone Rosemont, oct. 2025 \\
304 Inoccupation et mauvaises créances (\pct{3.9} du RBP) & -6456.06 & hypothèse du dossier ; RMR : \pct{2.9} en oct. 2025 \\ 304 Inoccupation et mauvaises créances (\pct{3.9} du RBP) & -6456.06 & hypothèse du dossier ; RMR : \pct{2.9} en oct. 2025 \\
305 Autres revenus (stationnement, buanderie) & 9360.00 & six places et services \\ 305 Autres revenus (stationnement, buanderie) & 9360.00 & six places et services \\
306−\textbf{Revenu brut effectif (RBE)} & \textbf{168443.94} & \\ 306+\textbf{Revenu brut effectif (RBE)} & {\textbf{\num{168443.94}}} & \\
307 \midrule 307 \midrule
308 Taxes municipales (\num{0.4631}~\$/100~\$ du rôle) & -10188.20 & rôle \dollars{2200000} \\ 308 Taxes municipales (\num{0.4631}~\$/100~\$ du rôle) & -10188.20 & rôle \dollars{2200000} \\
309 Taxe scolaire (\num{0.07899}~\$/100~\$) & -1737.78 & rôle \dollars{2200000} \\ 309 Taxe scolaire (\num{0.07899}~\$/100~\$) & -1737.78 & rôle \dollars{2200000} \\
@@ -318,9 +318,9 @@ Publicité et location & -1358.57 & 2025 $\times$ \num{1.03} \\
318 Gestion imputée (\pct{4} du RBE) & -6737.76 & convention de l'ouvrage \\ 318 Gestion imputée (\pct{4} du RBE) & -6737.76 & convention de l'ouvrage \\
319 \emph{Sous-total des dépenses d'exploitation} & {\emph{$-$70 385,19}} & \pct{41.8} du RBE \\ 319 \emph{Sous-total des dépenses d'exploitation} & {\emph{$-$70 385,19}} & \pct{41.8} du RBE \\
320 Réserve de remplacement (\dollars{675} par logement) & -8103.00 & convention du dossier, non indexée \\ 320 Réserve de remplacement (\dollars{675} par logement) & -8103.00 & convention du dossier, non indexée \\
321−\textbf{Dépenses totales} & \textbf{-78488.19} & \pct{46.6} du RBE \\ 321+\textbf{Dépenses totales} & {\textbf{\num{-78488.19}}} & \pct{46.6} du RBE \\
322 \midrule 322 \midrule
323−\textbf{Revenu net d'exploitation normalisé ($\NOI_1$)} & \textbf{89955.75} & \dollars{7496} par logement \\ 323+\textbf{Revenu net d'exploitation normalisé ($\NOI_1$)} & {\textbf{\num{89955.75}}} & \dollars{7496} par logement \\
324 \bottomrule 324 \bottomrule
325 \end{tabular} 325 \end{tabular}
326 \tabsource{\synth{\texttt{traite.cas3.rne} ; état locatif et dépenses 2023-2025 du dossier cas~3, graine 20261031 ; taux de taxes : \cite{ledevoirmtl2026,taxescolaire2026}}} 326 \tabsource{\synth{\texttt{traite.cas3.rne} ; état locatif et dépenses 2023-2025 du dossier cas~3, graine 20261031 ; taux de taxes : \cite{ledevoirmtl2026,taxescolaire2026}}}
modified manuscript/chapters/ch47.tex +348 −4
@@ -343,15 +343,15 @@ Statistique (n = 40) & {Taux (\%)} & {$\NOI_1 / R$ (\$)} \\
343 Minimum & 3.720 & 2418165 \\ 343 Minimum & 3.720 & 2418165 \\
344 Premier quartile & 4.152 & 2166303 \\ 344 Premier quartile & 4.152 & 2166303 \\
345 \textbf{Médiane (taux retenu)} & \textbf{4.415} & \textbf{2037503} \\ 345 \textbf{Médiane (taux retenu)} & \textbf{4.415} & \textbf{2037503} \\
346−Moyenne simple & 4.404 & 2042700 \\ 346+Moyenne simple & 4.404 & 2042708 \\
347 Moyenne pondérée par le RNE & 4.332 & 2076581 \\ 347 Moyenne pondérée par le RNE & 4.332 & 2076581 \\
348 Troisième quartile & 4.638 & 1939747 \\ 348 Troisième quartile & 4.638 & 1939747 \\
349−Maximum & 5.470 & 1644530 \\ 349+Maximum & 5.470 & 1644529 \\
350 Écart-type & 0.406 & {—} \\ 350 Écart-type & 0.406 & {—} \\
351 \midrule 351 \midrule
352 Médiane, immeubles de 6 à 14 logements (n = 14) & 4.555 & 1974879 \\ 352 Médiane, immeubles de 6 à 14 logements (n = 14) & 4.555 & 1974879 \\
353 Médiane, ventes des 12 derniers mois (n = 17) & 4.430 & 2030604 \\ 353 Médiane, ventes des 12 derniers mois (n = 17) & 4.430 & 2030604 \\
354−Médiane, quartier Rosemont (n = 12) & 4.590 & 1959820 \\ 354+Médiane, quartier Rosemont (n = 11) & 4.590 & 1959820 \\
355 Régression : constante (état 3, 12 logements) & 4.567 & 1969694 \\ 355 Régression : constante (état 3, 12 logements) & 4.567 & 1969694 \\
356 \quad pente par point d'état (2 → 4) & -0.044 & {—} \\ 356 \quad pente par point d'état (2 → 4) & -0.044 & {—} \\
357 \quad pente par logement supplémentaire & -0.023 & {—} \\ 357 \quad pente par logement supplémentaire & -0.023 & {—} \\
@@ -368,7 +368,7 @@ Régression : constante (état 3, 12 logements) & 4.567 & 1969694 \\
368 368
369 \subsection{Choix du taux et indication de valeur} 369 \subsection{Choix du taux et indication de valeur}
370 370
371−La distribution des taux est resserrée : la moitié centrale des ventes se situe entre \pct{4.152} et \pct{4.638}, l'écart-type est de 41~points de base et la fourchette entière, de \pct{3.72} à \pct{5.47}, s'inscrit presque exactement dans l'intervalle publié par CBRE pour le multirésidentiel de faible hauteur à Montréal, \pct{4.25} à \pct{4.75} pour la catégorie B, les quelques ventes sous \pct{4} correspondant à de grands immeubles du Plateau qui relèvent plutôt de la catégorie A \parencite{cbrecaprates2026q3}. Trois sous-échantillons éclairent la position du sujet. Les immeubles de 6 à 14 logements se vendent à une médiane de \pct{4.555}, soit 14~points de base au-dessus de l'ensemble, ce que la pente de la régression confirme (environ 2~points de base de taux par logement supplémentaire) : les petits immeubles sont moins liquides et moins recherchés des investisseurs institutionnels. Les ventes des douze derniers mois donnent une médiane de \pct{4.43}, pratiquement égale à celle de l'ensemble : aucune dérive temporelle n'est perceptible, en accord avec la lecture « stable à légèrement en hausse » du marché. Le quartier Rosemont affiche une médiane de \pct{4.59}, mais sur douze ventes dont plusieurs grands immeubles anciens ; l'effet de quartier est confondu avec l'effet de taille et l'évaluateur ne lui accorde pas de poids distinct. Quant à l'état, la pente estimée est faible et de signe négatif (un meilleur état abaisse le taux), mais elle n'est pas statistiquement distinguable de zéro sur quarante observations. 371+La distribution des taux est resserrée : la moitié centrale des ventes se situe entre \pct{4.152} et \pct{4.638}, l'écart-type est de 41~points de base et la fourchette entière, de \pct{3.72} à \pct{5.47}, s'inscrit presque exactement dans l'intervalle publié par CBRE pour le multirésidentiel de faible hauteur à Montréal, \pct{4.25} à \pct{4.75} pour la catégorie B, les quelques ventes sous \pct{4} correspondant à de grands immeubles du Plateau qui relèvent plutôt de la catégorie A \parencite{cbrecaprates2026q3}. Trois sous-échantillons éclairent la position du sujet. Les immeubles de 6 à 14 logements se vendent à une médiane de \pct{4.555}, soit 14~points de base au-dessus de l'ensemble, ce que la pente de la régression confirme (environ 2~points de base de taux par logement supplémentaire) : les petits immeubles sont moins liquides et moins recherchés des investisseurs institutionnels. Les ventes des douze derniers mois donnent une médiane de \pct{4.43}, pratiquement égale à celle de l'ensemble : aucune dérive temporelle n'est perceptible, en accord avec la lecture « stable à légèrement en hausse » du marché. Le quartier Rosemont affiche une médiane de \pct{4.59}, mais sur onze ventes dont plusieurs grands immeubles anciens ; l'effet de quartier est confondu avec l'effet de taille et l'évaluateur ne lui accorde pas de poids distinct. Quant à l'état, la pente estimée est faible et de signe négatif (un meilleur état abaisse le taux), mais elle n'est pas statistiquement distinguable de zéro sur quarante observations.
372 372
373 L'évaluateur retient la médiane de l'ensemble, \pct{4.415}, arrondie à \pct{4.42} dans la conclusion. Ce choix se justifie par la robustesse de la médiane aux valeurs extrêmes, par la cohérence avec la fourchette CBRE et avec la médiane des ventes récentes, et par la position du sujet : un immeuble de douze logements, d'état moyen, à Rosemont, dont les loyers sont sous le marché. Ce dernier trait mérite réflexion. Un acheteur qui anticipe un rattrapage des loyers accepte un taux de première année plus bas qu'il ne le ferait pour un immeuble déjà au marché, puisque la croissance attendue du revenu est plus forte ; la relation $R \approx r - g$ du modèle de \textcite{gordonShapiro1956}, dérivée au \chref{29}, l'exprime directement. Les comparables synthétiques ont été générés avec des loyers en place eux aussi décotés selon l'ancienneté, de sorte que leur taux global intègre déjà, en moyenne, une attente de rattrapage comparable ; appliquer la médiane au sujet revient à lui prêter un potentiel de croissance moyen, ce qui est prudent compte tenu de l'écart de \pct{11} au marché. L'évaluateur aurait pu, à l'inverse, retenir un taux légèrement supérieur pour la petite taille (vers \pct{4.55}) ; il s'en abstient parce que la méthode des flux actualisés, à la section suivante, rend explicite la trajectoire des loyers et offre un contrepoids à ce jugement. 373 L'évaluateur retient la médiane de l'ensemble, \pct{4.415}, arrondie à \pct{4.42} dans la conclusion. Ce choix se justifie par la robustesse de la médiane aux valeurs extrêmes, par la cohérence avec la fourchette CBRE et avec la médiane des ventes récentes, et par la position du sujet : un immeuble de douze logements, d'état moyen, à Rosemont, dont les loyers sont sous le marché. Ce dernier trait mérite réflexion. Un acheteur qui anticipe un rattrapage des loyers accepte un taux de première année plus bas qu'il ne le ferait pour un immeuble déjà au marché, puisque la croissance attendue du revenu est plus forte ; la relation $R \approx r - g$ du modèle de \textcite{gordonShapiro1956}, dérivée au \chref{29}, l'exprime directement. Les comparables synthétiques ont été générés avec des loyers en place eux aussi décotés selon l'ancienneté, de sorte que leur taux global intègre déjà, en moyenne, une attente de rattrapage comparable ; appliquer la médiane au sujet revient à lui prêter un potentiel de croissance moyen, ce qui est prudent compte tenu de l'écart de \pct{11} au marché. L'évaluateur aurait pu, à l'inverse, retenir un taux légèrement supérieur pour la petite taille (vers \pct{4.55}) ; il s'en abstient parce que la méthode des flux actualisés, à la section suivante, rend explicite la trajectoire des loyers et offre un contrepoids à ce jugement.
374 374
@@ -504,3 +504,347 @@ Le \cref{tab:47:grille} montre que les prix ajustés se resserrent entre \dollar
504 La méthode du multiplicateur du revenu brut (MRB), plus fruste, donne un repère complémentaire : les dix comparables se vendent à une médiane de \num{11.94} fois leur revenu brut potentiel (quartiles \num{11.50} et \num{14.60}), ce qui, appliqué au revenu contractuel du sujet, donne $\num{11.94} \times \dollars{165540} = \dollars{1976548}$. Le multiplicateur n'est pas ajusté pour les dépenses ni pour l'écart au marché des loyers, et sa dispersion interquartile de \pct{27} en fait un indicateur de vraisemblance plutôt qu'une méthode à part entière ; il n'est pas pondéré dans la réconciliation mais y est rapporté. 504 La méthode du multiplicateur du revenu brut (MRB), plus fruste, donne un repère complémentaire : les dix comparables se vendent à une médiane de \num{11.94} fois leur revenu brut potentiel (quartiles \num{11.50} et \num{14.60}), ce qui, appliqué au revenu contractuel du sujet, donne $\num{11.94} \times \dollars{165540} = \dollars{1976548}$. Le multiplicateur n'est pas ajusté pour les dépenses ni pour l'écart au marché des loyers, et sa dispersion interquartile de \pct{27} en fait un indicateur de vraisemblance plutôt qu'une méthode à part entière ; il n'est pas pondéré dans la réconciliation mais y est rapporté.
505 505
506 L'indication par unité est inférieure de \pct{8.2} à la capitalisation directe et de \pct{15.3} aux flux actualisés. Cette hiérarchie est instructive : la comparaison par logement, ajustée sur le niveau de loyer en place, pénalise le sujet pour ses loyers bas sans lui créditer le rattrapage futur, alors que la capitalisation le crédite implicitement au niveau moyen du marché et que le DCF le crédite explicitement. Les trois indications décrivent donc un même immeuble sous trois degrés d'anticipation du rattrapage ; la réconciliation ne consiste pas à en faire la moyenne mécanique, mais à décider quel degré d'anticipation un acheteur typique paie réellement à la date d'évaluation. 506 L'indication par unité est inférieure de \pct{8.2} à la capitalisation directe et de \pct{15.3} aux flux actualisés. Cette hiérarchie est instructive : la comparaison par logement, ajustée sur le niveau de loyer en place, pénalise le sujet pour ses loyers bas sans lui créditer le rattrapage futur, alors que la capitalisation le crédite implicitement au niveau moyen du marché et que le DCF le crédite explicitement. Les trois indications décrivent donc un même immeuble sous trois degrés d'anticipation du rattrapage ; la réconciliation ne consiste pas à en faire la moyenne mécanique, mais à décider quel degré d'anticipation un acheteur typique paie réellement à la date d'évaluation.
507+
508+\section{Financement}\label{sec:47:financement}
509+
510+\subsection{Prêt maximal : ratio prêt-valeur ou couverture de la dette}
511+
512+Le prêteur fictif offre un prêt de premier rang assuré, au taux de \pct{4.12} fixe pour un terme de cinq ans, amorti sur quarante ans, sous deux contraintes : un ratio prêt-valeur (RPV, \emph{loan-to-value}) maximal de \pct{75} et un ratio de couverture de la dette (RCD, \emph{debt service coverage ratio}) minimal de \num{1.20}. Les hypothèques canadiennes à taux fixe portent intérêt composé semestriellement\footnote{En vertu de la Loi sur l'intérêt (L.R.C. 1985, c.~I-15, art.~6), qui impose d'exprimer le taux en taux annuel calculé semestriellement ou annuellement ; voir l'annexe des conventions de calcul.}, de sorte que le taux mensuel équivalent et le paiement mensuel constant sur $n = 480$ mois sont
513+\begin{equation}\label{eq:47:paiement}
514+i_m = \left(1 + \frac{i}{2}\right)^{1/6} - 1 = \num{0.0034042}, \qquad PMT = M_0\,\frac{i_m}{1 - (1+i_m)^{-n}}, \qquad f = \frac{12\,PMT}{M_0} = \pct{5.0789},
515+\end{equation}
516+où $f$ est la constante hypothécaire, indépendante du montant emprunté. Le prêt maximal est le plus petit des deux montants autorisés :
517+\begin{equation}\label{eq:47:pretmax}
518+M_{\max} = \min\!\left( \LTV_{\max}\, \hat V,\ \frac{\NOI_1}{\DSCR_{\min}\, f} \right)
519+= \min\!\left( \num{0.75} \times \dollars{2208566},\ \frac{\dollars{89955.75}}{\num{1.20} \times \num{0.050789}} \right)
520+= \min(\dollars{1656424},\ \dollars{1475959}).
521+\end{equation}
522+La contrainte liante est la couverture de la dette : le prêt est plafonné à \dollars{1475959}, soit un ratio prêt-valeur effectif de \pct{66.8} sur l'indication DCF, bien en deçà des \pct{75} offerts. Ce résultat est général en 2026 pour les immeubles dont le taux de capitalisation est inférieur à la constante hypothécaire : la condition $\DSCR \geq 1{,}20$ s'écrit $M_0 / V \leq R / (1{,}20\, f)$, soit ici $\num{0.04415} / (1{,}20 \times \num{0.050789}) = \pct{72.4}$ sur la valeur par capitalisation, et moins encore lorsque la valeur retenue excède la capitalisation du revenu courant. Dans la suite de cette section, le financement est présenté, comme au \chref{31}, sur la base de l'indication DCF afin de conserver des chiffres identiques d'un chapitre à l'autre ; la \cref{sec:47:reconciliation} le recalcule à la valeur finale. Le \cref{tab:47:financement} résume les paramètres.
523+
524+\begin{table}[htbp]\centering
525+\caption{Dimensionnement du prêt et indicateurs de levier, sur la base de l'indication DCF (données synthétiques).}\label{tab:47:financement}
526+\small\begin{tabular}{@{}L{7.6cm}S[table-format=7.2]@{}}
527+\toprule
528+Élément & {Montant ou ratio} \\
529+\midrule
530+Valeur de référence (indication DCF, \$) & 2208565.91 \\
531+Prêt maximal selon le RPV de \pct{75} (\$) & 1656424.43 \\
532+Prêt maximal selon le RCD de 1,20 (\$) & 1475959.45 \\
533+\textbf{Prêt retenu (contrainte : RCD) (\$)} & 1475959.45 \\
534+Taux nominal (composition semestrielle) & {\pct{4.12}} \\
535+Taux mensuel équivalent & {\pct{0.34042}} \\
536+Amortissement (mois) / terme (ans) & {480 / 5} \\
537+Paiement mensuel (\$) & 6246.93 \\
538+Service de la dette annuel (\$) & 74963.13 \\
539+Constante hypothécaire $f$ & {\pct{5.0789}} \\
540+Intérêts de la première année (\$) & 60016 \\
541+Capital remboursé la première année (\$) & 14947 \\
542+Solde après 60 mois (fin du terme) (\$) & 1394739.19 \\
543+Solde après 120 mois (\$) & 1295148.22 \\
544+Ratio de couverture de la dette, année 1 & 1.20 \\
545+Ratio prêt-valeur effectif & {\pct{66.8}} \\
546+Mise de fonds (\$) & 732606.46 \\
547+Flux après dette, année 1 (\$) & 14992.63 \\
548+Rendement courant des fonds propres (\emph{cash-on-cash}), année 1 & {\pct{2.05}} \\
549+Point mort d'occupation économique, dépenses totales & {\pct{92.7}} \\
550+TRI des fonds propres sur 10 ans (achat à la valeur DCF) & {\pct{11.22}} \\
551+TRI sans levier (achat à la valeur DCF) & {\pct{7.25}} \\
552+\bottomrule
553+\end{tabular}
554+\tabsource{\synth{\texttt{traite/cas3.py}, fonction \texttt{financement} ; \texttt{traite/finance.py} (\texttt{Hypotheque}, \texttt{rendement\_fonds\_propres\_levier}, \texttt{ratio\_point\_mort}).}}
555+\end{table}
556+
557+\subsection{Levier, flux après dette et point mort}
558+
559+Le service annuel de la dette est de \dollars{74963.13}, dont \dollars{60016} d'intérêts et \dollars{14947} de capital la première année. Le flux après dette de la première année n'est que de \dollars{14992.63}, soit un rendement courant des fonds propres de \pct{2.05} sur une mise de fonds de \dollars{732606} : à ce prix, l'acheteur accepte un rendement courant inférieur à celui d'une obligation d'État et mise entièrement sur la croissance du revenu et sur la plus-value. La raison est le levier négatif sur le revenu courant : la constante hypothécaire de \pct{5.08} dépasse le taux de capitalisation de \pct{4.42}, de sorte que chaque dollar emprunté coûte, en service de la dette, plus qu'il ne rapporte en revenu net. Le \chref{31} a démontré que le rendement courant des fonds propres s'écrit
560+\begin{equation}\label{eq:47:levier}
561+R_E = \frac{\NOI_1 - f M_0}{V - M_0} = R + (R - f)\frac{M_0}{V - M_0},
562+\end{equation}
563+et qu'il décroît avec l'endettement dès que $R < f$ ; avec $R = \pct{4.07}$ sur la base DCF, $f = \pct{5.08}$ et un rapport dette sur fonds propres de \num{2.01}, on retrouve bien $R_E \approx \pct{4.07} - \pct{1.01} \times \num{2.01} = \pct{2.05}$.
564+
565+Le levier n'est pourtant pas défavorable sur l'horizon complet. Le taux de rendement interne des fonds propres, calculé sur la mise de fonds initiale, les flux après dette de dix ans (qui incluent les trois années de travaux, où le flux après dette est négatif : $-\dollars{60451}$ en 2027 et $-\dollars{58205}$ en 2032) et le produit net de la revente diminué du solde du prêt (\dollars{1295148}), ressort à \pct{11.22}, contre \pct{7.25} sans dette :
566+\begin{equation}\label{eq:47:tri}
567+\sum_{t=1}^{10} \frac{CF_t - SD}{(1+\TRI_E)^t} + \frac{V_T^{\text{net}} - M_{120}}{(1+\TRI_E)^{10}} = V - M_0 \quad \Longrightarrow \quad \TRI_E = \pct{11.22}.
568+\end{equation}
569+Le levier est négatif sur le revenu courant et positif sur le rendement total, parce que la croissance projetée du revenu net (\pct{6.1} par an) et la plus-value à la revente (de \dollars{2208566} à \dollars{3113338} nets) excèdent largement le coût de la dette. C'est précisément la configuration qui rend le multirésidentiel montréalais attrayant pour des investisseurs patients, et vulnérable à toute déception sur la croissance des loyers ou sur le taux terminal : si le rattrapage ne se produit pas, le rendement courant de \pct{2} ne sera jamais compensé.
570+
571+Le point mort d'occupation économique rapporte les décaissements fixes au revenu brut potentiel :
572+\begin{equation}\label{eq:47:pointmort}
573+\text{PM} = \frac{DE + RR + SD}{RBP} = \frac{\dollars{78488.19} + \dollars{74963.13}}{\dollars{165540}} = \pct{92.7}.
574+\end{equation}
575+L'immeuble doit encaisser \pct{92.7} de son revenu brut potentiel pour couvrir dépenses, réserve et service de la dette ; comme la provision pour inoccupation est de \pct{3.9}, la marge de sécurité n'est que de \num{3.4} points de revenu, soit environ cinq mois de loyer moyen perdus, avant que l'exploitation ne couvre plus la dette (hors réserve, le point mort tombe à \pct{87.8}). Cette marge mince est la contrepartie directe d'un prêt dimensionné exactement au seuil de 1,20.
576+
577+\subsection{Risque de taux au renouvellement du terme}
578+
579+Le terme de cinq ans expose l'emprunteur à un renouvellement en 2031 à un taux inconnu. Le \cref{tab:47:scenarios} refinance le solde de \dollars{1394739} sur l'amortissement résiduel de 420~mois à quatre taux, du taux initial à une hausse de 300~points de base, et calcule le ratio de couverture des années 6 à 10 sur les revenus nets projetés ; la \cref{fig:47:rcd-scenarios} trace les trajectoires. Grâce à la croissance du revenu net, le ratio de couverture atteint \num{1.75} à l'année 6 si le taux est inchangé ; une hausse de 200~points de base le ramène à \num{1.36} et une hausse de 300~points de base à \num{1.22}, toujours au-dessus du seuil contractuel de 1,20 et très au-dessus de 1,00. Le flux après dette de l'année 6 passe de \dollars{55927} à \dollars{23770} dans le scénario le plus défavorable. La résistance au choc de taux vient donc entièrement du rattrapage des loyers réalisé pendant le premier terme ; si ce rattrapage était plus lent, le même choc de 300~points de base ferait passer le ratio sous 1,20, ce que la simulation de la section suivante quantifie. À titre de repère, le taux admissible minimal du BSIF pour les prêts hypothécaires résidentiels non assurés est le plus élevé du taux contractuel majoré de deux points et de \pct{5.25} \parencite{osfiMqr} ; un prêteur prudent appliquera à un immeuble locatif un test de résistance de même nature sur le ratio de couverture, ce que fait ici le scénario à +200~points de base.
580+
581+\begin{table}[htbp]\centering
582+\caption{Renouvellement du prêt à l'échéance du terme de cinq ans : service de la dette et ratios de couverture selon le taux renouvelé (données synthétiques).}\label{tab:47:scenarios}
583+\small\begin{tabular}{@{}l S[table-format=1.2] S[table-format=6.0] S[table-format=5.0] S[table-format=1.3] S[table-format=1.3] S[table-format=1.3]@{}}
584+\toprule
585+Scénario & {Taux (\%)} & {Service de la dette (\$/an)} & {Flux après dette, an 6 (\$)} & {RCD an 6} & {RCD an 8} & {RCD an 10} \\
586+\midrule
587+Taux inchangé & 4.12 & 74963 & 55927 & 1.746 & 1.894 & 2.049 \\
588++100 points de base & 5.12 & 85177 & 45713 & 1.537 & 1.667 & 1.803 \\
589++200 points de base & 6.12 & 95920 & 34970 & 1.365 & 1.481 & 1.601 \\
590++300 points de base & 7.12 & 107120 & 23770 & 1.222 & 1.326 & 1.434 \\
591+\bottomrule
592+\end{tabular}
593+\tabsource{\synth{solde renouvelé \dollars{1394739} sur 420 mois ; revenus nets du \cref{tab:47:projection} ; script \texttt{ch47\_dossier.py}.}}
594+\end{table}
595+
596+\begin{figure}[htbp]\centering
597+\includegraphics{ch47/ch47-fig-rcd-scenarios.pdf}
598+\caption{Ratio de couverture de la dette par année de projection : pendant le premier terme, le ratio part du seuil de 1,20 et monte avec le revenu net ; au renouvellement de l'année 6, une hausse de 300~points de base le ramène tout juste au-dessus de 1,20.}
599+\figsource{\synth{script \texttt{ch47\_dossier\_figures.py}, graine 20261031.}}
600+\end{figure}
601+
602+\subsection{Variante : prêt assuré APH Select}
603+
604+Le programme APH Select de la SCHL, en vigueur depuis mars 2022, module les conditions d'assurance selon un système de points accordés pour l'abordabilité, l'efficacité énergétique et l'accessibilité : à 50~points, un immeuble existant peut être financé jusqu'à \pct{85} de la valeur avec un amortissement de quarante ans et un ratio de couverture minimal de \num{1.10} ; à 70 et 100~points, le ratio prêt-valeur monte à \pct{95} et l'amortissement à 45 puis 50~ans \parencite{schlaphselect}. Pour le volet abordabilité d'un immeuble existant, il faut par exemple que \pct{40} des logements aient un loyer inférieur ou égal à \pct{30} du revenu médian des ménages locataires de la région, engagement maintenu dix ans ; les loyers bas du sujet pourraient le qualifier, mais l'engagement d'abordabilité limiterait précisément le rattrapage qui fonde la valeur DCF. L'évaluateur ne peut donc pas valoriser le programme dans la valeur marchande ; il en mesure l'effet pour le prêteur et l'acheteur. Le \cref{tab:47:aph} applique un ratio de couverture de \num{1.10} et un ratio prêt-valeur de \pct{85} à la valeur finale de la \cref{sec:47:reconciliation}, au même taux de \pct{4.12}, pour trois amortissements. La couverture reste la contrainte liante : le prêt maximal passe de \dollars{1475959} à \dollars{1610138} sur quarante ans (RPV \pct{78.2}) et à \dollars{1741328} sur cinquante ans (RPV \pct{84.5}), la mise de fonds tombant de \dollars{584041} à \dollars{318672}. La prime d'assurance, de \pct{4.35} du prêt pour un RPV entre 75 et \pct{80} auquel s'ajoute une surprime de \pct{0.25} par tranche de cinq ans d'amortissement au-delà de vingt-cinq ans \parencite{schlaphprimes}, atteint \pct{5.10} sur quarante ans et \pct{6.60} sur cinquante ans, soit de \dollars{82117} à \dollars{114928} : l'économie de fonds propres se paie d'une prime capitalisée au prêt et d'un service de la dette plus élevé (\dollars{81778} contre \dollars{74963}), qui ramène le flux après dette de la première année à quelque \dollars{8200}.
605+
606+\begin{table}[htbp]\centering
607+\caption{Variante APH Select (50 points : RPV \pct{85}, RCD 1,10) sur la valeur finale de \dollars{2060000}, taux \pct{4.12}, trois amortissements (données synthétiques).}\label{tab:47:aph}
608+\small\begin{tabular}{@{}l S[table-format=7.0] S[table-format=7.0] S[table-format=2.1] S[table-format=5.0] S[table-format=6.0] S[table-format=1.2] S[table-format=6.0]@{}}
609+\toprule
610+Amortissement & {Prêt max. RPV (\$)} & {Prêt max. RCD (\$)} & {RPV effectif (\%)} & {Service dette (\$)} & {Mise de fonds (\$)} & {Prime (\%)} & {Prime (\$)} \\
611+\midrule
612+Conventionnel 40 ans (RPV 75 \%, RCD 1,20) & 1545000 & 1475959 & 71.6 & 74963 & 584041 & {—} & {—} \\
613+APH Select 40 ans & 1751000 & 1610138 & 78.2 & 81778 & 449862 & 5.10 & 82117 \\
614+APH Select 45 ans & 1751000 & 1682397 & 81.7 & 81778 & 377603 & 6.35 & 106832 \\
615+APH Select 50 ans & 1751000 & 1741328 & 84.5 & 81778 & 318672 & 6.60 & 114928 \\
616+\bottomrule
617+\end{tabular}
618+\tabsource{\synth{paramètres \textcite{schlaphselect,schlaphprimes} ; calculs \texttt{ch47\_dossier.py}, fonction \texttt{aph\_select} ; admissibilité au programme non vérifiée.}}
619+\end{table}
620+
621+\section{Test de résistance : simulation de Monte-Carlo}\label{sec:47:montecarlo}
622+
623+\subsection{Lois des intrants}
624+
625+L'analyse de sensibilité un facteur à la fois ne dit pas quelle est la probabilité que plusieurs facteurs se dégradent ensemble. La simulation de Monte-Carlo, introduite en évaluation immobilière par \textcite{pyhrr1973} et \textcite{wofford1978} et développée par \textcite{frenchGabrielli2005} et \textcite{hoesliJaniBender2006}, tire conjointement les intrants incertains du modèle de flux dans des lois déclarées, recalcule la valeur pour chaque tirage et décrit la distribution obtenue. Le \chref{40} en a exposé la méthode ; nous l'appliquons au dossier avec \num{10000} tirages et la graine \texttt{20261031}, ce qui rend chaque chiffre reproductible. Le \cref{tab:47:lois} déclare les sept lois. Les choix suivent trois principes : centrer chaque loi sur l'hypothèse de base, pour que la simulation mesure l'incertitude autour du scénario déterministe et non un autre scénario ; donner à chaque loi une dispersion justifiée par les données disponibles ; lier le taux terminal au taux d'actualisation par un écart aléatoire plutôt que de les tirer indépendamment, parce que les deux réagissent aux mêmes mouvements des marchés de capitaux. L'inoccupation suit une loi log-normale de médiane \pct{3.9} et d'écart-type logarithmique \num{0.30}, ce qui place \pct{90} des tirages entre \pct{2.4} et \pct{6.3}, plage qui couvre les observations SCHL de 2023 à 2025 et les prévisions à 2028. La croissance des loyers de marché est normale de moyenne \pct{3.5} et d'écart-type un point, soit un intervalle à \pct{90} de \pct{1.8} à \pct{5.1}. La rotation est triangulaire entre \pct{8} et \pct{25} avec un mode à \pct{15} : la borne basse correspond au taux régional de la SCHL, la borne haute à un immeuble où plusieurs départs se concentrent. La croissance des dépenses est normale (\pct{3.0}, écart-type \num{0.75} point), le taux d'actualisation normal (\pct{7.25}, écart-type 50~points de base) et l'écart terminal $r - R_T$ normal (\num{2.25} points, écart-type 40~points de base), avec un plancher de \pct{3.5} pour le taux terminal. Chaque dépense en capital est multipliée par un facteur log-normal de médiane 1 et d'écart-type logarithmique \num{0.20}, indépendant d'un chantier à l'autre. La croissance des loyers contractuels (\pct{3.1}) est maintenue fixe : c'est un paramètre réglementaire dont la variabilité d'une année à l'autre se compense sur dix ans.
626+
627+\begin{table}[htbp]\centering
628+\caption{Lois déclarées des intrants de la simulation (10~000 tirages, graine 20261031) et quantiles effectivement tirés.}\label{tab:47:lois}
629+\footnotesize\begin{tabular}{@{}L{3.6cm}L{4.5cm}S[table-format=1.4]S[table-format=1.4]S[table-format=1.4]@{}}
630+\toprule
631+Intrant & Loi (paramètres) & {Moyenne tirée} & {Quantile 5 \%} & {Quantile 95 \%} \\
632+\midrule
633+Inoccupation et pertes $v$ & log-normale, médiane 0,039, $\sigma_{\ln} = 0{,}30$ & 0.0407 & 0.0239 & 0.0634 \\
634+Croissance loyers marché $g_m$ & normale (0,035 ; 0,010) & 0.0347 & 0.0178 & 0.0511 \\
635+Rotation annuelle & triangulaire (0,08 ; 0,15 ; 0,25) & 0.1603 & 0.1049 & 0.2211 \\
636+Croissance des dépenses $g_d$ & normale (0,030 ; 0,0075) & 0.0299 & 0.0175 & 0.0423 \\
637+Taux d'actualisation $r$ & normale (0,0725 ; 0,005) & 0.0726 & 0.0645 & 0.0807 \\
638+Taux terminal $R_T = r - \delta$ & $\delta$ normale (0,0225 ; 0,004), plancher 0,035 & 0.0502 & 0.0399 & 0.0604 \\
639+Facteur CAPEX (par chantier) & log-normale, médiane 1, $\sigma_{\ln} = 0{,}20$ & {1,02} & {0,72} & {1,39} \\
640+Croissance loyers contractuels $g_c$ & fixe, 0,031 & {—} & {—} & {—} \\
641+\bottomrule
642+\end{tabular}
643+\tabsource{\synth{dictionnaire \texttt{MC\_LOIS} du script \texttt{ch47\_dossier.py} ; tirages par \texttt{numpy.random.default\_rng(20261031)}.}}
644+\end{table}
645+
646+Pour chaque tirage $s$, la projection de l'\cref{eq:47:loyers} est recalculée avec les intrants tirés, et la valeur est
647+\begin{equation}\label{eq:47:mc}
648+V^{(s)} = \sum_{t=1}^{10} \frac{CF_t^{(s)}}{(1 + r^{(s)})^t} + \frac{\NOI_{11}^{(s)}\,(1 - c_v)}{R_T^{(s)}\,(1 + r^{(s)})^{10}}, \qquad s = 1, \dots, \num{10000},
649+\end{equation}
650+le code vectorisé reproduisant exactement, pour les intrants de base, la projection déterministe du \cref{tab:47:projection} (le test \texttt{test\_ch47.py} le vérifie). Le même tirage fournit le revenu net de chaque année et donc le ratio de couverture de la dette du prêt de \dollars{1475959}, ainsi que le ratio de l'année 6 après un renouvellement à +200~points de base.
651+
652+\subsection{Distribution de la valeur}
653+
654+La \cref{fig:47:montecarlo} et le \cref{tab:47:mc-resultats} présentent les résultats. La valeur simulée a une médiane de \dollars{2191608}, très proche de la valeur déterministe de \dollars{2208566}, et une moyenne de \dollars{2233506}, supérieure parce que la valeur est une fonction convexe du taux terminal et du taux d'actualisation ; \textcite{hoesliJaniBender2006} signalent ce biais de convexité, qui justifie de rapporter la médiane plutôt que la moyenne comme résumé central. L'écart-type est de \dollars{350443}, soit un coefficient de variation de \pct{15.7} ; l'intervalle à \pct{90} s'étend de \dollars{1735194} à \dollars{2876902}, c'est-à-dire de $-\pct{21}$ à $+\pct{30}$ autour de la médiane. La probabilité que la valeur simulée soit inférieure à l'indication par capitalisation directe est de \pct{30.9}, et celle qu'elle soit inférieure à deux millions de dollars de \pct{26.5}. Ces résultats placent l'incertitude de la méthode des flux actualisés dans son vrai ordre de grandeur : une plage de plus ou moins \pct{25} n'est pas un défaut du modèle mais la mesure honnête de ce qu'un horizon de dix ans et une valeur terminale à \pct{70} impliquent.
655+
656+\begin{figure}[htbp]\centering
657+\includegraphics{ch47/ch47-fig-montecarlo.pdf}
658+\caption{Distribution de la valeur sur \num{10000} tirages : quantiles 5~\%, 50~\% et 95~\% (traits tiretés), valeur DCF déterministe et indication par capitalisation directe. La distribution est asymétrique à droite, effet de la convexité de la valeur dans les taux.}
659+\figsource{\synth{script \texttt{ch47\_dossier\_figures.py}, graine 20261031.}}
660+\end{figure}
661+
662+\begin{table}[htbp]\centering
663+\caption{Résultats de la simulation : valeur, ratios de couverture et corrélations de rang (données synthétiques).}\label{tab:47:mc-resultats}
664+\small\begin{tabular}{@{}L{8.2cm}S[table-format=7.0]@{}}
665+\toprule
666+Statistique & {Valeur} \\
667+\midrule
668+Valeur : moyenne (\$) & 2233506 \\
669+Valeur : écart-type (\$) / coefficient de variation & {350~443 / \pct{15.7}} \\
670+Valeur : quantile 5 \% (\$) & 1735194 \\
671+Valeur : quantile 25 \% (\$) & 1984237 \\
672+Valeur : médiane (\$) & 2191608 \\
673+Valeur : quantile 75 \% (\$) & 2432866 \\
674+Valeur : quantile 95 \% (\$) & 2876902 \\
675+P(valeur < indication par capitalisation, 2~037~503 \$) & {\pct{30.9}} \\
676+P(valeur < 2~000~000 \$) & {\pct{26.5}} \\
677+P(valeur < valeur au rôle, 2~200~000 \$) & {\pct{51.2}} \\
678+P(RCD année 1 < 1,20), prêt de 1~475~959 \$ & {\pct{49.4}} \\
679+P(RCD année 1 < 1,00) & {0 tirage sur 10~000} \\
680+RCD année 1 : médiane / quantile 5 \% & {1,20 / 1,148} \\
681+P(RCD année 6 < 1,20) après renouvellement à +200~pb & {\pct{1.4}} \\
682+RCD année 6 (+200~pb) : médiane / quantile 5 \% & {1,344 / 1,232} \\
683+\midrule
684+Corrélation de rang avec la valeur : taux terminal & {$-0{,}78$} \\
685+\quad taux d'actualisation & {$-0{,}71$} \\
686+\quad croissance des loyers de marché & {$+0{,}49$} \\
687+\quad croissance des dépenses & {$-0{,}21$} \\
688+\quad inoccupation et pertes & {$-0{,}15$} \\
689+\quad rotation annuelle & {$+0{,}06$} \\
690+\quad facteur CAPEX moyen & {$-0{,}04$} \\
691+\bottomrule
692+\end{tabular}
693+\tabsource{\synth{script \texttt{ch47\_dossier.py}, fonction \texttt{monte\_carlo} ; 10~000 tirages, graine 20261031.}}
694+\end{table}
695+
696+\subsection{Tornade et hiérarchie des risques}
697+
698+La \cref{fig:47:tornade} fait varier chaque intrant, isolément, entre ses quantiles 10 et 90, les autres restant à leur valeur de base. Le taux d'actualisation domine (valeur de \dollars{1931796} à \dollars{2568330}, amplitude \dollars{636535}), suivi de la croissance des loyers de marché (amplitude \dollars{459632}) et de l'écart terminal (\dollars{320404}) ; la croissance des dépenses (\dollars{185540}), l'inoccupation (\dollars{117049}), le facteur CAPEX (\dollars{92066}) et la rotation (\dollars{90738}) viennent loin derrière. Les corrélations de rang de la simulation conjointe confirment cette hiérarchie : $-0{,}78$ pour le taux terminal, $-0{,}71$ pour le taux d'actualisation, $+0{,}49$ pour la croissance des loyers de marché. La leçon est double. D'une part, l'incertitude de la valeur est d'abord une incertitude sur les taux, c'est-à-dire sur le marché des capitaux et sur la prime de risque exigée, et non sur l'exploitation de l'immeuble : c'est ce que \textcite{sivitanidouSivitanides1999} et \textcite{chervachidzeWheaton2013} ont établi empiriquement pour les taux de capitalisation. D'autre part, la rotation, dont dépend pourtant tout le rattrapage des loyers, pèse peu sur la valeur parce que ses effets s'exercent sur les premières années, fortement actualisées, et que la croissance des loyers de marché gouverne de toute façon le revenu de l'année 11 qui fonde la valeur terminale ; l'écart entre capitalisation et DCF constaté plus haut tient moins à la rotation qu'au couple de taux retenu.
699+
700+\begin{figure}[htbp]\centering
701+\includegraphics{ch47/ch47-fig-tornade.pdf}
702+\caption{Diagramme en tornade : valeur DCF lorsque chaque intrant est porté, seul, à son quantile 10~\% puis 90~\%, les autres restant à la base (trait vertical, \dollars{2208566}). Les taux dominent ; la rotation et les dépenses en capital sont des risques de second ordre pour la valeur.}
703+\figsource{\synth{script \texttt{ch47\_dossier\_figures.py}, graine 20261031.}}
704+\end{figure}
705+
706+\subsection{Probabilité de bris de covenant}
707+
708+La lecture du ratio de couverture renverse partiellement la hiérarchie. Le prêt ayant été dimensionné pour un ratio de 1,20 exactement à l'inoccupation de base, la probabilité que le ratio de la première année soit inférieur à 1,20 est de \pct{49.4}, c'est-à-dire la probabilité que l'inoccupation tirée dépasse \pct{3.9} : le seuil contractuel est franchi une fois sur deux, pour un écart généralement minime (le quantile 5~\% du ratio est \num{1.148}). En revanche, aucun des \num{10000} tirages ne fait passer le ratio sous 1,00 la première année ; il faudrait une inoccupation supérieure à \pct{13} pour que le revenu net ne couvre plus le service de la dette, et la médiane du ratio au cours des cinq années du terme est toujours celle de la première année puisque le revenu croît. À l'année 6, après un renouvellement à +200~points de base, le ratio médian est de \num{1.344} et la probabilité qu'il soit inférieur à 1,20 n'est que de \pct{1.4}, aucun tirage ne tombant sous 1,00. Le risque de crédit du prêteur est donc faible au sens du défaut de paiement, mais le covenant de 1,20 n'offre aucune marge : un prêteur qui souhaite une probabilité de bris inférieure à \pct{10} la première année devrait dimensionner le prêt sur un ratio d'environ \num{1.25}, ce qui le ramènerait vers \dollars{1417000}. Cette traduction d'une exigence probabiliste en covenant est l'apport propre de la simulation à la décision de crédit.
709+
710+\section{Réconciliation et valeur finale}\label{sec:47:reconciliation}
711+
712+\subsection{Pondération des indications}
713+
714+Le dossier a produit trois indications de valeur et deux repères (\cref{tab:47:reconciliation}). La réconciliation, au sens des Normes et du \chref{20}, n'est pas une moyenne : c'est un jugement motivé sur la fiabilité relative de chaque indication compte tenu de la qualité des données, de la pertinence de la méthode pour le type de bien et pour le marché, et du droit évalué.
715+
716+La capitalisation directe repose sur quarante ventes, sur un revenu net normalisé poste par poste et sur une médiane de taux stable dans le temps et cohérente avec les fourchettes publiées ; elle est la méthode que les acheteurs et les prêteurs de ce segment utilisent effectivement. Sa faiblesse est de résumer en un taux l'anticipation de rattrapage des loyers, sans que l'on sache si le comparable moyen partage le profil du sujet. Elle reçoit le poids le plus élevé, \pct{45}. La méthode des flux actualisés explicite la trajectoire des loyers, les dépenses en capital et la revente ; elle est la seule à intégrer les trois chantiers et le profil des baux. Sa faiblesse est la sensibilité de \pct{70} de sa valeur à un couple de taux terminal et d'actualisation que le marché ne révèle pas directement, et la dépendance à une hypothèse de rotation plus favorable que les données régionales ; la simulation a montré un intervalle à \pct{90} de plus ou moins un quart. Elle reçoit \pct{35}. La comparaison par unité s'appuie sur dix ventes ajustées par des coefficients estimés avec une précision modeste et sur un ajustement de loyer qui, à lui seul, atteint souvent \pct{20} du prix ; elle est la méthode la moins fiable ici, mais elle ancre la valeur dans les prix payés par logement et elle rappelle que le marché ne paie pas la totalité du rattrapage futur. Elle reçoit \pct{20}. Le multiplicateur du revenu brut n'est pas pondéré ; il situe la valeur entre \num{11.5} et \num{14.6} fois le revenu brut, soit entre \dollars{1.90} et \dollars{2.42} millions, plage qui contient les trois indications.
717+
718+\begin{table}[htbp]\centering
719+\caption{Réconciliation des indications de valeur (données synthétiques).}\label{tab:47:reconciliation}
720+\small\begin{tabular}{@{}L{6.0cm}S[table-format=7.0]S[table-format=2.0]S[table-format=7.0]@{}}
721+\toprule
722+Indication & {Valeur (\$)} & {Poids (\%)} & {Contribution (\$)} \\
723+\midrule
724+Revenu — capitalisation directe (\pct{4.415}) & 2037503 & 45 & 916876 \\
725+Revenu — flux actualisés 10 ans & 2208566 & 35 & 772998 \\
726+Comparaison — prix par logement ajusté & 1870903 & 20 & 374181 \\
727+\quad repère : MRB médian 11,94 $\times$ RBP contractuel & 1976548 & 0 & 0 \\
728+\quad repère : médiane de la simulation (quantiles 5--95 \%) & 2191608 & 0 & {(1~735~194 -- 2~876~902)} \\
729+\midrule
730+Valeur pondérée & 2064055 & 100 & 2064055 \\
731+\textbf{Valeur marchande finale, arrondie à 10~000~\$} & \textbf{2060000} & & \\
732+\midrule
733+Fourchette des indications (\$) & {1~870~903 -- 2~208~566} & & \\
734+Prix par logement (\$) & 171667 & & \\
735+Prix par m\textsuperscript{2} de superficie locative (\$) & 2497 & & \\
736+MRB sur le revenu brut contractuel / de marché & {12,44 / 11,07} & & \\
737+Taux global implicite ($\NOI_1 / V$) & {\pct{4.37}} & & \\
738+Ratio valeur / valeur au rôle 2026-2028 & {0,936} & & \\
739+\bottomrule
740+\end{tabular}
741+\tabsource{\synth{script \texttt{ch47\_dossier.py}, fonction \texttt{reconciliation} ; pondérations de l'auteur.}}
742+\end{table}
743+
744+La valeur pondérée,
745+\begin{equation}\label{eq:47:reconciliation}
746+\hat V = \sum_k \omega_k \hat V_k = 0{,}45 \times \dollars{2037503} + 0{,}35 \times \dollars{2208566} + 0{,}20 \times \dollars{1870903} = \dollars{2064055},
747+\end{equation}
748+est arrondie à \dollars{2060000}, l'arrondi au dix mille près reflétant la précision que les données autorisent. Cette valeur correspond à \dollars{171667} par logement, à \num{12.44} fois le revenu brut contractuel et à un taux global implicite de \pct{4.37} sur le revenu net normalisé, c'est-à-dire 5~points de base sous la médiane extraite : la réconciliation accorde au sujet une légère prime de croissance par rapport au comparable moyen, moindre que celle du DCF. La médiane de la simulation (\dollars{2191608}) est supérieure de \pct{6.4} à la valeur finale et celle-ci se situe au quantile 34~\% de la distribution simulée : la valeur retenue est prudente par rapport au scénario de flux, délibérément, parce que deux des trois indications ne valident pas pleinement l'hypothèse de rotation.
749+
750+\subsection{Valeur, rôle et droits de mutation}
751+
752+La valeur finale est inférieure de \pct{6.4} à la valeur inscrite au rôle 2026-2028 (\dollars{2200000}), ce qui pourrait surprendre dans un marché où les valeurs au rôle sont réputées en retard sur le marché. Deux raisons l'expliquent et illustrent la différence de base de valeur. D'abord, le rôle évalue l'immeuble comme si le vendeur détenait tous les droits du locataire \parencite[art.~45.1]{lfm}, c'est-à-dire aux loyers de marché : en reprenant le calcul du dossier avec les loyers de marché, le revenu brut effectif serait de \dollars{188141}, le revenu net de \dollars{108865} (\dollars{18909} de plus) et la valeur par capitalisation de \dollars{2465788} ; la valeur au rôle, à \pct{89} de ce chiffre, est alors cohérente avec un marché qui a progressé depuis le 1\textsuperscript{er} juillet 2024. Ensuite, la date de référence du rôle précède de vingt-six mois la date d'évaluation ; l'écart entre les deux dates se mesure par les indices et non par comparaison directe. L'évaluateur ne doit donc ni « corriger » sa valeur pour la rapprocher du rôle, ni conclure que le rôle est erroné : les deux chiffres répondent à deux questions différentes, et l'écart de \pct{6} s'explique entièrement par le droit évalué. Un propriétaire qui jugerait sa valeur au rôle excessive disposerait du recours en révision du \chref{9}, mais l'argument des baux à loyer bas lui serait fermé par l'article~45.1.
753+
754+Enfin, pour l'acheteur, l'acquisition au prix de \dollars{2060000} entraîne des droits sur les mutations immobilières de \dollars{41325.50} selon le barème montréalais de 2026 (\pct{0.5} sur \dollars{62900}, \pct{1} jusqu'à \dollars{315000}, \pct{1.5} jusqu'à \dollars{552300}, \pct{2} jusqu'à \dollars{1104700}, \pct{2.5} au-delà) \parencite{mtlmutations2026}. Au financement conventionnel recalculé à la valeur finale, le prêt reste limité par la couverture à \dollars{1475959} (RPV \pct{71.6}), la mise de fonds est de \dollars{584041} et le besoin de liquidités à la signature, droits compris et avant frais de notaire et d'inspection, de \dollars{625366}. Le rendement courant des fonds propres passe à \pct{2.57} et le TRI des fonds propres sur dix ans à \pct{13.83} (contre \pct{8.11} sans levier à ce prix), le levier demeurant négatif sur le revenu courant et positif sur le rendement total.
755+
756+\section{Le rapport : extrait structuré de la conclusion}\label{sec:47:rapport}
757+
758+La règle 2.3 des Normes de pratique professionnelle énumère douze éléments que « tous les rapports écrits, de quelque forme qu'ils soient » doivent inclure \parencite{oeaqNormes} ; le \cref{tab:47:rapport} indique, pour chacun, où le présent dossier y répond et ce que la conclusion du rapport narratif complet doit reprendre. Trois éléments appellent une attention particulière. L'étendue du travail (élément 6) doit décrire ce qui a été fait et, surtout, ce qui ne l'a pas été : trois logements non visités, dossiers du Tribunal non consultés, taux de taxe « six logements et plus » et taxe d'arrondissement non vérifiés, admissibilité à APH Select non examinée. Les réserves et hypothèses de base (élément 7) reprennent le modèle de l'annexe~E des Normes et précisent qu'aucune hypothèse extraordinaire n'a été posée ; si l'évaluateur avait supposé, par exemple, que la toiture était en bon état sans l'avoir vue, il devrait l'écrire comme hypothèse extraordinaire et la rappeler « à chaque fois qu'il indique sa conclusion de valeur ». Le traitement de l'information et le raisonnement (élément 8) constituent le c\oe ur du rapport narratif : les sections 47.4 à 47.13 en sont la matière, et la règle veut que le lecteur puisse suivre chaque chiffre jusqu'à sa source.
759+
760+\begin{table}[htbp]\centering
761+\caption{Contenu minimal du rapport (NPP, règle 2.3) et correspondance avec le dossier.}\label{tab:47:rapport}
762+\footnotesize\begin{tabular}{@{}c L{4.3cm} L{7.3cm}@{}}
763+\toprule
764+N\textsuperscript{o} & Élément exigé & Réponse du dossier (rapport narratif complet : DÉCRIRE) \\
765+\midrule
766+1 & Identification physique et légale & Adresse fictive, lot, 12 logements, 1962, 3 étages, terrain \msq{740} (\cref{sec:47:description}) \\
767+2 & Droits évalués & Pleine propriété grevée des 12 baux (droit du locateur) ; art.~1937 C.c.Q. \\
768+3 & But et fin & Opinion de valeur marchande ; décision de crédit hypothécaire du client \\
769+4 & Définition de la valeur & Valeur marchande, définition des NPP (\cref{sec:47:mandat}) \\
770+5 & Date & Évaluation 2026-09-01 ; inspection 2026-08-25 ; rapport 2026-10-31 \\
771+6 & Étendue du travail & Inspection, documents examinés, recherches, méthodes ; limites énumérées \\
772+7 & Réserves et hypothèses de base & Annexe E adaptée ; aucune hypothèse extraordinaire \\
773+8 & Traitement de l'information et raisonnement & \Cref{sec:47:etat-locatif} à \ref{sec:47:reconciliation} ; scripts reproductibles \\
774+9 & Usage le meilleur et le plus profitable & Continuation de l'usage locatif actuel ; conversion exclue \\
775+10 & Rejet d'une méthode traditionnelle & Méthode du coût écartée : dépréciation non mesurable avec fiabilité pour un immeuble de 1962 à revenu \\
776+11 & Conformité à la substance de l'évaluation & Douze éléments de la règle 1.2 traités ; aucun écart aux directives \\
777+12 & Attestation & Formule prescrite par la règle 2.3, signée par l'évaluateur agréé (art.~34 du Code de déontologie) \\
778+\bottomrule
779+\end{tabular}
780+\tabsource{structure selon \textcite{oeaqNormes} ; contenu du dossier fictif.}
781+\end{table}
782+
783+La conclusion du rapport se lit alors ainsi, en substance. Sur la foi de l'inspection du 25~août 2026, de l'analyse de l'état locatif et des dépenses, de quarante ventes d'immeubles comparables et des conditions du marché à la date d'évaluation, et sous réserve des hypothèses et conditions limitatives énoncées, l'évaluateur est d'avis que la valeur marchande de la pleine propriété de l'immeuble, grevée des baux en vigueur, au 1\textsuperscript{er} septembre 2026, est de deux millions soixante mille dollars (\dollars{2060000}). Cette conclusion s'appuie principalement sur la méthode du revenu par capitalisation directe, confirmée par la méthode des flux actualisés et par la comparaison par logement ; le délai d'exposition raisonnable est estimé à trois à six mois. L'attestation, dont la formule est prescrite par la règle 2.3 et commence par « J'atteste par la présente, au mieux de ma connaissance et de ma conviction », certifie notamment que les faits rapportés sont exacts, que l'évaluateur n'a aucun intérêt présent ou futur dans l'immeuble, que ses honoraires ne dépendent pas de la valeur conclue \parencite[art.~24.1]{deontOEAQ} et que le travail est conforme aux Normes ; elle est signée avec la mention de la qualité d'évaluateur agréé \parencite[art.~34]{deontOEAQ}. Pour le prêteur, le rapport ajoute, en annexe, les indicateurs de la \cref{sec:47:financement} et de la \cref{sec:47:montecarlo} en précisant qu'ils relèvent de la consultation et non de l'opinion de valeur : la valeur marchande ne dépend pas des conditions du prêt envisagé.
784+
785+\begin{quebec}[Ce que le dossier doit au cadre québécois]
786+Plusieurs résultats de ce chapitre n'auraient pas la même forme ailleurs au Canada. Le droit évalué est le droit du locateur parce que l'aliénation ne résilie pas les baux et que ceux-ci se reconduisent de plein droit \parencite[art.~1936, 1937, 1941]{ccq} ; la trajectoire des loyers contractuels est bornée par les critères de fixation du Tribunal administratif du logement, refondus par le décret 1455-2025 (pourcentage de base \pct{3.1} pour 2026) \parencite{reglCriteresFixation,talIndices2026}, et la valeur locative de marché n'est pas un critère de fixation ; le rattrapage passe par la rotation, que la Loi 31 a facilitée en permettant de refuser une cession de bail \parencite[art.~1978.2]{ccq} et que la Loi 65 a ralentie en suspendant les évictions jusqu'au 6~juin 2027 \parencite[art.~1]{loi65_2024}. La valeur au rôle est établie à une date de référence antérieure de deux ans \parencite[art.~46]{lfm} et comme si l'immeuble était libre de baux \parencite[art.~45.1]{lfm}, ce qui explique qu'elle dépasse ici la valeur marchande du droit du locateur. Les droits de mutation suivent un barème progressif propre à la Ville de Montréal, jusqu'à \pct{4} \parencite{mtlmutations2026}. Enfin, le rapport doit respecter le contenu minimal de la règle 2.3 des Normes de pratique professionnelle de l'OEAQ et le Code de déontologie des évaluateurs agréés \parencite{oeaqNormes,deontOEAQ}. Toutes ces dispositions ont été vérifiées dans leur version à jour au 15~octobre 2026 (lois) ou au 1\textsuperscript{er} juillet 2026 (règlements) ; les pourcentages du TAL pour 2027 et le taux de taxe montréalais des immeubles de six logements et plus restaient à confirmer au 31~octobre 2026.
787+\end{quebec}
788+
789+\begin{erreurs}
790+\begin{itemize}
791+\item Capitaliser le revenu net \emph{historique} du vendeur (taxes de l'ancien rôle, aucune gestion, réserve irrégulière) au lieu du revenu prospectif normalisé : ici, surestimation d'environ \dollars{176000}.
792+\item Appliquer un taux extrait de ventes dont le revenu net excluait la réserve à un revenu net calculé après réserve, ou l'inverse : incohérence de convention de plusieurs dizaines de milliers de dollars.
793+\item Projeter les loyers contractuels au taux de croissance du marché, comme si les baux pouvaient être portés au marché à l'échéance : la fixation par le Tribunal ne tient pas compte de la valeur locative, et seule la rotation réalise le rattrapage.
794+\item Valoriser dans la valeur marchande une stratégie de repositionnement par évictions, interdite jusqu'au 6~juin 2027 et coûteuse en indemnités ensuite ; ou valoriser un financement APH Select dont l'engagement d'abordabilité contredit le rattrapage projeté.
795+\item Dimensionner le prêt par le seul ratio prêt-valeur alors que la couverture de la dette est liante dès que le taux de capitalisation est inférieur à la constante hypothécaire.
796+\item Confondre levier négatif sur le revenu courant et levier négatif sur le rendement total ; ou l'inverse, croire que le TRI avec levier de \pct{11} à \pct{14} est acquis alors qu'il repose sur une croissance du revenu de \pct{6} par an.
797+\item Rapporter la moyenne de la simulation comme valeur centrale : la convexité de la valeur dans les taux la biaise vers le haut ; rapporter la médiane et les quantiles.
798+\item Interpréter l'écart entre la valeur marchande et la valeur au rôle comme une erreur de l'une ou de l'autre, alors qu'il reflète une différence de date et de droit évalué.
799+\end{itemize}
800+\end{erreurs}
801+
802+\begin{limites}
803+Le dossier est entièrement synthétique : aucune des conclusions ne décrit un immeuble réel, et les relations entre variables (décote d'ancienneté de \pct{2} par an, effet de l'état sur le taux, loi de rotation) sont des hypothèses pédagogiques. Plusieurs paramètres reposent sur des sources non officielles ou non vérifiées : le taux de taxe foncière générale de Montréal (\qty{0.4631}{\dollar}/100~\$) provient d'un article de presse reprenant les documents budgétaires, le taux applicable aux immeubles de six logements et plus et la taxe d'arrondissement n'ont pas été vérifiés, et une normalisation par indexation du compte 2025 réduirait le revenu net de \dollars{1006}. Le pourcentage de base du Tribunal pour 2027 n'était pas publié ; la croissance des loyers contractuels ignore la part attribuable des taxes et des immobilisations. La rotation de \pct{15} excède le taux régional de \pct{9.4} de la SCHL. Les frais de gestion imputés (\pct{4}) et la réserve (\dollars{675} par logement) s'appuient sur un barème indicatif de la SCHL daté de 2015 et sur la convention de l'ouvrage, faute d'enquête récente. La régression d'extraction des ajustements, sur quarante ventes, estime l'effet de l'état et le temps avec une précision insuffisante. Les lois de la simulation sont déclarées mais non estimées sur des données ; la probabilité de bris de covenant dépend entièrement de la loi de l'inoccupation. Enfin, l'admissibilité au programme APH Select, les cellules du barème SCHL aux niveaux de 70 et 100~points et le contenu exact des formulaires de bail n'ont pas été vérifiés sur les documents primaires. Ces points sont consignés dans \texttt{verification/chapters/ch47-claims.csv}.
804+\end{limites}
805+
806+\begin{synthese}
807+\begin{itemize}
808+\item Le droit évalué d'un immeuble locatif québécois est le droit du locateur : revenu de première année aux loyers \emph{contractuels} (\dollars{165540}), écart au marché de \pct{11} résorbé seulement par la rotation.
809+\item Revenu brut effectif \dollars{168444} ; dépenses normalisées \dollars{78488} (ratio \pct{46.6}, gestion imputée \pct{4}, réserve \dollars{675}/logement) ; revenu net normalisé \dollars{89956}.
810+\item Taux global : médiane de quarante ventes \pct{4.415} (Q1--Q3 : \pct{4.15}--\pct{4.64}), cohérente avec CBRE ; capitalisation directe \dollars{2037503}.
811+\item DCF 10 ans (rotation \pct{15}, $g_m$ \pct{3.5}, $r$ \pct{7.25}, $R_T$ \pct{5.0}, CAPEX \dollars{245000}) : \dollars{2208566}, valeur terminale à \pct{70} de la valeur ; comparaison par logement \dollars{1870903}.
812+\item Financement : la couverture de la dette (1,20) limite le prêt à \dollars{1475959}, RPV effectif \pct{67} à \pct{72} ; levier négatif sur le revenu courant ($f = \pct{5.08} > R$), positif sur le TRI ; point mort \pct{92.7} ; +300~pb au renouvellement laisse le RCD à \num{1.22}.
813+\item Monte-Carlo (\num{10000} tirages) : médiane \dollars{2191608}, intervalle 5--95~\% de \dollars{1735194} à \dollars{2876902} ; P(RCD$_1 < 1{,}20$) = \pct{49.4}, P(RCD $< 1{,}0$) nulle ; les taux dominent la tornade.
814+\item Valeur finale \dollars{2060000} (45/35/20), \dollars{171667} par logement, taux implicite \pct{4.37}, \pct{93.6} de la valeur au rôle, laquelle suppose l'immeuble libre de baux.
815+\end{itemize}
816+\end{synthese}
817+
818+\section*{Exercices}
819+
820+\begin{exercice}[1]{Vacance économique de 5~\%}{ex:47:1}
821+Le prêteur demande de refaire le calcul du revenu net normalisé avec une provision pour inoccupation et mauvaises créances de \pct{5} au lieu de \pct{3.9}, toutes autres hypothèses inchangées (la gestion imputée reste à \pct{4} du revenu brut effectif). Calculer le revenu brut effectif, les dépenses hors réserve, le revenu net, puis l'indication par capitalisation directe au taux de \pct{4.415}. De combien la valeur diminue-t-elle ?
822+\end{exercice}
823+
824+\begin{exercice}[1]{Taxes municipales indexées plutôt que recalculées}{ex:47:2}
825+Au lieu de recalculer la taxe municipale au taux général sur la valeur au rôle, normaliser le compte 2025 (\dollars{10631}) par la hausse moyenne de \pct{5.3} annoncée pour Rosemont--La Petite-Patrie. Calculer l'écart de dépenses, le nouveau revenu net et l'effet sur l'indication par capitalisation directe. Expliquer pourquoi l'évaluateur doit signaler ce choix dans les limites du rapport.
826+\end{exercice}
827+
828+\begin{exercice}[2]{Choix du taux de capitalisation}{ex:47:3}
829+À partir du \cref{tab:47:stats-taux}, calculer l'indication de valeur aux premier et troisième quartiles des taux extraits, au taux prédit par la régression pour un immeuble d'état 3 de douze logements et au taux moyen pondéré par le revenu net. Exprimer chaque écart par rapport à la valeur à la médiane en pourcentage et discuter la pertinence de chaque statistique pour le sujet.
830+\end{exercice}
831+
832+\begin{exercice}[2]{Rotation des locataires}{ex:47:4}
833+Refaire la projection de flux actualisés avec une rotation annuelle de \pct{10} (un logement relocalisé par an), puis de \pct{25}, toutes autres hypothèses inchangées, à l'aide de \texttt{traite.cas3.projection\_dcf} et \texttt{valeur\_dcf}. Rapporter la valeur, le revenu net de l'année 11 et le revenu brut potentiel de l'année 10 ; comparer les écarts avec l'amplitude de la rotation dans la tornade de la \cref{fig:47:tornade} et expliquer pourquoi l'effet n'est pas symétrique.
834+\end{exercice}
835+
836+\begin{exercice}[2]{Hausse du taux hypothécaire de 100~points de base}{ex:47:5}
837+Le prêteur offre désormais \pct{5.12} au lieu de \pct{4.12}, mêmes amortissement et covenants, sur la valeur finale de \dollars{2060000}. Calculer la constante hypothécaire, le prêt maximal selon le ratio prêt-valeur et selon la couverture de la dette, la contrainte liante, le ratio prêt-valeur effectif et la mise de fonds. De combien le prêt diminue-t-il par rapport au cas de base à la valeur finale ?
838+\end{exercice}
839+
840+\begin{exercice}[3]{Variante APH Select}{ex:47:6}
841+Supposer que l'immeuble obtient 50~points au programme APH Select (ratio prêt-valeur \pct{85}, couverture \num{1.10}, amortissement quarante ans, taux \pct{4.12}). Calculer le prêt maximal à la valeur finale, la contrainte liante, la mise de fonds, la prime d'assurance (barème de la \cref{sec:47:financement}) et le flux après dette de la première année. Discuter ensuite, en une demi-page, la compatibilité entre l'engagement d'abordabilité requis par le programme et l'hypothèse de rattrapage des loyers de la projection : la valeur marchande du dossier est-elle encore la bonne base pour ce prêt ?
842+\end{exercice}
843+
844+\begin{exercice}[3]{Simulation dans un marché détendu}{ex:47:7}
845+Modifier la loi de l'inoccupation de la simulation pour une médiane de \pct{6} (écart-type logarithmique inchangé), en conservant les autres lois, \num{10000} tirages et la graine \texttt{20261031}. Rapporter la médiane et l'intervalle 5--95~\% de la valeur, la médiane du ratio de couverture de la première année et les probabilités que ce ratio soit inférieur à 1,20 et à 1,00 pour le prêt de \dollars{1475959}. Quel ratio de couverture minimal le prêteur devrait-il exiger pour ramener la probabilité de bris sous \pct{10} ? Justifier la réponse par un calcul.
846+\end{exercice}
847+
848+\section*{Pour aller plus loin}
849+
850+Le traité de \textcite{geltnerMillerClaytonEichholtz2014} reste la référence la plus complète sur l'articulation entre capitalisation directe, flux actualisés, valeur terminale et financement ; ses chapitres sur le levier et sur le rendement des fonds propres fondent la \cref{sec:47:financement}. \textcite{brueggemanFisher2022} offrent le traitement le plus opérationnel des ratios de couverture et prêt-valeur et de leur dimensionnement conjoint ; \textcite{fisherMartin2007} et \textcite{appraisal2026} présentent, du point de vue de l'évaluateur, la normalisation des revenus et des dépenses et la réconciliation des indications. Sur la simulation de Monte-Carlo appliquée à la valeur, \textcite{hoesliJaniBender2006} et \textcite{frenchGabrielli2005} proposent des protocoles proches de celui de la \cref{sec:47:montecarlo}, et \textcite{pyhrr1973} demeure la lecture historique indispensable. Les déterminants des taux de capitalisation et leurs cycles sont analysés par \textcite{sivitanidouSivitanides1999}, \textcite{chervachidzeWheaton2013} et \textcite{ducaLing2020} ; \textcite{bokhariGeltner2018} documentent les dépenses en capital et la dépréciation du multirésidentiel, utiles pour calibrer réserve et CAPEX. Sur les effets des régimes d'encadrement des loyers, \textcite{arnott1995} et la recension de \textcite{kholodilin2024} éclairent la dispersion des loyers que l'état locatif du sujet illustre ; \textcite{diamondMcquadeQian2019} et \textcite{autorPalmerPathak2014} fournissent des évaluations empiriques des effets d'un encadrement et de sa levée sur l'offre et sur les prix. Les textes primaires québécois à relire sont le Code civil (art.~1851 à 1978.4) \parencite{ccq}, le Règlement sur les critères de fixation de loyer tel que modifié par le décret 1455-2025 \parencite{reglCriteresFixation,decret1455_2025}, la Loi sur la fiscalité municipale (art.~42 à 46.1) \parencite{lfm} et les Normes de pratique professionnelle de l'OEAQ \parencite{oeaqNormes}.
added references/lib-ch29.bib +19 −0
@@ -0,0 +1,19 @@
1+% ==============================================================================
2+% lib-ch29.bib — Chapitre 29 (Capitalisation directe), rédigé le 2026-10-31.
3+% AUCUNE NOUVELLE ENTRÉE : toutes les citations du chapitre utilisent des clés
4+% déjà présentes dans references/library.bib :
5+% gordonShapiro1956, geltnerMillerClaytonEichholtz2014, sivitanidouSivitanides1999,
6+% sivitanidesTortoWheaton2003, chervachidzeWheaton2013, ducaLing2020,
7+% hendershottMacgregor2005, plazziTorousValkanov2010, baumCrosbyDevaney2021,
8+% fisherMartin2007, ellwood1970, appraisal2026, appraisalCdn, bokhariGeltner2018,
9+% cbrecaprates2026q3, bdcvalet, bdc20261028, bdctauxhypothecaires2026,
10+% schlaphselect, schlfraisexploitation2015, schlLocatif2025, schlpmh2026ete,
11+% talIndices2026, ivs2025, oeaqNormes, lfm, ldmi, quebecMutations,
12+% mtlmutations2026, montrealrole2026, montrealtaux2026, ledevoirmtl2026,
13+% taxescolaire2026.
14+%
15+% Références volontairement NON créées (non vérifiées, voir verification/chapters/ch29-claims.csv) :
16+% - Akerson, C. B. (1970), « Ellwood Without Algebra », The Appraisal Journal — volume/pages introuvables (CLM-29-020).
17+% - Loi sur l'intérêt, L.R.C. 1985, c. I-15 — texte non ouvert par le rédacteur ; à ajouter par l'orchestrateur
18+% si une clé commune est souhaitée pour les chapitres 29 à 31 (CLM-29-019).
19+% ==============================================================================
modified references/library.bib +9 −0
@@ -414,6 +414,15 @@
414 urldate = {2026-10-31} 414 urldate = {2026-10-31}
415 } 415 }
416 416
417+@misc{loiInteret,
418+ author = {{Canada}},
419+ title = {Loi sur l'intérêt},
420+ note = {L.R.C. (1985), ch. I-15, art.~6 : le taux d'une hypothèque remboursable par versements confondus doit être exprimé « calculé annuellement ou semestriellement, mais non d'avance » (texte consulté sur le site de la législation fédérale)},
421+ year = {1985},
422+ url = {https://laws-lois.justice.gc.ca/fra/lois/i-15/page-1.html},
423+ urldate = {2026-10-31}
424+}
425+
417 % ===== ENTRÉES VÉRIFIÉES (phase 1, fusion automatique de lib-*.bib) ===== 426 % ===== ENTRÉES VÉRIFIÉES (phase 1, fusion automatique de lib-*.bib) =====
418 @legislation{loi31_2024, 427 @legislation{loi31_2024,
419 author = {{Québec}}, 428 author = {{Québec}},
added sources/registry-O.csv +2 −0
@@ -0,0 +1,2 @@
1+id,type,titre,organisme,version_ou_date,url,date_consultation,statut,utilise_dans,notes
2+SRC-O-001,loi,Loi sur l'intérêt (L.R.C. 1985 ch. I-15) art. 6,Canada (ministère de la Justice),texte consolidé consulté le 2026-10-31,https://laws-lois.justice.gc.ca/fra/lois/i-15/page-1.html,2026-10-31,verifie,"29;30;31;annexe conventions","art. 6 lu : taux « calculé annuellement ou semestriellement, mais non d'avance » ; fonde la composition semestrielle de traite.finance.Hypotheque"
modified sources/registry.csv +1 −0
@@ -289,4 +289,5 @@ 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-O-001,loi,Loi sur l'intérêt (L.R.C. 1985 ch. I-15) art. 6,Canada (ministère de la Justice),texte consolidé consulté le 2026-10-31,https://laws-lois.justice.gc.ca/fra/lois/i-15/page-1.html,2026-10-31,verifie,29;30;31;annexe conventions,"art. 6 lu : taux « calculé annuellement ou semestriellement, mais non d'avance » ; fonde la composition semestrielle de traite.finance.Hypotheque"
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." 293 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/check_manuscript.py +1 −1
@@ -29,7 +29,7 @@ for p, t in texts.items():
29 for key, row in figreg.items(): 29 for key, row in figreg.items():
30 s = ROOT/row["script"] 30 s = ROOT/row["script"]
31 if row["script"] and not s.exists(): problems.append(f"figures.csv: script introuvable {row['script']} ({key})") 31 if row["script"] and not s.exists(): problems.append(f"figures.csv: script introuvable {row['script']} ({key})")
32− if not (ROOT/"assets/figures"/key).exists(): problems.append(f"figures.csv: fichier inscrit mais absent {key}") 32+ if row.get("type_donnees") != "schema" and not (ROOT/"assets/figures"/key).exists(): problems.append(f"figures.csv: fichier inscrit mais absent {key}")
33 # 3. compteurs 33 # 3. compteurs
34 n_fig = sum(len(incl.findall(t)) + t.count("\\begin{tikzpicture}") for t in texts.values()) 34 n_fig = sum(len(incl.findall(t)) + t.count("\\begin{tikzpicture}") for t in texts.values())
35 n_tab = sum(t.count("\\begin{table}") + t.count("\\begin{longtable}") for t in texts.values()) 35 n_tab = sum(t.count("\\begin{table}") + t.count("\\begin{longtable}") for t in texts.values())
added verification/chapters/ch29.md +39 −0
@@ -0,0 +1,39 @@
1+# Chapitre 29 — Capitalisation directe : bilan de rédaction (2026-10-31)
2+
3+## Livrables
4+| Fichier | Contenu |
5+|---|---|
6+| `manuscript/chapters/ch29.tex` | ≈ 12 000 mots de prose ; 8 sections (29.1 logique, 29.2 extraction, 29.3 construction, 29.4 cohérence RNE–taux, 29.5 multiplicateurs, 29.6 taux observés, 29.7 exemple intégral cas 3, 29.8 sensibilité) ; encadrés `synthetique`, `quebec`, `erreurs`, `limites`, `synthese` ; 1 définition, 1 proposition avec démonstration, 1 exemple |
7+| `analysis/python/cases/ch29_capitalisation.py` | tous les chiffres du chapitre et des solutions (`calculer()`, `exercices()`, `droits_mutation()`), appuyé sur `traite.cas3` et `traite.finance` (aucune formule réécrite) |
8+| `analysis/python/figures/ch29_figures.py` | 5 figures → `assets/figures/ch29/ch29-fig-{taux-extraits,taux-etat-taille,surface-v,bande-investissement,taux-gdc}.pdf` |
9+| `analysis/python/tests/test_ch29.py` | 15 tests : identités (V = RNE/R, Ellwood = Akerson, bande ⇒ R, RCD, Gordon, ∂V/∂R), cohérence avec `cas3.tout()` (ch. 30/47), valeurs citées (tolérance 0,01 $ / 1 $ / 1e-6), exercices, présence des figures |
10+| `solutions/ch29.tex` | 8 solutions détaillées (ex. 29.1 → 29.8) |
11+| `verification/chapters/ch29-{figures,calculations,claims,registry}.csv`, `references/lib-ch29.bib` | 5 figures, 20 calculs, 22 affirmations, 18 lignes de rattachement de sources ; aucune nouvelle entrée bib (clés existantes seulement) |
12+
13+## Compteurs
14+- Mots (prose, hors macros) : ≈ 12 003 — figures : 5 (4 synthétiques, 1 réelle Banque du Canada) — tableaux : 5 — équations numérotées : 18 (dont `align` à 2 lignes) — exercices : 8 (niveaux 1, 1, 2, 2, 2, 3, 3, 3) — définitions : 1 — propositions : 1 (avec démonstration).
15+
16+## Contrôles
17+- `tools/compile_chapter.sh 29` → `OK ch29 : 35 pages, 0 references/citations non definies, 0 overfull hbox` (inclut les solutions et la bibliographie du chapitre).
18+- `python3 -m pytest -q analysis/python/tests/test_ch29.py` → 15 passed ; `test_cas3.py` + `test_finance.py` toujours verts (16 passed).
19+- Inspection visuelle (`pdftoppm -r 50`) : page de chapitre, tableaux 29.1-29.5, figures 29.1-29.5, encadrés, exercices, solutions ; aucune coupure anormale.
20+- `\cref` : 27 occurrences relues, toutes précédées de l'article/préposition (convention du 2026-10-31) ; renvois vers d'autres chapitres écrits en toutes lettres (« chapitre 30 ») car leurs labels ne sont pas définis en compilation isolée.
21+
22+## Chiffres clés (coïncident avec `traite.cas3.tout()` utilisé par les ch. 30 et 47)
23+RBP 165 540 $ ; RBE 168 443,94 $ ; dépenses 78 488,19 $ (dont réserve 8 103 $) ; RNE₁ 89 955,75 $ ; médiane extraite 4,415 % (40 ventes) ; V = 2 037 502,89 $ ≈ 2 040 000 $ ; régression 4,567 % ; 10 proches 4,52 % ; f = 5,079 % ; R_E implicite 2,42 % ; R(RCD 1,20) = 4,571 % ; Gordon 5,00 % / 4,15 % ; Ellwood = Akerson 3,182 % (Δ 24,9 %), Δ implicite 7,68 %, Y implicite 10,70 % ; MRB médian 13,54 ; droits de mutation Montréal 45 460,50 $ (base = rôle 2 200 000 $).
24+
25+## Points non vérifiés ou à confirmer
26+1. Art. 174 LFM : l'affirmation « une vente ne modifie pas en elle-même la valeur au rôle » repose sur l'énumération des événements relevée dans notes-B, texte intégral non relu (CLM-29-011, `partiellement_verifie`).
27+2. Taux de taxe « 6 logements et plus » et taxes d'arrondissement de Montréal 2026 : non trouvés dans un document officiel lisible ; le cas 3 n'utilise que la taxe foncière générale 0,4631 $/100 $ (source secondaire Le Devoir) — déclaré dans `limites`.
28+3. Akerson (1970) : référence exacte non vérifiée ; la formulation est attribuée via `appraisal2026` (CLM-29-020, `non_verifie`).
29+4. Loi sur l'intérêt art. 6 (composition semestrielle) : mentionnée sans clé bib (aucune dans library.bib) — CLM-29-019.
30+5. APH Select : RCD 1,10 et amortissement 40 ans cités d'après notes-C (cellules du tableau SCHL partiellement déduites).
31+6. Fourchettes CBRE : opinions d'industrie citées avec attribution ; l'écart « 256 pb » est celui de CBRE (date de rendement obligataire différente du 2026-10-29, précisé dans le texte).
32+
33+## Remarques pour l'harmonisation / la bibliothèque
34+- `traite/cas3.py` : la docstring de `depenses_normalisees` annonce « réserve = 650 $/logement » alors que le code conserve la réserve historique 2025 (8 103 $ = 675,25 $/logement) ; le chapitre suit le code (675 $/logement). À corriger dans la docstring (ne pas changer le code, les ch. 30/47 en dépendent).
35+- `traite/cas3.taux_extraits` fixe `date_eval="2026-09-01"` et une fenêtre de 24 mois ; les 40 ventes sont toutes retenues. Une fonction d'extraction avec test de tendance temporelle serait utile (ch. 33/47).
36+- Le barème des droits de mutation de Montréal 2026 est codé dans `ch29_capitalisation.py` ; s'il sert ailleurs (ch. 30, 31, 47), le déplacer dans `traite/` (p. ex. `traite/fiscal.py`) avec le barème provincial et celui de Gatineau.
37+- `tools/check_manuscript.py` exige les lignes de `verification/figures.csv` : fusionner `verification/chapters/ch29-figures.csv` (et les autres CSV du chapitre) dans les fichiers globaux.
38+- Le titre d'un encadré `quebec` ne peut pas contenir de virgule (option tcolorbox) ; le titre a été reformulé. À documenter dans CONVENTIONS.md ou à protéger dans le style.
39+- Le `\ref` du titre des solutions s'affiche en couleur de lien sur le bandeau gris (variante numérique) : lisible mais peu contrasté ; question de style, hors périmètre.
40
Menu

Theme