spb/traite-evaluation-qc
Public
1id,chapitre,description,script,test,resultat_attendu,resultat_obtenu,statut,date2CALC-16-01,16,Entonnoir de sélection (600→236→40→27→16→5),analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_entonnoir_et_comparables,600;236;40;27;16;5,600;236;40;27;16;5,verifie,2026-10-313CALC-16-02,16,Comparables retenus et prix,analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_entonnoir_et_comparables,G0574 598000;G0404 506500;G0468 624500;G0477 538000;G0575 513500,idem,verifie,2026-10-314CALC-16-03,16,Indication brute $/m² médian × 165 m²,analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_indication_brute,551029,551029,verifie,2026-10-315CALC-16-04,16,Statistiques $/m² candidats (méd/min/max) et prix bruts (min/max/moy/méd),analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_indication_brute,3286/2361/4140 ; 506500/624500/556100/538000,idem,verifie,2026-10-316CALC-16-05,16,Sensibilité (48 combinaisons) min/max/écart-type,analysis/python/cases/ch16_selection.py,analysis/python/tests/test_ch16.py::test_sensibilite,525768/608014/24069,idem,verifie,2026-10-317CALC-16-06,16,Solutions des exercices 16.1 16.3 16.4 16.5 16.7,solutions/ch16.tex,analysis/python/tests/test_ch16.py::test_solutions_exercices,569902 ; 0.509/2.504/1.807 ; 28200 ; 0.590/0.262/0.148 ; k*=4.27,idem,verifie,2026-10-318CALC-21-001,21,Coûts directs du devis cas 1 (33 postes),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_totaux_cites,298826.17,298826.17,verifie,2026-10-319CALC-21-002,21,Coûts indirects du devis cas 1 (5 postes) et taux I/D,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_totaux_cites,62598.68 ; 20.95 %,62598.68 ; 20.95 %,verifie,2026-10-3110CALC-21-003,21,Regroupement du devis en 7 blocs (somme = D+I),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_regroupement,361424.85,361424.85,verifie,2026-10-3111CALC-21-004,21,Incitatif 10 % sur D+I et coût neuf C_N = D(1+τI)(1+τE),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_identite_multiplicative,36142.49 ; 397567.33,36142.49 ; 397567.33,verifie,2026-10-3112CALC-21-005,21,Variante assiette directs seuls et écart D·τI·τE,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_variante_assiette_direct,391307.47 ; 6259.87,391307.47 ; 6259.87,verifie,2026-10-3113CALC-21-006,21,Coûts unitaires ($/m² et $/pi²) sur 165 m² habitables et 190 m² bruts,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_unitaires,2409 / 223.8 ; 2092 / 194.4,2409 / 223.8 ; 2092 / 194.4,verifie,2026-10-3114CALC-21-007,21,Fourchette Altus 155-215 $/pi² appliquée à 2045 pi² bruts et 1776 pi² habitables,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestDevis::test_comparaison_altus,316997-439705 (milieu 378351) ; 275287-381849,idem,verifie,2026-10-3115CALC-21-008,21,Lecture IPCB Montréal 18-10-0289-01 (valeurs du tableau 21.4),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestIPCB::test_valeurs_tableau,maison individuelle 66.1→116.5 ; résidentiel 65.5→117.8,idem,verifie,2026-10-3116CALC-21-009,21,Variation annuelle IPCB T3 2025→T3 2026 et ratios d'indexation,analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestIPCB::test_ratios_et_variations,8.57 % ; 1.7625 ; 1.620 ; 6.15 %/an,idem,verifie,2026-10-3117CALC-21-010,21,Exemples d'indexation (C_N en $ de 2021/2019 ; 290 000 $ de 2019 → 2026 ; erreur de série),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestIPCB::test_indexation_exemples,294507 ; 245366 ; 469889 ; −5.9 %,idem,verifie,2026-10-3118CALC-21-011,21,Grille de sensibilité indirects × incitatif (min/max/étendue),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestSensibilite::test_grille,351420-436436 (24.2 %),idem,verifie,2026-10-3119CALC-21-012,21,Tornade (indirects ±5 pts ; incitatif 5-15 % ; indice ±8.6 %),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestSensibilite::test_tornade,381132-414003 ; 379496-415639 ; 366171-431655,idem,verifie,2026-10-3120CALC-21-013,21,Ajustement de taille (élasticités −0.05 à −0.20 ; 140 et 200 m² ; barème 2300 $/m²),analysis/python/cases/ch21_cout_neuf.py,analysis/python/tests/test_ch21.py::TestSensibilite::test_elasticite,477287/463711 ; 340112/348599 ; 386871 vs 379500,idem,verifie,2026-10-3121CALC-21-014,21,Exercices 21.1 à 21.7 (solutions),analysis/python/tests/test_ch21.py,analysis/python/tests/test_ch21.py::TestExercices,voir solutions/ch21.tex,idem,verifie,2026-10-3122CALC-29-001,29,RBP contractuel du cas 3 (12 baux × 12),analysis/python/cases/ch29_capitalisation.py (traite.cas3.revenus),analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,165540,165540.00,verifie,2026-10-3123CALC-29-002,29,"RBE = RBP(1−3,9 %) + autres revenus 9 360 $",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,168443.94,168443.94,verifie,2026-10-3124CALC-29-003,29,"Dépenses normalisées hors réserve (taxes sur rôle 2 200 000 $, postes 2025 × 1,03, gestion 4 % RBE)",analysis/python/cases/ch29_capitalisation.py (traite.cas3.depenses_normalisees),analysis/python/tests/test_ch29.py::test_valeurs_citees_revenus,70385.19,70385.19,verifie,2026-10-3125CALC-29-004,29,RNE normalisé après réserve 8 103 $ (= RNE année 1 des ch. 30 et 47),analysis/python/cases/ch29_capitalisation.py (traite.cas3.rne),analysis/python/tests/test_ch29.py::test_coherence_avec_cas3_partage,89955.75,89955.75,verifie,2026-10-3126CALC-29-005,29,"Taux extraits : médiane / moyenne / pondérée RNE / Q1 / Q3 / min / max sur 40 ventes 6-30 log., 24 mois",analysis/python/cases/ch29_capitalisation.py (traite.cas3.taux_extraits),analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,415 / 4,404 / 4,332 / 4,153 / 4,638 / 3,72 / 5,47 %","4,415 / 4,404 / 4,332 / 4,153 / 4,638 / 3,72 / 5,47 %",verifie,2026-10-3127CALC-29-006,29,"Régression R = a + b1(état−3) + b2(n−12) : a, b1, b2, R², σ résiduel",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,567 % ; −0,0441 pt ; −0,0227 pt ; 0,156 ; 0,383 pt","4,567 % ; −0,0441 pt ; −0,0227 pt ; 0,156 ; 0,383 pt",verifie,2026-10-3128CALC-29-007,29,Médiane des 10 ventes les plus proches (distance taille/état/âge/quartier/date),analysis/python/cases/ch29_capitalisation.py::comparables_proches,analysis/python/tests/test_ch29.py::test_valeurs_citees_taux,"4,52 %","4,52 %",verifie,2026-10-3129CALC-29-008,29,"Valeur par capitalisation directe V = 89 955,75 / 0,04415 (identique à cas3.tout()['valeur_capitalisation'])",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_valeur,2037502.89,2037502.89,verifie,2026-10-3130CALC-29-009,29,"Valeurs alternatives : taux de régression 4,567 % ; médiane des proches 4,52 % ; Q3 ; Q1",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_valeur,1 969 694 ; 1 990 172 ; 1 939 747 ; 2 166 303 $,1 969 694 ; 1 990 172 ; 1 939 747 ; 2 166 303 $,verifie,2026-10-3131CALC-29-010,29,"Constante hypothécaire f (4,12 % composé semestriellement, 480 mois)",analysis/python/cases/ch29_capitalisation.py (traite.finance.Hypotheque),analysis/python/tests/test_ch29.py::test_bande_et_rcd,"5,0789 %","5,0789 %",verifie,2026-10-3132CALC-29-011,29,"Bande d'investissement : R_E impliqué par R = 4,415 % avec M = 0,75 ; R pour R_E = 6 %",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_bande_investissement),analysis/python/tests/test_ch29.py::test_valeurs_citees_construction,"2,42 % ; 5,309 %","2,42 % ; 5,309 %",verifie,2026-10-3133CALC-29-012,29,"Formule RCD : R = 1,20 × 0,75 × f et valeur",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_par_rcd),analysis/python/tests/test_ch29.py::test_valeurs_citees_construction,"4,571 % ; 1 967 946 $","4,571 % ; 1 967 946 $",verifie,2026-10-3134CALC-29-013,29,"Gordon : R = 7,25 − 2,25 ; 7,25 − 3,10 ; g implicite = 7,25 − 4,415",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_gordon),analysis/python/tests/test_ch29.py::test_gordon,"5,00 % ; 4,15 % ; 2,835 %","5,00 % ; 4,15 % ; 2,835 %",verifie,2026-10-3135CALC-29-014,29,"Ellwood/Akerson : P (10 ans), SFF(7,25 %,10), Δ = 1,0225^10 − 1, R(Δ=0), R(Δ), R sans dette, Δ implicite, Y implicite ; égalité Ellwood = Akerson",analysis/python/cases/ch29_capitalisation.py (traite.finance.taux_ellwood/taux_akerson),analysis/python/tests/test_ch29.py::test_ellwood_egal_akerson,"12,25 % ; 0,071527 ; 24,92 % ; 4,965 % ; 3,182 % ; 5,468 % ; 7,68 % ; 10,70 %","12,25 % ; 0,071527 ; 24,92 % ; 4,965 % ; 3,182 % ; 5,468 % ; 7,68 % ; 10,70 %",verifie,2026-10-3136CALC-29-015,29,"Multiplicateurs : MRB médian des 40 ventes, V par MRB (RBP contrat / marché), MRN = 1/R, MRB implicite du sujet",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"13,54 ; 2 241 412 $ ; 2 518 927 $ ; 22,65 ; 12,31","13,54 ; 2 241 412 $ ; 2 518 927 $ ; 22,65 ; 12,31",verifie,2026-10-3137CALC-29-016,29,"Cohérence : taxes sur rôle vs sur valeur indiquée (écart, effet capitalisé) ; taux avant réserve équivalent ; erreur taux avant réserve sur RNE après réserve",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"880,88 $ ; 19 952 $ ; 4,81 % ; 1 869 136 $","880,88 $ ; 19 952 $ ; 4,81 % ; 1 869 136 $",verifie,2026-10-3138CALC-29-017,29,RNE aux loyers de marché et valeur (erreur « capitaliser le marché avec baux en place »),analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_multiplicateurs_coherence,"108 864,54 $ ; 2 465 788 $ (+21,0 %)","108 864,54 $ ; 2 465 788 $ (+21,0 %)",verifie,2026-10-3139CALC-29-018,29,"Droits de mutation Montréal 2026 : base = max(prix, rôle × 1,00) = 2 200 000 $ ; droits ; droits sur le prix",analysis/python/cases/ch29_capitalisation.py::droits_mutation,analysis/python/tests/test_ch29.py::test_droits_mutation_bareme,"45 460,50 $ ; 40 763,07 $ (2,23 % du prix)","45 460,50 $ ; 40 763,07 $ (2,23 % du prix)",verifie,2026-10-3140CALC-29-019,29,"Sensibilité : grille V(R, RNE±5 %) 3,75-5,25 % ; ∂V/∂R = −V/R ; V(R±25 pb) exact vs linéaire",analysis/python/cases/ch29_capitalisation.py,analysis/python/tests/test_ch29.py::test_valeurs_citees_sensibilite,"−115 374 $/25 pb ; 1 928 312 $ (−5,36 % vs −5,66 %) ; 2 159 802 $","−115 374 $/25 pb ; 1 928 312 $ (−5,36 % vs −5,66 %) ; 2 159 802 $",verifie,2026-10-3141CALC-29-020,29,Exercices 29.1 à 29.8 (toutes les valeurs des solutions),analysis/python/cases/ch29_capitalisation.py::exercices,analysis/python/tests/test_ch29.py::test_exercices,voir solutions/ch29.tex,identiques (tolérances 1 $ / 1e-6),verifie,2026-10-3142CALC-30-01,30,RNE normalisé année 1 du cas 3 (RBP 165 540 ; RBE 168 444 ; dépenses 70 385 + réserve 8 103),analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,89956,89955.75,verifie,2026-10-3143CALC-30-02,30,Taux global médian extrait des 40 comparables et valeur par capitalisation directe,analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,"4,415 % ; 2 037 503",0.04415 ; 2037502.89,verifie,2026-10-3144CALC-30-03,30,Projection 11 ans (RBP 165 540 → 259 911 ; RNE 89 956 → 159 658) ; identités RNE = RBE − DE − RR et CF = RNE − CAPEX,analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_tableau_dcf_identites,RNE_11 = 159 658,159658.38,verifie,2026-10-3145CALC-30-04,30,"Valeur terminale : VT brute 3 193 168 ; nette (2,5 %) 3 113 338 ; VA (×0,496623) 1 546 156 ; erreur si actualisée à T+1 = 104 519",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeur_terminale,3193168 ; 3113338 ; 1546156 ; 104519,3193167.52 ; 3113338.33 ; 1546156.00 ; 104518.71,verifie,2026-10-3146CALC-30-05,30,"Valeur DCF = VA flux 662 410 + VA VT 1 546 156 = 2 208 566 ; part VT 70,0 % ; écart vs capitalisation directe +171 063 (8,4 %)",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_valeurs_citees_dcf,2208566,2208565.91,verifie,2026-10-3147CALC-30-06,30,"TRI de l'investisseur non endetté payant V0 = r = 7,25 % ; VAN(r) = 0 ; MIRR(r,r) = r ; délai de récupération 9,42 ans",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_van_au_tri_nulle_sans_levier,0.0725,0.07250000,verifie,2026-10-3148CALC-30-07,30,"Taux implicites : R implicite DCF 4,07 % ; g implicite (r − R_med) 2,835 % ; g_T 2,25 % ; croissance RNE annualisée 5,90 % ; TRI si payé V_cap 8,25 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_taux_implicites,0.0407 ; 0.02835 ; 0.0225 ; 0.0590 ; 0.0825,0.040730 ; 0.028350 ; 0.022500 ; 0.059050 ; 0.082521,verifie,2026-10-3149CALC-30-08,30,"Financement (cas3.financement) : prêt RCD 1 475 959 (contrainte RCD) ; RPV 66,83 % ; SD 74 963 ; constante 5,079 % ; mise 732 606 ; solde 120 paiements 1 295 148 ; i_m 0,34042 % ; effectif 4,1624 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_levier,1475959 ; 74963 ; 732606 ; 1295148,1475959.45 ; 74963.13 ; 732606.46 ; 1295148.22,verifie,2026-10-3150CALC-30-09,30,"TRI des fonds propres avec levier 11,22 % (5 changements de signe ; VAN(TRI)=0) ; MIRR (4,12 % / 7,25 %) 10,61 % ; cash-on-cash an 1 2,05 %",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_levier,0.1122 ; 0.1061,0.112192 ; 0.106112,verifie,2026-10-3151CALC-30-10,30,"Proposition 30.1 : DCF = NOI_1/(r−g) pour T = 1, 5, 10, 25, 60 si R_T = r − g ; part VT = ((1+g)/(1+r))^T ; coûts de vente : V_G [1 − c_v q^T]",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_proposition_gordon,égalité à 1e-10 relatif,OK,verifie,2026-10-3152CALC-30-11,30,"Sensibilité R_T 4,25 → 5,75 % : V 2 481 417 → 2 006 893 (+12,4 % → −9,1 %) ; surfaces V(r,R_T) et V(r,g) monotones",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_sensibilite_monotone,2481417 ; 2006893,2481416.97 ; 2006893.39,verifie,2026-10-3153CALC-30-12,30,"Tornade : amplitude max = croissance des loyers de marché 368 235 ; scénarios : encadrement serré 1 912 046 (−13,4 %), hausse des taux 1 947 889 (−11,8 %) ; TRI FP si payé base 7,48 % / 8,31 % ; RCD min 1,04",analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_tornade_et_scenarios,368235 ; 1912046 ; 1947889,368235.05 ; 1912046.35 ; 1947889.41,verifie,2026-10-3154CALC-30-13,30,Solutions des exercices 30.1 à 30.8 (fonction exercices()),analysis/python/cases/ch30_dcf.py,analysis/python/tests/test_ch30.py::test_exercices_coherence,voir solutions/ch30.tex,OK,verifie,2026-10-3155CALC-47-001,47,RBP contractuel = 12 × somme des loyers,analysis/python/cases/ch47_dossier.py,analysis/python/tests/test_ch47.py::test_identites_revenus_depenses,165540,165540.00,verifie,2026-10-3156CALC-47-002,47,RBE = RBP(1−0,039) + 9 360,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_identites_revenus_depenses,168443.94,168443.94,verifie57CALC-47-003,47,Dépenses normalisées hors réserve (taxes recalculées ; gestion 4 % RBE ; +3 %),analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,70385.19,70385.19,verifie,2026-10-3158CALC-47-004,47,RNE normalisé = RBE − DE − réserve 8 103,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,89955.75,89955.75,verifie,2026-10-3159CALC-47-005,47,Taux global : médiane de 40 ventes (moyenne 4,404 ; pondérée 4,332 ; Q1 4,1525 ; Q3 4,6375),analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees60CALC-47-006,47,Valeur par capitalisation directe RNE/0,04415,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_capitalisation_et_dcf,2037502.89,2037502.89,verifie61CALC-47-007,47,Projection DCF 10 ans (rotation 15 % ; g_c 3,1 ; g_m 3,5 ; g_d 3,0 ; CAPEX 85k/40k/120k) : RNE_11,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,159658.3862CALC-47-008,47,Valeur terminale brute RNE_11/0,05 et nette ×0,975,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_capitalisation_et_dcf,3193167.52 / 3113338.33,3193167.52 / 3113338.3363CALC-47-009,47,Valeur DCF (r 7,25 %) = VA flux 662 409,91 + VA terminale 1 546 156,00 ; part terminale 70,0 %,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_capitalisation_et_dcf64CALC-47-010,47,OLS ln(prix/logement) : élasticité loyer 1,1707 ; taille 0,0079/log. ; R² 0,635,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,1.1707 / 0.007965CALC-47-011,47,Comparaison par unité : prix/logement pondéré 155 908,56 × 12,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,1870902.67,1870902.67,verifie66CALC-47-012,47,MRB médian des 10 comparables 11,94 × RBP contractuel,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,1976547.60,1976547.60,verifie67CALC-47-013,47,Prêt max RCD 1,20 à 4,12 % / 480 mois (constante 5,0789 %) ; prêt RPV 75 % de V_dcf 1 656 424,43,analysis/python/traite/cas3.py,test_ch47.py::test_valeurs_citees68CALC-47-014,47,Service de la dette 74 963,13 ; paiement mensuel 6 246,93 ; solde après 60 mois 1 394 739,19 ; après 120 mois 1 295 148,22,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees69CALC-47-015,47,TRI fonds propres (achat à V_dcf) 11,22 % ; VAN nulle au TRI ; point mort 92,7 %,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_financement_identites,0.1122 / 0.927,0.1122 / 0.92770CALC-47-016,47,Scénarios de renouvellement an 6 : SD +200 pb 95 920,20 ; RCD an 6 à +300 pb 1,222,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,95920.20 / 1.222,95920.20 / 1.22271CALC-47-017,47,APH Select 40 ans (RPV 85 %,RCD 1,10) à la valeur finale : prêt,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,1610137.58,1610137.5872CALC-47-018,47,Monte-Carlo 10 000 tirages graine 20261031 : médiane / q05 / q95 / moyenne / écart-type,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_monte_carlo_citations_et_reproductibilite,2191607.87 / 1735194.21 / 2876902.35 / 2233505.68 / 350442.57,idem,verifie,2026-10-3173CALC-47-019,47,Monte-Carlo : P(RCD1<1,20) 0,4936 ; P(RCD1<1,00) 0 ; P(RCD6<1,20 | +200 pb) 0,0140 ; P(V<cap) 0,3094 ; P(V<rôle) 074CALC-47-020,47,Projection vectorisée (MC) reproduit cas3.projection_dcf aux paramètres de base (rtol 1e-12),analysis/python/cases/ch47_dossier.py,test_ch47.py::test_projection_vectorisee_reproduit_cas3,identique,identique,verifie,2026-10-3175CALC-47-021,47,Tornade : amplitude taux d'actualisation 636 535 ; croissance loyers marché 459 632 ; écart terminal 320 404,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_projection_vectorisee_reproduit_cas3 (V_base),636534.56,636534.56,verifie,2026-10-3176CALC-47-022,47,Réconciliation 45/35/20 → 2 064 054,90 arrondie à 2 060 000 ; ratio/rôle 0,9364 ; MRB 12,44 ; taux implicite 4,367 %,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees77CALC-47-023,47,Droits de mutation Montréal 2026 sur 2 060 000 (7 tranches),analysis/python/cases/ch47_dossier.py,test_ch47.py::test_droits_mutation_montreal,41325.50,41325.50,verifie,2026-10-3178CALC-47-024,47,Valeur libre de baux (loyers de marché) : RNE 108 864,54 ; valeur 2 465 788,04,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees,2465788.04,2465788.0479CALC-47-025,47,Financement à la valeur finale : mise de fonds 584 040,55 ; RPV 71,65 % ; TRI FP 13,83 % ; TRI sans levier 8,11 %,analysis/python/cases/ch47_dossier.py,test_ch47.py::test_valeurs_citees80CALC-47-026,47,Exercices 1 à 7 (RNE 88 207,65 ; 88 949,51 ; V Q1/Q3 ; rotation 10/25 % ; prêt à 5,12 % 1 283 814,77 ; APH ; MC inoccupation 6 % P=0,9262),analysis/python/cases/ch47_dossier.py81CALC-01-01,1,Modèle hédonique de référence cas 1 : n ; k ; R² ; R² ajusté ; sigma,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_modele_et_dispersion,"600;16;0,853;0,849;0,083","600;16;0,8530;0,8492;0,0830",verifie,2026-10-3182CALC-01-02,1,Résidus : écart-type ; part des ventes à ±10 % ; à ±5 % ; asymétrie ; aplatissement,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_modele_et_dispersion,"0,082;0,745;0,448;≈0;≈0","0,0820;0,745;0,448;-0,070;-0,247",verifie,2026-10-3183CALC-01-03,1,Sujet : médiane ; moyenne (Duan 1,00335) ; mode ; IP 95 % (espérance conditionnelle log-normale),analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_esperance_conditionnelle_sujet,635 821;637 953;631 455;[539 682 ; 749 087],idem,verifie84CALC-01-04,1,P(|P/V−1| > 10 %) ; > 5 % ; > 20 % pour sigma = 0,083,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_probabilites_ecart,"0,251;0,557;0,028","0,251;0,557;0,0281",verifie85CALC-01-05,1,Contributions au sujet : garage ; sous-sol ; étages ; superficie ; âge (net) ; tendance ; identité const + Σβx = ln V,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_contributions,20 291;13 829;18 860;53 893;−84 497;57 385,idem,verifie,2026-10-3186CALC-01-06,1,Rendements décroissants : élasticité ; prix moyen ; prix marginal ; +10 m² ; 10 m² suivants,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_rendements_decroissants,"0,539;3 853;2 077;20 491;19 958",idem,verifie,2026-10-3187CALC-01-07,1,Anticipation : 0,364 %/mois ; 4,46 %/an ; 26,0 mois ; facteur 1,0992 ; valeur à la référence 578 436 vs rôle 468 000,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_anticipation88CALC-01-08,1,Conformité : sujet relocalisé Aylmer / Gatineau / Buckingham / Masson-Angers,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_conformite,"692 518 (+8,9 %);621 798 (−2,2 %);494 999 (−22,1 %);488 712 (−23,1 %)",idem,verifie,2026-10-3189CALC-01-09,1,Comparables ch. 16 : écart prix/valeur estimée G0574 ; G0404 ; G0468 ; G0477 ; G0575,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_comparables_ch16,"+0,7 %;−14,9 %;−9,9 %;−10,5 %;−8,0 %",idem,verifie,2026-10-3190CALC-01-10,1,Modèle de recherche (sim. 20 000) : prix de réserve/m ; prix moyen/m ; CV ; délai moyen (théorique) ; point fixe vérifié,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_recherche,"1,0267;1,068;0,0317;5,08 (5,05)",idem,verifie,2026-10-3191CALC-01-11,1,Recherche : sensibilité au coût de détention 0,2/0,4/0,8/1,5 % (prix de réserve ; délai ; prix moyen ; CV),analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_recherche92CALC-01-12,1,PHMU (hypothèses déclarées) : valeur résiduelle unifamiliale / duplex / triplex,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_phmu,170 000;160 000;140 000,idem,verifie,2026-10-3193CALC-01-13,1,Sensibilité à sigma (0,04–0,16) : moyenne/médiane ; mode/médiane ; bornes IP ; P(>5 %) ; P(>10 %) ; n pour ±2 %,analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_sensibilite_sigma,tableau 1.8 ; n = 16/36/68/142/251,idem94CALC-01-14,1,Solutions des exercices 1.2 à 1.7 (contributions ; rendements ; log-normale ; Gordon/coût d'usage ; prix de réserve uniforme ; lambda d'ancrage),analysis/python/cases/ch01_valeur_prix.py,analysis/python/tests/test_ch01.py::test_solutions_exercices,"16 964/20 958 ; 3 853/2 077/50 241 ; 503 613/492 852/[395 206;632 581]/0,427 ; 600 000/30 000/39 000 ; W=1,0553, T=4,47 ; λ=0,437",idem,verifie,2026-10-3195CALC-02-01,2,Écart contractuel/marché du cas 3 (RBP contrat ; RBP marché ; écart ; écart net de vacance 3,9 %),analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_ecart_contractuel,"165540 ; 186036 ; 20496 (11,0 %) ; 19697",idem,verifie96CALC-02-02,2,Écarts par logement (tableau 2.4) ; logement 103 : 319 $/mois ; 3 828 $/an ; ratio 0,695 ; ratio moyen 0,884,analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_ecart_contractuel,"1176;2592;3828;264;2412;588;2460;2244;336;2640;1152;804 ; 0,695 ; 0,884",idem97CALC-02-03,2,Décomposition DCF : V_locateur (= cas3.tout dcf) ; V_pleine libre de baux ; V_locataires ; part,analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_decomposition_dcf,"2208566 ; 2235712 ; 27146 ; 1,21 %",idem,verifie,2026-10-3198CALC-02-04,2,Composantes : RNE1 89 956 / 108 865 ; RBE1 168 444 / 188 141 ; VA flux 662 410 / 699 966 ; VA VT 1 546 156 / 1 535 746 ; écarts RNE années 1-6 et 11,analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_decomposition_dcf,18909;13166;8821;3692;1241;-394;…;-1075,idem,verifie,2026-10-3199CALC-02-05,2,Capitalisation naïve de l'écart au taux médian 4,415 % : Vcap contrat / marché / écart,analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_capitalisation_naive_et_formules,2037503 ; 2465788 ; 428285,idem,verifie100CALC-02-06,2,"Formule fermée éq. 2.8 : Δ1 = 19 697, r 7,25 %, g 3,5 % : sans rotation ; ρ = 15 % ; horizon 10 ans",analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_formule_fermee_rotation;test_capitalisation_naive_et_formules,"525244 ; 102188 (dénominateur 0,19275) ; 88094",idem,verifie,2026-10-31101CALC-02-07,2,Sensibilité rotation (0/1/2/3/6 logements/an) × taux (6,25/7,25/8,25 %) : V_locataires et part (tableau 2.6),analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_sensibilite,"397186 ; 59858 ; 27146 ; 17360 ; 5195 (à 7,25 %) ; part 18,39-18,50 % → 0,17-0,30 % ; facteur 76"102CALC-02-08,2,Identité d'additivité droit temporaire + réversion = pleine propriété (Gordon) et formule fermée vs somme brute,analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::test_additivite_droit_temporaire_et_reversion;test_formule_fermee_rotation,somme = V_pleine à 1e-12 ; série = formule à 1e-9,idem,verifie,2026-10-31103CALC-02-09,2,Solutions : ex. 2.3 (15 591 ; 26 578 ; 52 800) ; ex. 2.4 (309 341 ; 290 659 ; 696 581 ; 51,6 % ; viager 8 ans 192 361 / 407 639) ; ex. 2.5 (1,0985 ; 514 084) ; ex. 2.6 (159 168 ; 93 795) ; ex. 2.7 (79 254 ; 2 287 820) ; encadré (1 955 638 ; 252 928),analysis/python/cases/ch02_droits.py,analysis/python/tests/test_ch02.py::TestExercices,idem,idem104CALC-10-01,10,Contrôle lexical strict des 12 éléments : extraits fictifs A/B/C/D (éléments détectés),analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_extrait_complet_et_lacunaires,A 2;B 10;C 6;D 12,A 2;B 10;C 6;D 12,verifie,2026-10-31105CALC-10-02,10,Éléments non détectés (lexique strict) A ; B ; C,analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_extrait_complet_et_lacunaires,"A {1,2,4,5,6,7,9,10,11,12} ; B {6,10} ; C {2,3,4,9,11,12}",idem,verifie,2026-10-31106CALC-10-03,10,"Lexique souple : A détecte 5/12 (manquants 2,4,5,7,9,10,11) ; B/C/D inchangés",analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_extrait_complet_et_lacunaires;test_lexique_souple_jamais_plus_severe,"5 ; {2,4,5,7,9,10,11}",idem,verifie,2026-10-31107CALC-10-04,10,Taux de conformité τ̂ = détectés/12 (tableau 10.9),analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_taux_conformite_identite,"0,167 ; 0,417 ; 0,833 ; 0,500 ; 1,000","0,167 ; 0,417 ; 0,833 ; 0,500 ; 1,000",verifie,2026-10-31108CALC-10-05,10,"Probabilité de détection P_n = 1-(1-d)^n pour d ∈ {0,5;0,7;0,9} et n ∈ {1;2;3} (tableau 10.8)",analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_p_detection,"0,500/0,750/0,875 ; 0,700/0,910/0,973 ; 0,900/0,990/0,999",idem,verifie,2026-10-31109CALC-10-06,10,"Incidence d'une hypothèse extraordinaire (extrait B fictif) : 612 000 − 575 000 ; espérance à p = 0,6 ; p = 0,25",analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_incidence_hypothese,"37 000 $ (6,43 %) ; 597 200 $ ; 584 250 $","37 000 $ (6,43 %) ; 597 200 $ ; 584 250 $ (ex. 10.5 d : calcul manuel)",verifie,2026-10-31110CALC-10-07,10,"Formation continue (r. 127.1) : 26 h + report 5 h, 2 h éthique → déficit éthique 1 h, report 1 h ; 33 h/3 h → conforme, report 3 h",analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_conservation_et_formation,non conforme ; report 1 ; conforme ; report 3,idem,verifie,2026-10-31111CALC-10-08,10,Conservation minimale du dossier (r. 133 art. 6) : 2026-11-15 + 5 ans,analysis/python/cases/ch10_controle_rapport.py,analysis/python/tests/test_ch10.py::test_conservation_et_formation,2031-11-15,2031-11-15,verifie,2026-10-31112CALC-10-09,10,"Matrice normes-C : 100 dispositions, 17 domaines, 28 chapitres ; OEAQ+Code des professions 43 ; ch10 visé par 51 ; moyenne 1,70 chapitre/disposition ; 51 % multi-chapitres ; max 4 (tableau 10.7)",analysis/python/cases/ch10_matrice_normes.py,analysis/python/tests/test_ch10.py::test_matrice_normes,"100;17;28;43;51;1,70;51 %;4",idem,verifie,2026-10-31113CALC-10-10,10,"Familles : hors Québec 27, finance 20, NPP 15, déontologie 14, règlements 14, données 10 ; dont ch10 : 10,1,12,14,14,0",analysis/python/cases/ch10_matrice_normes.py,analysis/python/tests/test_ch10.py::test_matrice_normes,27;20;15;14;14;10,27;20;15;14;14;10,verifie,2026-10-31114CALC-10-11,10,"Chronologie : 8 documents sur 10 en vigueur/référence au 2026-10-31 ; délai publication→effet IVS 2025 = 366 j, RICS = 51 j",analysis/python/cases/ch10_matrice_normes.py,analysis/python/tests/test_ch10.py::test_chronologie,8 ; 366 ; 51,8 ; 366 ; 51,verifie,2026-10-31115CALC-10-12,10,"Solution ex. 10.6 c : probabilité d'échapper à deux contrôles indépendants (0,95 ; 0,7) = 0,05 × 0,3",—,calcul manuel (solutions/ch10.tex),"0,015 (détection 98,5 %)","0,015",verifie,2026-10-31116CALC-07-01,7,"Ventes appariées (n=12) : moyenne, médiane, écart-type, erreur-type, t, IC 95 %",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestServitude::test_paires_citees,"-20333 ; -19000 ; 10026 ; 2894 ; -7,03 ; [-26703 ; -13963]",idem,verifie,2026-10-31117CALC-07-02,7,"Effet relatif de la servitude : moyenne des ratios, rapport des moyennes, semi-log exp(β)−1 ; prix moyen sans",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestServitude::test_paires_citees,"-4,51 % ; -4,46 % ; -4,54 % (β=-0,0465) ; 455 792",idem,verifie,2026-10-31118CALC-07-03,7,Identités : moyenne des différences = différence des moyennes ; s_d (n−1) ; ET = s_d/√n ; concordance avec traite.comparables.ventes_appariees,analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestServitude::test_identites_paires,identités à 1e-9,idem,verifie,2026-10-31119CALC-07-04,7,"Modèle de la bande : 120 m² × 180 $/m² × 0,5",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestServitude::test_modele_bande,"21 600 ; 10 800 ; 17,1 % du terrain",idem,verifie,2026-10-31120CALC-07-05,7,"Quotes-parts en dix-millièmes (somme 10 000) ; Σv = 716,91 ; ΣS = 710 m²",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestCopropriete::test_quotes_parts,935;1352;974;1408;1196;1644;1186;1305,idem,verifie,2026-10-31121CALC-07-06,7,Répartition des charges : 40 000 + 21 891 + 5 000 = 66 891 (général) + 3 200 (stationnements) = 70 091 ; F1 6 254 ; F4 10 218 ; F6 11 797,analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestCopropriete::test_repartition,Σ contributions = budget ; valeurs citées,idem,verifie,2026-10-31122CALC-07-07,7,Contribution minimale au fonds d'auto assurance (r. 4.1 art. 2) : moitié de la franchise 10 000 → 5 000,analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestCopropriete::test_auto_assurance,5000 ; 3000 ; 0,idem,verifie,2026-10-31123CALC-07-08,7,Dépenses prévues 25 ans : 479 000 $ (2026) ; 651 959 $ courants ; fenêtres an 14 = 197 816 ; toiture an 7 = 89 151,analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestFondsPrevoyance::test_depenses,idem,idem,verifie,2026-10-31124CALC-07-09,7,"Cotisation de seuil A* = 21 891 (plancher 0), min = 0 an 14, solde an 25 = 239 241, A_25 = 39 595 ; plancher 25 000 → 23 228 ; récurrence F_t vérifiée",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestFondsPrevoyance::test_cotisation_seuil,idem,idem,verifie,2026-10-31125CALC-07-10,7,"Scénarios : cotisation actuelle 12 000 → négatif an 13, min -233 300 an 22, fin -182 783 ; règle 0,5 % = 21 000 → min -16 660 an 14",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestFondsPrevoyance::test_scenarios,idem,idem,verifie,2026-10-31126CALC-07-11,7,"Toiture seule : 89 151 ; SFF(2 %,7) = 0,13451 ; versement 11 992 ; accumulation exacte",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestFondsPrevoyance::test_toiture_sff,idem,idem,verifie,2026-10-31127CALC-07-12,7,"Sensibilité A* (π 1,5-3,5 % × r 1-3 %) : 19 342 à 24 442 ; monotonie",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestFondsPrevoyance::test_sensibilite,idem,idem,verifie,2026-10-31128CALC-07-13,7,"Déficit de capitalisation : solde requis 235 908 − 85 000 = 150 908 ; ajustements F1 -14 110, F4 -21 248, F6 -24 809",analysis/python/cases/ch07_servitudes_copro.py,analysis/python/tests/test_ch07.py::TestFondsPrevoyance::test_incidence_valeur,idem,idem,verifie,2026-10-31129CALC-07-14,7,Solutions des exercices 7.1 à 7.7 (82 $ ; quotes-parts ; paires n=6 ; bande 13 860 ; toiture ; script 21 409/23 228/17 304/25 625 ; PV 11 929 ; indivision 322 000/297 500),solutions/ch07.tex,analysis/python/tests/test_ch07.py::TestExercices,idem,idem,verifie,2026-10-31130CALC-08-001,8,Jeu synthétique Val-Fictif : 400 lots (H1 200 dont 36 rezonés ; H2 60 ; H3 60 ; C 60 ; P 20) ; 482 ventes dont 305 en H1 et 29 traitées,analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestDonneesSynthetiques::test_structure,400 ; 36 ; 482 ; 305 ; 29,400 ; 36 ; 482 ; 305 ; 29,verifie,2026-10-31131CALC-08-002,8,"Ventes appariées (29 paires, témoin ajusté temps/superficies/âge) : différence moyenne, médiane, écart-type, erreur-type",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestPaires::test_resume_cite,32 285 $ ; 19 944 $ ; 51 335 $ ; 9 533 $,32 285 $ ; 19 944 $ ; 51 335 $ ; 9 533 $,verifie,2026-10-31132CALC-08-003,8,"Ventes appariées en % du témoin ajusté : moyenne, médiane, IC95, < 40 ans (n=16), ≥ 40 ans (n=13) ; prime moyenne injectée",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestPaires::test_resume_cite,"9,29 % ; 6,28 % ; [4,32 ; 14,26] ; 4,85 % ; 14,75 % ; 6,15 %","9,29 % ; 6,28 % ; [4,32 ; 14,26] ; 4,85 % ; 14,75 % ; 6,15 %",verifie,2026-10-31133CALC-08-004,8,"Doubles différences H1 (n=305 ; cases 134/112/30/29) : δ 2×2 et δ régression (e.-t.), en log et en %",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestDiD::test_valeurs_citees,"0,1061 → 11,19 % ; 0,0657 (0,0208) → 6,79 % ; σ 0,0709","0,1061 → 11,19 % ; 0,0657 (0,0208) → 6,79 % ; σ 0,0709",verifie,2026-10-31134CALC-08-005,8,Lecture de la grille H2 : lot 600 m² conforme (min 450) ; logements = min(4 ; ⌊600/150⌋) = 4 ; plancher = 0,60 × 600 = 360 m²,analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestOutils::test_grille,4 ; 360,4 ; 360,verifie135CALC-08-006,8,"Valeur résiduelle quadruplex : GDV 2 088 000 ; directs 1 044 000 ; indirects 125 280 ; démolition 30 000 ; marge 313 200 ; financement 62 640 ; reste 512 880 ; parcs 46 625 ; V_L 466 255 ; prime 86 255 (22,7 %)",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestOutils::test_redeveloppement,"466 254,55 ; 86 254,55","466 254,55 ; 86 254,55",verifie,2026-10-31136CALC-08-007,8,"Grille p × T de la prime espérée (r = 8 %) et exemple p = 0,75, T = 2, coût 8 000 $ → V = 427 462 $",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestOutils::test_grille_attendue,55 462 ; 82 998 ; 17 118 ; 427 462,55 462 ; 82 998 ; 17 118 ; 427 462,verifie,2026-10-31137CALC-08-008,8,"Droits acquis : RNE duplex 22 620 ; RNE maison 19 320 ; ΔRNE 3 300 ; V_Δ = 3 300/(0,055+λ) pour λ ∈ {0 ; 1 ; 2 ; 5 %} ; horizon 25 ans ; V_conf + V_Δ (λ = 2 %) = 474 000",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestOutils::test_droits_acquis,60 000 ; 50 769 ; 44 000 ; 31 429 ; 44 830 ; 40 772 ; 37 252 ; 29 152 ; 474 000,60 000 ; 50 769 ; 44 000 ; 31 429 ; 44 830 ; 40 772 ; 37 252 ; 29 152 ; 474 000,verifie,2026-10-31138CALC-08-009,8,"Contribution pour fins de parcs (site 2 400 m², 960 000 $) : 240 m² ou 96 000 $ ; zone agricole : V_agr 75 000, V_aut 157 500, V attendue 90 796",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestOutils::test_parcs_et_agricole,240 ; 96 000 ; 90 796,240 ; 96 000 ; 90 796,verifie,2026-10-31139CALC-08-010,8,"Exercices 8.1 à 8.7 (solutions/ch08.tex) : 3 logements/324 m² ; 310 m²/125 000 $ ; ΔRNE 6 060, 101 000, 67 333, 56 203 ; δ 0,05 → 5,13 % ; 125 837 / 145 675 ; V_L 308 255 / 267 345, prime 28 255 ; dV/dλ, 42 857",analysis/python/cases/ch08_zonage.py,analysis/python/tests/test_ch08.py::TestExercices,voir solutions,identiques,verifie,2026-10-31140CALC-05-001,5,Gradient exponentiel du modèle monocentrique simulé gamma = t/(beta y) et demi-distance,analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestMonocentrique::test_gradient_et_frontiere,0.02917 /km ; 23.8 km,0.02917 /km ; 23.8 km,verifie,2026-10-31141CALC-05-002,5,Frontière urbaine d_bar (r = ra) et identité r(d_bar) = ra,analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestMonocentrique::test_gradient_et_frontiere,32.29 km ; p(d_bar) = 85.97,32.29 km ; 85.97,verifie,2026-10-31142CALC-05-003,5,Condition de Muth p'(d) q(d) = -t vérifiée numériquement sur la solution fermée,analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestMonocentrique::test_condition_de_muth_numerique,-700 à 1e-6 rel.,-700,verifie,2026-10-31143CALC-05-004,5,"Prix exact vs exponentiel à 10 et 25 km, q(0)/q(10)/q(d_bar), rente et densité à 10 km (tab. 5.2)",analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestMonocentrique::test_valeurs_tableau,191.61/194.23 (+1.4 %) ; 114.18/125.40 (+9.8 %) ; 92.3/114.3/200.3 m² ; 28.92 ; 0.396,idem,verifie,2026-10-31144CALC-05-005,5,"Frontières entre usages d'Alonso (commerces/dense, dense/pavillonnaire, pavillonnaire/agricole)",analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestMonocentrique::test_alonso,9.47 ; 14.29 ; 32.22 km,9.47 ; 14.29 ; 32.22 km,verifie,2026-10-31145CALC-05-006,5,Cas 1 : effectifs et médianes par tranche de distance (tab. 5.3),analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestCas1::test_tranches,n = 116/67/37/97/100/64/30/89 ; 3600 et 2684 $/m² ; terrain 1184 m²,idem,verifie,2026-10-31146CALC-05-007,5,"Cas 1 : gradients brut (-1.020 %/km), contrôlé (-1.083), aire urbaine ≤16 km (+0.266), quadratique (0.900 ; -0.0697 ; sommet 6.5 km ; -0.493 à 10 km ; -1.89 à 20 km)",analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestCas1::test_gradients,voir description,idem,verifie,2026-10-31147CALC-05-008,5,"Cas 1 : coefficient dist_centre du modèle de référence (-0.357 %/km, e.-t. 0.265, t = -1.35), effets de secteur, gradients implicites entre médianes, 1 km = 5 969 $",analysis/python/cases/ch05_rente.py ; traite.cas1.hedonique,analysis/python/tests/test_ch05.py::TestCas1::test_modele_reference,-0.357 ; -2.2/+8.9/-22.1/-23.1 % ; -0.345 et -0.973 %/km ; 5969 $ ; 29050 $,idem,verifie,2026-10-31148CALC-05-009,5,"Cas 4 : valeur par logement, RNE par logement et taux pondéré par RMR ; identité écart = contrib RNE + contrib taux (tab. 5.5)",analysis/python/cases/ch05_rente.py ; traite.cas4.sommaire,analysis/python/tests/test_ch05.py::TestCas4::test_decomposition,Montréal 206237 … Saguenay 101969 ; Québec -0.248/-0.249 ; Gatineau +0.077/-0.190,idem,verifie,2026-10-31149CALC-05-010,5,"Valeur résiduelle du terrain du cas 1 (C_N 397 567,33 ; dépréciation 30 % hypothétique ; V 551 029) et levier",analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestResidu::test_valeur_residuelle,272 732 $ (49.5 %) ; levier 2.02 ; -5 % → -10.1 % ; -10 % → -20.2 %,idem,verifie,2026-10-31150CALC-05-011,5,Décomposition de Capozza–Helsley à 10 km (simulation),analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestResidu::test_capozza,40 + 25 + 538.4 + 60 = 663.4 $/m² (81 %),663.4,verifie,2026-10-31151CALC-05-012,5,Capitalisation d'un écart de taxe : exact -dT/(i+tau1) vs approché -dT/i ; 10 pb et 22.4 pb sur 500 000 $ à i = 5 %,analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestTaxe::test_formule_exacte_et_approchee,-8621 (-1.72 %) vs -10000 ; -18906 (-3.78 %) vs -22400 ; ratio 1.16,idem,verifie,2026-10-31152CALC-05-013,5,"Taux 2026 : écart Québec–Gatineau 22.4 pb ; taux effectifs 0.5122 (Gatineau, F 1.02) et 0.6785 (Québec, F hypothétique 1.10) ; sujet cas 1 : 2 445 $ + 370 $ ; écart 6+ Québec : 466 $/an, 8 473 $ ; part de la taxe dans le coût d'usage 14 %",analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestTaxe::test_taux_2026,voir description,idem,verifie,2026-10-31153CALC-05-014,5,Grille de sensibilité écart de taux × taux de capitalisation (tab. 5.7),analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestTaxe::test_grille,-5000 … -125000 ; ratio 4 %/7 % = 1.75,idem,verifie,2026-10-31154CALC-05-015,5,Exercices 5.1 à 5.7 (solutions/ch05.tex),analysis/python/cases/ch05_rente.py,analysis/python/tests/test_ch05.py::TestExercices,voir solutions,idem,verifie,2026-10-31155CALC-06-001,6,Table de mortalité synthétique Gompertz–Makeham (A=0.0004 B=0.000025 c=1.102 ; ω=111) : espérances de vie et survies,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestMortalite,e_55 25.9 ; e_65 17.9 ; e_75 11.1 ; e_85 6.2 ; 10p65 0.789 ; 20p65 0.424,idem,verifie,2026-10-31156CALC-06-002,6,Valeur de la pleine propriété du cas 1 (traite.cas1 prédiction hédonique) arrondie et valeur locative nette L=(r−g)V,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestUsufruit::test_valeur_cas1_et_loyer,637 952.85 → 638 000 ; L = 22 330 $/an (1 861 $/mois),idem,verifie,2026-10-31157CALC-06-003,6,Usufruit à terme fixe 10/20/30 ans (U ; NP ; NP/V) et identité NP = V((1+g)/(1+r))^n,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestUsufruit::test_terme_fixe,183 443/454 557 (71.2 %) ; 314 141/323 859 (50.8 %) ; 407 260/230 740 (36.2 %),idem,verifie,2026-10-31158CALC-06-004,6,Usufruit viager 55/65/75/85 ans : U ; NP ; NP/V ; annuité viagère ; rente équivalente (art. 1171) ; identité U + NP_direct = V,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestUsufruit::test_viager,65 ans : 280 357 / 357 643 (56.1 %) ; 12.555 ; 25 335 $/an ; 55 : 43.6 % ; 75 : 69.0 % ; 85 : 80.6 %,idem,verifie,2026-10-31159CALC-06-005,6,Approximation par la durée espérée (n_eff = e_x + 1/2) à 65 ans et inégalité de Jensen (NP viager ≥ NP approx) sur 50–95 ans × 3 taux,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestUsufruit::test_approximation_terme_fixe_sous_estime_np,n_eff 18.36 ; NP 53.7 % ; écart 15 271 $,idem,verifie,2026-10-31160CALC-06-006,6,Grille NP/V âge (55–85) × taux (4/5/6 %) et monotonie,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestUsufruit::test_grille_sensibilite,65 ans : 65.4 / 56.1 / 48.4 % ; écart 2 pts de taux ≈ 108 000 $,idem,verifie,2026-10-31161CALC-06-007,6,Emphytéose de référence (RNE_1 cas 3 = 89 955.75 ; r 7 % ; g 2.5 % ; rente 30 000 ; n = 35) : V pleine ; V emph ; rentes ; reprise ; somme,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestEmphyteose::test_reference,1 999 017 ; 1 166 242 (58.3 %) ; 388 430 ; 444 344 ; 832 774 ; somme = V,idem,verifie,2026-10-31162CALC-06-008,6,Grille emphytéose selon la durée restante (60 → 5 ans) et identité somme = V pour n = 1…100,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestEmphyteose,60 ans : 71.3 % ; 20 ans : 41.8 % ; 5 ans : 13.2 %,idem,verifie,2026-10-31163CALC-06-009,6,Emphytéose avec taux du propriétaire 5.5 % : V prop et excédent de la somme sur V,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestEmphyteose::test_taux_distincts,1 190 025 ; somme 2 356 268 ; +357 251,idem,verifie,2026-10-31164CALC-06-010,6,Part indivise 50 % du cas 1 avec décote 0/10/20 %,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestAutres::test_indivision,319 000 ; 287 100 ; 255 200,idem,verifie,2026-10-31165CALC-06-011,6,Servitude de non-construction 120 m² / 620 m² par l'élasticité prix-terrain du modèle hédonique cas 1 (0.0937),analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestAutres::test_servitude,ΔV 12 725 $ (2.0 %),idem,verifie,2026-10-31166CALC-06-012,6,Rang hypothécaire : produit net 560 000 ; créances 455 000 / 90 000 / 40 000,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestAutres::test_rang,3e rang recouvre 15 000 (37.5 %),idem,verifie,2026-10-31167CALC-06-013,6,Droits de mutation 2026 (tranches 62 900 / 315 000 ; 0.5/1/1.5 %) sur 638 000 $ et sur 750 000 $ avec taux municipal 2 % > 500 000 $,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestAutres::test_mutation,314.50 + 2 521.00 + 4 845.00 = 7 680.50 (1.204 %) ; 9 360.50 + 1 250.00 = 10 610.50,idem,verifie,2026-10-31168CALC-06-014,6,Quantum d'un vice caché (prix 520 000 ; réparations 46 000 ; plus-value 9 000 ; autres 6 500) et budget registre 5 comparables,analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestAutres::test_vice_et_registre,37 000 (7.1 %) ; 43 500 si vendeur connaissait ; 15 $,idem,verifie,2026-10-31169CALC-06-015,6,Exercices 6.1 à 6.7 (solutions/ch06.tex),analysis/python/cases/ch06_demembrements.py,analysis/python/tests/test_ch06.py::TestExercices,voir solutions/ch06.tex,idem,verifie,2026-10-31170CALC-04-001,4,Recensement 2021 Québec : ménages 3 749 035 ; propriétaires 2 245 600 (59,9 %) ; locataires 1 497 005 ; Canada 66,5 %,analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestRecensement::test_totaux,3749035 ; 0.599 ; 0.665,3749035 ; 0.5990 ; 0.6646171CALC-04-002,4,Parts par type (Québec) : maison individuelle 44,6 % ; app. < 5 étages 33,2 % ; duplex 7,2 % ; app. ≥ 5 étages 6,0 % ; jumelée 5,3 % ; rangée 2,6 % ; Canada 52172CALC-04-003,4,Taux de propriété par type (Québec) : maison 92,2 % ; duplex 42,9 % ; app. < 5 étages 21,0 % ; app. ≥ 5 étages 28,7 % ; solde des modes = 6 430 logements fournis,analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestRecensement::test_taux_propriete_par_type173CALC-04-004,4,Indice de dissimilarité Québec/Canada sur 8 types (eq. 4.2) ; duplex + app. < 5 étages = 1 512 395 ménages (40,3 %),analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestRecensement::test_dissimilarite,0.1715 ; 1512395 ; 0.403,0.1715 ; 1512395 ; 0.4034,verifie174CALC-04-005,4,Ménages locataires par RMR 2021 (98-10-0231-01) : Montréal 837 470/1 835 705 = 45,6 % ; Québec 161 800/387 955 = 41,7 % ; Ottawa-Gatineau (ensemble) 34,6 % ; province 39,9 % ; Canada 33,1 %,analysis/python/cases/ch04_marches.py175CALC-04-006,4,Population RMR 2025 (17-10-0148-01) et TCAC 2020-2025 (eq. 4.3) : Montréal 1,08 % ; Québec 1,46 % ; Gatineau 1,18 % ; Sherbrooke 1,55 % ; Trois-Rivières 1,56 % ; Saguenay 0,96 % ; var. 2024-2025 Montréal 0176CALC-04-007,4,"IPLN sept. 2026 (18-10-0205-01) : Montréal 159,5 (+1,2 % a/a ; +59,5 % depuis déc. 2016 ; +35,6 % janv. 2020–déc. 2022 ; +76,1 % janv. 2000–déc. 2016) ; Québec 144,2 (+1,9 % ; +25,0 % 2020-22) ; Gatineau 116,6 (+0,3 % ; +9,2 %) ; Sherbrooke 112,1 (+7,3 %) ; Trois-Rivières 119,4 ; province 150,0 (+30,2 %) ; Canada 120,2 (−2,0 % ; sommet août 2022 126,1 ; −4,7 %) ; composantes Montréal maison 169,9 / terrain 132,6, province 158,3 / 128,0",analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestIPLN,voir description,identiques (lecture du CSV brut),verifie,2026-10-31177CALC-04-008,4,"SCHL ELL oct. 2025 : inoccupation (tous) Montréal 2,9 (2,1) ; Québec 2,4 (0,9) ; Gatineau 3,8 (1,9) ; Sherbrooke 2,7 (1,4) ; Trois-Rivières 2,7 (0,9) ; Saguenay 1,3 (1,6) ; loyer 2 ch. 1 346 / 1 277 / 1 460 / 1 062 / 1 016 / 985 ; univers 667 266 / 118 693 / 33 553 / 41 949 / 22 505 / 16 241",analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestSCHL::test_valeurs_citees,voir description,identiques (lecture du xlsx brut),verifie,2026-10-31178CALC-04-009,4,Variation brute vs « même échantillon » (eq. 4.5-4.6) : Montréal 2 ch. 1176→1346 = +14,5 % brute vs +7,2 % estimative ; Sherbrooke +6,0 % brute vs +9,8 % estimative ; tous logements Gatineau +4,5 %,Saguenay +12179CALC-04-010,4,Mois d'inventaire T3 2026 (eq. 4.7) = inscriptions/(ventes/3) : province 6,1 ; Montréal 6,6 ; Québec 3,1 ; Gatineau 6,5 ; Sherbrooke 4,4 ; Trois-Rivières 3,6 ; Saguenay 4180CALC-04-011,4,"Rapports de prix et MRB implicite (eq. 4.8) : plex/unifamiliale Montréal 1,33, Québec 1,29 ; copro/unifamiliale 0,67, 0,72 ; MRB plex 3 log. au loyer 2 ch. : Montréal 17,8 ; Québec 13,1 ; Gatineau 11,8 ; Sherbrooke 14,2 ; Trois-Rivières 11,5 ; Saguenay 10,5",analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestAPCIQ::test_rapports_et_mrb,voir description,1.333 ; 1.294 ; 0.674 ; 0.723 ; 17.76 ; 13.05 ; 11.75 ; 14.24 ; 11.48 ; 10.53,verifie,2026-10-31181CALC-04-012,4,"Banque du Canada (Valet) : taux directeur 2,50 % (2026-10-29) ; min 0,25 % (2009-04-21) ; 0,25 % en mars 2022 → 5,00 % le 2023-07-13 (dix hausses) ; 2,25 % le 2025-10-30 ; hyp. 5 ans affiché 6,19 % (2026-10-28), max 8,75 % (2000-05-24), min 4,64 % (2015-04-08) ; obligations 5 ans 3,58 %, 10 ans 3,84 % (2026-10-29)",analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestBanqueDuCanada,voir description,identiques (lecture des CSV Valet),verifie,2026-10-31182CALC-04-013,4,"Droits de mutation 2026 (eq. 4.9) : 500 000 $ → 5 610,50 $ (1,12 %) tous barèmes ; 645 500 $ : province 7 793, Montréal 8 259, Gatineau 9 975,50, Québec 9 248 ; 860 500 $ : 11 018 / 12 559 / 16 425,50 / 15 175,50 ; 1,5 M$ : 20 610,50 / 27 325,50 / 35 610,50 / 34 360,50 ; continuité aux bornes et monotonie du taux effectif (prop. 4.1)",analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestMutations,voir description,identiques,verifie,2026-10-31183CALC-04-014,4,"Prix soutenable (eq. 4.10-4.11) : prêt 400 000 $ à 4,12 % sur 25 ans → 2 130,18 $/mois ; à paiement constant : 3,00 % → 562 653 $ (+12,5 %) ; 6,19 % → 408 931 $ (−18,2 %) ; 7,00 % → 380 164 $ (−24,0 %) ; semi-élasticité −10,7 %/pt (3→3,5 %) vs −9,0 %/pt (6,19→7 %) ; élasticité −0,33 (3 %) vs −0,56 (6 %)",analysis/python/cases/ch04_marches.py,analysis/python/tests/test_ch04.py::TestTauxEtPrix;TestExercices::test_ex6,voir description,2130.18 ; 562652.61 ; 408930.96 ; 380163.94 ; −0.1071 ; −0.0901 ; −0.325 ; −0.557,verifie,2026-10-31184CALC-04-015,4,"Exercices 4.1-4.6 : 54,8 % / 33,3 % (QC) vs 46,2 % / 39,5 % (CA) ; 4,35 / 3,60 / 5,65 mois ; 1 105,71 $, +10,57 % vs +6 % ; Gatineau 9 210,50 $ (1,49 %) et 8 664,50 $ sur base 601 800 $ (1,55 % du prix) ; TCAC 1,46 %, 1 044 650 (2035), ISQ 0,57 %/an ; 540 666 $ et 458 582 $",analysis/python/cases/ch04_marches.py (exercices),analysis/python/tests/test_ch04.py::TestExercices,voir description,identiques,verifie,2026-10-31185