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-3155