Repository Public Research preview
1# IMM1003 — Séance 9 — Corrigés (réservé au professeur)23## Méthode de comparaison — Partie 2 : mesurer, construire, réconcilier45Corrigés complets des exercices formatifs (non notés) d'`EXERCICES.md`. Conventions : catalogue du cours, séquence transactionnelle, net/brut « tous les ajustements », arrondi au dollar par ligne, conclusion au 5 000 $ — identiques à `validation/verification_calculs.py`. Tous les calculs sont reproduits par le script `calculs_s09.py` (annexe, code et sortie exécutée) et concordent avec `validation/RESULTATS_CALCULS.md` (C1 434 978 ; C2 453 026 ; C3 442 236 ; C4 383 729 ; C5 475 468 ; pondérée 446 081 → 445 000 $ ; sensibilité 434 988 / 441 591 / 450 571 / 444 331 / 447 831 / 446 543 / 445 387 / 449 149 $ ; E1 3 693 $ ; E2 430 342 et 457 185 $ ; E3 441 700 → 440 000 $).67---89## A — Questions conceptuelles1011**A1.** La règle : on ajuste **le comparable vers le sujet**, jamais l'inverse ; l'ajustement répond à « que vaudrait ce comparable s'il avait été identique au sujet, vendu au comptant à la date d'évaluation ? ». Mathématiquement $a_k = \beta_k (X_k^{\text{sujet}} - X_k^{\text{comp}})$ : si le comparable possède *plus* de l'attribut (supérieur), la différence est négative. Exemple : C2 en très bon état, sujet bon → C2 supérieur → −8 000 $ ; C1 avec garage simple, sujet double → C1 inférieur → +15 000 $. « Ajuster le sujet » n'a pas de sens : le sujet n'a pas de prix observé à modifier ; concrètement, l'étudiant qui raisonne « le sujet vaut plus, donc + » inverse tous les signes. *Piège de correction* : accepter la bonne réponse même si elle est formulée « supérieur → on retire ».1213**A2.** (a) Pourcentage (effet proportionnel à tout le prix : temps). (b) Dollars (composante discrète : 12 000 $). (c) Dollars par unité (variable continue mesurée par le marché : 150 $/pi²). (d) Pourcentage du prix ajusté transactionnel (un secteur agit sur l'ensemble : ±5 %). (e) Dollars, critère 8 (bien meuble, valeur d'usage retirée du prix). Justification attendue : la forme dépend de la **nature** de l'élément (UBC BUSI 330 [S14]), non de la commodité ; un garage à 3,4 % donnerait des montants différents selon le prix de la maison pour le même garage.1415**A3.** Les transactionnels contiennent un ajustement **multiplicatif** (temps, en %) ; or $(P + a)(1 + p) \ne P(1 + p) + a$ : la différence vaut $a \cdot p$. Deux ajustements en dollars commutent toujours ($P + a + b = P + b + a$) ; deux pourcentages commutent aussi ($P(1+p)(1+q)$) ; c'est le mélange $+a$ puis $\times(1+p)$ qui ne commute pas. Les ajustements de propriété sont tous calculés sur la *même* base (le prix ajusté transactionnel) puis sommés : l'ordre des termes d'une somme est indifférent. Exemple : 400 000 ; −10 000 ; +2 % → 397 800 vs 398 000 (écart $= -10\,000 \times 0{,}02 = -200$ $).1617**A4.** Conditions : (1) toutes choses égales (type, qualité, état) ; (2) même date ou prix ramenés à la même date ; (3) même marché (secteur, segment d'acheteurs) ; (4) ventes vérifiées, libres, sans lien de dépendance. Le MEFQ [S03] souligne le petit nombre d'observations : une paire isole un effet par différence, mais la différence porte aussi l'aléa des deux négociations (variance $2\sigma^2$ ; avec $\sigma \approx 8\,000$ $, écart-type d'une paire ≈ 11 300 $). Précaution : plusieurs paires, une fourchette (ex. garage 12–18 k$), un montant retenu et justifié, recoupé par une autre technique ; ne jamais écrire « l'analyse par paires démontre » sur la foi d'une paire.1819**A5.** *Coût* : ce que la composante a coûté (ou coûterait) à construire. *Coût déprécié* : coût de remplacement neuf moins la dépréciation (âge, usure, désuétude). *Valeur contributive* : ce que la composante ajoute à la valeur de l'ensemble, mesurée par le marché (paires, régression, capitalisation). Piscine : coût 22–50 k$, contribution 25 k$. Le MEFQ demande d'éviter les rajustements fondés sur les coûts parce que l'acheteur marginal ne valorise pas la composante au prix payé par le vendeur (goûts, entretien, segment). Le coût déprécié reste un **plafond de vraisemblance** : une contribution supérieure au coût de remplacement serait absurde (on en construirait une).2021**A6.** Net = somme algébrique de tous les ajustements ; brut = somme des valeurs absolues ; en % du prix de vente ; convention du cours : transactionnels (temps, financement) compris. Origine : Fannie Mae, Selling Guide B4-1.3-09 [S11], déclencheur d'explication pour le prêteur. Abolis par l'annonce SEL-2014-16 du 16 décembre 2014 [S12] (« eliminated the 15% net and 25% gross adjustment guidelines… without regard to limits on the size of the adjustments »). Au Canada/Québec : ni CUSPAP 2026 [S06], ni l'OEAQ [S01], ni le MEFQ [S03] ne fixent de seuil ; le MEFQ préfère « le total des rajustements ne devrait pas excéder la valeur contributive recherchée » ; l'UBC parle de 15–30 % de brut comme signal « suspect » [S14]. Dans ce cours (et le TP2) : **convention / repère de prudence**, pas une norme. Si dépassé : réévaluer la pertinence, vérifier chaque ajustement, chercher un meilleur comparable, **réduire le poids**, documenter — pas d'exclusion automatique (C4 : net −16,6 %, conservé à 5 %).2223**A7.** La moyenne suppose que toutes les indications ont la même précision. Or chaque indication est un « tirage » dans une distribution de prix possibles (Kummerow, 2003 [A27]) dont la dispersion croît avec le nombre et l'ampleur des ajustements (brut), l'ancienneté et la qualité des données. L'estimateur linéaire sans biais de variance minimale pèse chaque indication par l'inverse de sa variance (Vandell, 1991 [A03] ; Colwell et al., 1983 [A02]) ; la pondération chiffrée en est l'approximation pratique. Atelier : la moyenne 437 887 $ donne à C4 (net −16,6 %, autre secteur, six lignes) le même poids qu'à C3 (une ligne, même rue) ; C4 seul tire la moyenne de −13 540 $ ; la pondérée (30/30/20/15/5) est 446 081 $.2425**A8.** Étendue des indications : max − min des mesures brutes (475 468 − 383 729 = 91 739 $ = 20,6 % de la pondérée), aberrant compris ; elle décrit la dispersion des *mesures*. Intervalle crédible : bande dans laquelle la conclusion reste plausible après pondération et sensibilité (435 000–450 000 $, ± 2–3 %) ; il décrit l'incertitude de la *conclusion*. Il est plus étroit parce que les extrêmes (C4, C5) sont peu pondérés et que les indications fiables (C2, C3) sont proches ; combiner des mesures réduit la variance ($\sigma^2_{\hat V} = \sum w_i^2 \sigma_i^2$). CUSPAP 2026, 8.2.16 [S06] : la valeur finale peut être « a single point value, a range of values, or an indication of value » ; la forme dépend du mandat, la qualification de l'incertitude reste due.2627---2829## B — Exercices de calcul3031**B1.** (a) Intérêts 80 000 × 3 % = 2 400 $ ; facteur d'annuité à 5,5 %, 2 ans $= (1 - 1{,}055^{-2})/0{,}055 = 1{,}8463$ ; VA intérêts 2 400 × 1,8463 = 4 431 $ ; VA capital 80 000/1,055² = 71 876 $ ; VA = 76 307 $ ; **avantage 3 693 $** (0,9 % du prix) ; prix au comptant 395 000 − 3 693 = **391 307 $**. (b) 3 ans : facteur 2,6979 ; VA intérêts 6 475 ; VA capital 68 129 ; VA 74 604 ; **avantage 5 396 $** ; prix au comptant **389 604 $**. (c) Taux du contrat = taux du marché → VA = 80 000 → **avantage 0** : pas d'ajustement. (d) 80 000 × 0,025 × 1,8463 = **3 693 $** ✓. *Pièges* : actualiser à 3 % ; « 2,5 % × 80 000 × 2 = 4 000 $ » sans actualisation (+307 $) ; oublier que le temps se calcule ensuite sur 391 307 $.3233**B2.** (a) 436 000 − 7 500 = 428 500 ; temps 428 500 × 0,0017 × 6 = 4 371 $ ; **PAT 432 871 $**. (b) Temps d'abord : 436 000 × 1,0102 = 440 447 ; − 7 500 = 432 947 $ ; addition simple : 436 000 − 7 500 + 4 447 = 432 947 $ ; **écart 76 $** (= 7 500 × 0,0102). (c) 3 % de 436 000 = 13 080 $ ; 3 % de 428 500 = 12 855 $ ; différence 225 $ : un pourcentage n'a de sens qu'avec sa base ; temps et localisation se calculent sur le prix *courant*. *Piège* : écart « petit donc sans importance » — répondre que la séquence rend les grilles comparables entre elles (règle de méthode, UBC [S14]).3435**B3.** (a) 418 000/398 000 − 1 = **5,03 %** sur 30 mois ; mensuel simple 5,03/30 = **0,168 %/mois** ; annuel composé $(1{,}0503)^{12/30} - 1 =$ **1,98 %/an** — cohérent avec la convention (0,17 %/mois ; 2,0 %/an). (b) 430 000 × 0,00168 × 5 = +3 601 $ ; convention : 430 000 × 0,0017 × 5 = +3 655 $ ; écart 54 $, négligeable. (c) −5 %/12 ≈ −0,42 %/mois : signe opposé. L'évaluateur garde la convention du mandat (dérivée d'une revente vérifiée) mais **teste** 0 et −0,25 %/mois en sensibilité et nomme le taux de temps comme hypothèse dominante (p. 15, 54, 82 du deck) ; il cherche d'autres reventes et les médianes trimestrielles récentes (Centris [S22], APCIQ [S19], IPLN [S29]).3637**B4.** Temps 462 000 × 0,0017 × 6 = +4 712 $ ; garage double au comparable → −15 000 ; sdb de moins → +12 000 ; +20 pi² → −3 000 ; inclusions → −6 000. (a) **Net −7 288 $ (−1,6 %) ; brut 40 712 $ (8,8 %)**. (b) Corrections cachées : 40 712 − 7 288 = **33 424 $**. (c) Sans le temps : net −12 000 (−2,6 %), brut 36 000 (7,8 %) : le brut *baisse* (7,8 < 8,8) alors que le comparable a six mois d'incertitude de marché ; exclure le temps flatte les ventes anciennes — d'où la convention « tous les ajustements ». *Piège* : brut calculé avec les signes ; pourcentages sur l'indication (462 000 + 4 712 − 12 000 = 454 712) au lieu du prix de vente.3839**B5.** (a) 175 × 12/0,07 = **30 000 $** = catalogue (garage vs aucun). (b) 2 100/0,065 = **32 308 $**. (c) 1 800/0,07 = **25 714 $** (deck p. 21). (d) Le loyer ne capte que l'usage locatif ; un propriétaire-occupant valorise aussi commodité, rangement, protection du véhicule, que la paire de ventes capte ; la capitalisation donne donc une borne basse plausible, et la *convergence* (25–32 k$ vs 30 k$) renforce le catalogue.4041**B6.** (a) 80 × 151,91 = **12 153 $** vs 80 × 150 = 12 000 $ ; différence 153 $, négligeable face à σ = 7 972 $. (b) Prédit 247 673 + 151,91 × 1 250 = 437 561 $ ; résidu 426 500 − 437 561 = **−11 061 $ = −1,4 σ** : atypique, non aberrante (< 2 σ) ; on cherche la cause (état, rue, vente pressée) avant d'exclure. (c) 1 200 pi² : 429 965 ± 15 944 $. (d) IC 95 % de β₁ : 151,91 ± 2,23 × 22,99 = **101 à 203 $/pi²** : la pente est significative ($t = 6{,}61$) mais sa précision est modeste ; le 150 $/pi² du catalogue est une valeur centrale plausible, à tester en sensibilité pour de gros écarts d'aire. (e) 1 500 pi² : **475 538 $** — hors échantillon (max 1 400 pi²) : extrapolation ; de plus, l'échantillon de la régression (douze ventes toutes avec garage double et sous-sol fini, prix ramenés au 1er nov.) décrit un segment dont les prix sont plus élevés que ceux de l'atelier (conclusion 445 000 $ pour 1 500 pi²) : on retient la **pente**, pas la prédiction brute. (Ré-estimation MCO dans l'annexe : β₀ 247 673, β₁ 151,91, R² 0,81, t 6,61, σ 7 972 — identique au deck.)4243**B7.** (a) 220 500 + 135 600 + 85 600 = **441 700 $ → 440 000 $**. (b) V3 = 418 000 ; pondérée 441 700 − 0,20 × 10 000 = **439 700 → 440 000 $** : robuste (V3 pèse 20 %). (c) 176 400 + 180 800 + 85 600 = **442 800 → 445 000 $** : l'arrondi saute (frontière 442 500). (d) Moyenne 440 333 → 440 000 $ ; médiane 441 000 $. (e) Avec $w_3 = 0{,}20$ : $w_1 \times 441\,000 + w_2 \times 452\,000 = 442\,500 - 85\,600 = 356\,900$ et $w_1 + w_2 = 0{,}8$ → $w_1 = (0{,}8 \times 452\,000 - 356\,900)/11\,000 = 0{,}427$, $w_2 = 0{,}373$. À écrire : la valeur pondérée **et** l'arrondi, le fait que la conclusion est à la frontière 440 000–445 000 $, et la justification du choix de poids entre V1 et V2 (V1 plus récente, moins ajustée → 440 000 $). *Piège* : en (b), retrancher 20 000 au lieu de 10 000 ; conclure « 442 500 $ pour être au milieu ».4445**B8.** (a) Valeurs triées : 448 000 ; 498 000 ; 501 000 ; 505 000 ; 512 000 ; 520 000 → médiane (501 000 + 505 000)/2 = **503 000 $**. Écarts : I1 +1,8 % ; I2 −1,0 % ; I3 +0,4 % ; **I4 −10,9 % → à réexaminer** ; I5 +3,4 % ; I6 −0,4 %. (b) Moyenne avec I4 : 497 333 $ ; sans : 507 200 $ (I4 déplace la moyenne de près de 10 000 $) ; médiane sans I4 : 505 000 $ (déplacée de 2 000 $ seulement) : la médiane résiste à l'aberrant, la moyenne non — d'où la règle. (c) Erreur de données (vérifier acte, fiche, inclusions → corriger) ; ajustement manquant ou mal mesuré (élément non capté, coefficient → corriger la grille) ; comparable non comparable (autre segment → poids très faible ou retrait justifié, en le disant).4647---4849## C — Démonstrations guidées5051**C1 — Grille à deux comparables.**5253| Ligne | CA | CB | Raison |54|---|---:|---:|---|55| Prix de vente | 452 000 | 418 000 | |56| Délai | 5 mois (1er juin → 1er nov.) | 8 mois (1er mars → 1er nov.) | |57| 1–4 Transactionnels | 0 | 0 | aucune particularité ; les inclusions de CA relèvent du critère 8 |58| 5 Temps | +3 842 | +5 685 | 452 000 × 0,0017 × 5 ; 418 000 × 0,0017 × 8 |59| **Prix ajusté transactionnel** | **455 842** | **423 685** | |60| 6 Localisation | 0 | 0 | Hull / Hull |61| 7a Aire | −7 500 | +7 500 | CA +50 pi² (supérieur) ; CB −50 pi² (inférieur) ; × 150 $ |62| 7b Terrain | 0 | 0 | identiques |63| 7c Âge | 0 | −4 000 | CB 2012 vs 2010 : 2 ans plus récent, supérieur |64| 7d État, 7e chambres, 7f sdb, 7g sous-sol | 0 | 0 | identiques (bon ; 3 ; 1 + 1 s.e. ; fini) |65| 7h Garage | −15 000 | +30 000 | CA double vs simple (supérieur) ; CB aucun vs simple (inférieur) |66| 8 Non immobilier | −3 000 | 0 | inclusions de CA retirées |67| **Total propriété** | **−25 500** | **+33 500** | |68| **Indication** | **430 342** | **457 185** | |69| Net | −21 658 (−4,8 %) | +39 185 (+9,4 %) | tous les ajustements, en % du prix de vente |70| Brut | 29 342 (6,5 %) | 47 185 (11,3 %) | |71725. CA est plus fiable (brut 6,5 %, 5 mois, une grosse ligne de 15 000 $) que CB (brut 11,3 %, 8 mois, ligne de garage de 30 000 $). Écart entre les indications : 26 843 $ (6,2 % de CA), concentré sur les deux lignes de garage (45 000 $ cumulés) : un troisième comparable est nécessaire avant de conclure. Pondérée 60/40 : 441 079 → 440 000 $ ; 50/50 : 443 764 → 445 000 $ : la conclusion dépend des poids, ce qui confirme le besoin d'un comparable de plus. *Pièges* : −30 000 à CA ; inclusions dans les transactionnels ; signe de l'âge de CB ; net de CA sans le temps (−5,6 %).7374**C2 — Formule fermée.**751. $VA = S\,i_c\,a + S\,v^n$ (intérêts annuels $S i_c$ actualisés par l'annuité ; capital actualisé $n$ ans).762. $a = \sum_{k=1}^{n} v^k = \dfrac{1 - v^n}{i_m}$ ⟹ $i_m a = 1 - v^n$ ⟹ $i_m a + v^n = 1$. (Interprétation : 1 $ placé au taux du marché rend $i_m$ par an pendant $n$ ans plus 1 $ à l'échéance.)773. $S - VA = S - S i_c a - S v^n = S(1 - v^n) - S i_c a = S i_m a - S i_c a = S(i_m - i_c)\,a$. ∎784. C1 : $100\,000 \times 0{,}03 \times 2{,}7232 = 8\,170$ $ ✓ (VA : 5 446 + 86 384 = 91 830 ; 100 000 − 91 830 = 8 170). B1(a) : $80\,000 \times 0{,}025 \times 1{,}8463 = 3\,693$ $ ✓. (Annexe : $i_m a + v^n = 1{,}0000$ dans les deux cas.)795. L'avantage est proportionnel au solde, à l'écart de taux et au facteur d'annuité (croissant avec $n$, décroissant avec $i_m$) ; il est nul si $i_c = i_m$ ; il est *négatif* (le prix au comptant est plus élevé) si $i_c > i_m$ — cas d'un solde à taux supérieur au marché.8081**C3 — Décomposer la sensibilité.**821. $\hat V = \sum w_i V_i$ ; si $V_i \to V_i + \Delta a$ pour $i \in T$ et inchangé sinon, $\Delta \hat V = \Delta a \sum_{i \in T} w_i$. Garage 15 000 → 20 000 : $5\,000 \times (0{,}20 + 0{,}15) = 1\,750$ $ → $446\,081 + 1\,750 = 447\,831$ $ ✓.832. Le temps modifie $V_i$ de $\Delta t \times \text{base}_i \times \text{mois}_i$ (prorata simple), et pour C4 la localisation (−5 % du PAT) en réduit l'effet d'un facteur 0,95. $\Delta \hat V = 0{,}0017 \times [0{,}20 \times 401\,830 \times 9 + 0{,}30 \times 445\,000 \times 4 + 0{,}30 \times 440\,000 \times 7 + 0{,}05 \times 460\,000 \times 3 \times 0{,}95 + 0{,}15 \times 438\,000 \times 6] = 0{,}0017 \times 2\,641\,044 = 4\,490$ $ ✓ ($446\,081 - 441\,591$). Pour −0,25 : $4\,490 \times 0{,}42/0{,}17 = 11\,092$ $ → 434 989 $ (deck 434 988 ; 1 $ d'arrondi ligne par ligne).843. $-0{,}03 \times 462\,346 \times 0{,}05 = -694$ $ → 445 387 $ ✓.854. Parce que les coefficients douteux (catalogue) touchent surtout les comparables *très ajustés*, auxquels la pondération donne de faibles poids ; l'effet d'une erreur de coefficient est amorti par $\sum_{i \in T} w_i$. Donner les poids forts aux comparables peu ajustés rend la conclusion robuste aux hypothèses les moins solides — c'est le lien entre pondération et sensibilité.8687---8889## D — Étude de cas : variante (sujet garage simple, sous-sol partiel)9091**1. Les cinq grilles.** Seules 7g et 7h changent (les transactionnels, 6, 7a–7f et 8 sont identiques à l'atelier). Niveaux cumulés : garage aucun 0 / simple 30 000 / double 45 000 ; sous-sol non fini 0 / partiel 10 000 / fini 20 000 ; ajustement = v(sujet) − v(comparable), sujet = simple (30 000) et partiel (10 000).9293| | C1 | C2 | C3 | C4 | C5 |94|---|---:|---:|---:|---:|---:|95| Prix de vente | 410 000 | 445 000 | 425 000 | 460 000 | 438 000 |96| 2 Financement | −8 170 | 0 | 0 | 0 | 0 |97| 4 Dépenses après achat | 0 | 0 | +15 000 | 0 | 0 |98| 5 Temps | +6 148 (9 m.) | +3 026 (4 m.) | +5 236 (7 m.) | +2 346 (3 m.) | +4 468 (6 m.) |99| **PAT** | **407 978** | **448 026** | **445 236** | **462 346** | **442 468** |100| 6 Localisation | 0 | 0 | 0 | −23 117 | 0 |101| 7a Aire | −12 000 | +3 000 | −3 000 | −22 500 | 0 |102| 7b Terrain | 0 | 0 | 0 | −9 000 | 0 |103| 7c Âge | +4 000 | −2 000 | 0 | −6 000 | +2 000 |104| 7d État | 0 | −8 000 | 0 | −8 000 | +12 000 |105| 7e Chambres | 0 | 0 | 0 | −10 000 | 0 |106| 7f Sdb | 0 | +12 000 | 0 | 0 | 0 |107| **7g Sous-sol** (sujet partiel) | **+10 000** (non fini : inférieur) | **−10 000** (fini : supérieur) | **−10 000** | **−10 000** | **0** (partiel) |108| **7h Garage** (sujet simple) | **0** (simple) | **−15 000** (double : supérieur) | **−15 000** | **−15 000** | **0** (simple) |109| 8 Non immobilier | 0 | 0 | 0 | 0 | −6 000 |110| **Total propriété** | **+2 000** | **−20 000** | **−28 000** | **−103 617** | **+8 000** |111| **Indication** | **409 978** | **428 026** | **417 236** | **358 729** | **450 468** |112| Net ($ ; %) | −22 ; 0,0 | −16 974 ; −3,8 | −7 764 ; −1,8 | −101 271 ; −22,0 | +12 468 ; +2,8 |113| Brut ($ ; %) | 40 318 ; 9,8 | 53 026 ; 11,9 | 48 236 ; 11,3 | 105 963 ; 23,0 | 24 468 ; 5,6 |114115Pourquoi : C1 (non fini, simple) : il lui manque toujours la finition partielle (+10 000, et non +20 000) ; son garage est désormais identique (0, et non +15 000). C2, C3, C4 (fini, double) : ils sont désormais *supérieurs* sur les deux lignes (−10 000 et −15 000 chacun). C5 (partiel, simple) : identique au sujet sur les deux lignes (0, 0).116117**2. Récapitulatif.** Médiane **417 236 $** (C3) ; moyenne 412 887 $ ; étendue 358 729–450 468 $ (21,8 % de la pondérée). Écarts à la médiane : C1 −1,7 % ; C2 +2,6 % ; C3 0 ; **C4 −14,0 % → réexaminer** ; C5 +8,0 % (surveiller). C4 dépasse maintenant le repère du net (−22,0 %) et frôle celui du brut (23,0 %) : diagnostic inchangé (autre maison, autre secteur), borne basse conservée à poids très faible ou exclue.118119**3. Poids du deck (30/30/20/15/5) :** pondérée **421 081 $ → 420 000 $**. Sans recalcul : chaque indication a baissé d'exactement 25 000 $ (C1 : −10 000 de sous-sol et −15 000 de garage par rapport à l'atelier ; C2–C4 : −10 000 − 15 000 ; C5 : −10 000 − 15 000) ; comme $\sum w_i = 1$, $\Delta \hat V = -25\,000 \times 1 = -25\,000$ $ → 446 081 − 25 000 = 421 081 $. Moyenne 437 887 − 25 000 = 412 887 ✓.120121**4. Poids révisés.** Dans la variante, C5 devient le comparable **le moins ajusté** (brut 5,6 %, deux lignes de propriété non nulles plus les inclusions, mêmes dimensions, mêmes sous-sol et garage) et C1 passe de 15,9 % à 9,8 % de brut ; C2 et C3 reçoivent chacun deux lignes de catalogue supplémentaires (bruts 11,9 et 11,3 %). Une distribution défendable : C2 25, C3 30, C1 20, C5 20, C4 5 → **422 203 $ → 420 000 $** (inchangé). Sans C4, 25/25/25/25 → **426 427 $ → 425 000 $** (un pas). Leçon : les poids dépendent du *sujet* — un même comparable est plus ou moins fiable selon ce qu'on évalue. Accepter toute distribution justifiée par les critères (p. 49–51) sommant à 100 %.122123**5. Sensibilité (temps).** −0,25 → 409 988 $ (410 000) ; 0 → 416 591 $ (415 000) ; 0,17 → 421 081 $ (420 000) ; 0,34 → 425 571 $ (425 000). Amplitudes identiques à l'atelier (le temps ne touche pas 7g/7h) ; conclusion robuste à un pas près, retournement à deux pas.124125**6. Conclusion écrite (modèle).** « Cinq ventes vérifiées… ajustées selon la séquence transactionnelle (financement, dépenses après achat, temps à +0,17 %/mois) puis pour la localisation, les caractéristiques physiques — dont le sous-sol partiel et le garage simple du sujet — et les composantes non immobilières ; elles indiquent 358 729 à 450 468 $. » « C5, désormais le plus semblable (brut 5,6 %), et C3 (brut 11,3 %, une ligne de propriété importante) reçoivent 20 et 30 % ; C2 25 %, C1 20 % ; C4 (Aylmer, net −22,0 %) réexaminé et conservé à 5 % comme borne. » « Valeur pondérée 422 203 $ ; sensibilité (temps −0,25 à 0,34 %/mois ; exclusion de C4) : 410 000 à 425 000 $, le taux de temps dominant. » « L'hypothèse de marché a été conservée mais signalée… » « Valeur marchande au 1er novembre 2026 : **420 000 $**, intervalle crédible ± 2 à 3 %. » Repère : 420 000/1 500 = 280 $/pi² (297 $/pi² dans l'atelier : −17 $/pi² pour un garage et un sous-sol de moins — cohérent) ; rôle 2025 : 385 000 $.126127*Pièges de correction* : mettre +20 000 à C1 (non fini vs partiel = 10 000) ; oublier que C2–C4 deviennent supérieurs sur 7g/7h (signes négatifs) ; conserver les poids du deck sans discussion ; recalculer la pondérée au lieu d'utiliser −25 000 × 1.128129---130131## E — Activités de discussion (éléments attendus)132133**E1.** Attendu : (i) la convention est une *hypothèse datée* (revente jusqu'au 1er nov. 2026 vs signaux T3 2026 négatifs) ; (ii) l'évaluateur garde le taux qu'il peut *justifier par une mesure* (revente vérifiée) mais teste 0 et −0,25 (434 988 / 441 591 $) et nomme le taux de temps comme hypothèse dominante (p. 82, phrase 4) ; (iii) données à chercher : autres reventes 2025–2026, médianes trimestrielles Centris Hull (475 000 $, −5 %), APCIQ (ventes −12 %, inscriptions +42 %), IPLN (+0,3 %), délais de vente (34 jours, +7) ; (iv) dans un marché qui tourne, privilégier les ventes récentes (C4 à 3 mois est précieux *pour la date* malgré ses défauts) ; (v) le rapport présente le scénario retenu, les scénarios testés et l'effet sur la conclusion (435 000–450 000 $). Évaluation : pas de « bonne » réponse unique ; exiger que la position soit *chiffrée et écrite*.134135**E2.** Attendu : les deux positions sont défendables si elles sont documentées ; argument « exclure » : net −16,6 %, autre secteur, six lignes, MEFQ (total des rajustements > contribution) ; argument « conserver à 5 % » : Vandell 1991 (information, pondération optimale), C4 borne le haut du marché voisin et apporte une vente de 3 mois ; effet chiffré : 446 081 vs 449 149 $ (445 000 vs 450 000 $ : un pas) ; le rapport doit dire laquelle des deux options a été retenue, pourquoi, et ce que l'autre donnerait. Piège : « exclure parce que c'est plus simple » n'est pas un argument.136137**E3.** Attendu : l'OEAQ (Norme 1 [S01]) range les prix demandés et offres acceptées parmi les données à considérer « à titre de confirmation » seulement — une promesse d'achat n'est pas une vente conclue (elle peut échouer : financement, inspection) ; Northcraft et Neale 1987 [A23] : étudiants et courtiers ancrés sur le prix affiché, seuls 8 % des experts l'avouent ; organisation : remplir les grilles et la pondération *avant* de consulter le prix demandé, faire relire par un collègue « aveugle » au prix, documenter la sensibilité ; TP2 : même configuration (inscription 649 900 $, promesse au prix demandé) — la question posée au prêteur est précisément de savoir si le prix demandé est soutenu par les ventes ; la réponse doit venir de la grille, non du prix.138139**E4.** Attendu : un AVM est une *indication* supplémentaire, pas une vente ; l'intégrer exige de connaître ses données (CUSPAP 9.8.9 [S06] : l'AVM ne doit pas exclure de données pertinentes), sa date, son erreur typique (MAPE 10 % ≈ ± 45 000 $ sur 450 000 $ : *plus* incertain que C2 ou C3) ; poids faible, ou usage en recoupement ; Krause et al. 2020 [A32] : incertitude « fondée sur l'erreur » (dispersion des résidus — pour nous σ ≈ 8 000 $ et l'intervalle crédible) vs « fondée sur le modèle » (doute sur les coefficients — pour nous la sensibilité au catalogue) ; lacune : aucune étude québécoise revue par les pairs AVM vs comparables (recherche §0, point 50). Valoriser une réponse qui refuse à la fois le rejet de principe et l'adoption aveugle.140141---142143## F — Exercices de synthèse144145**F1.** Voir D.6 pour le modèle en cinq phrases ; grille de lecture : les six éléments de la p. 58 sont-ils tous présents (indications + fiabilité ; hypothèses/conventions nommées — 0,17 %/mois, catalogue, repères 15/25 %, arrondi 5 000 $ ; poids justifiés sommant à 100 % ; pondérée, arrondi, conclusion ; sensibilité avec paramètre dominant ; forme + intervalle crédible) ? Erreurs typiques : conclusion = valeur pondérée non arrondie ; étendue brute présentée comme fourchette ; hypothèse de marché non nommée ; poids non chiffrés.146147**F2.** Réponse attendue (a/b/c) : temps — revente (410 000 → 426 600) / reventes 2025–2026 au Registre foncier–JLR, médianes Centris trimestrielles / convention datée, **à tester** ; localisation — paire Aylmer–Hull (472 vs 449 k$) / plusieurs paires inter-secteurs à qualité égale, médianes de secteur en recoupement / une paire, **à tester** ; aire — régression (β₁ 151,91) / régression sur 30–100 ventes du secteur, prix ramenés à la date / mesuré (t = 6,61) mais IC large ; terrain — convention (6 $/pi², seuil 1 000) / régression ou paires de terrains vacants (MEFQ 3C ch. 4) / convention ; âge — coût déprécié + paires / paires d'âges différents, dépréciation observée (séance 10) / convention ; état — coût déprécié + paires / paires rénové/non rénové, devis / convention asymétrique, **à tester** ; chambres, sdb — coût déprécié + paires / paires ; attention à la colinéarité avec l'aire / convention ; sous-sol — paire (441 vs 421 k$) / plusieurs paires ; capitalisation si logement accessoire / une paire ; garage — paire (452 vs 437 k$) + capitalisation (25 714 $) / paires + loyers de garages / deux techniques convergentes ; piscine — valeur contributive (25 k$ vs coût 22–50 k$) / paires avec/sans piscine, saison de vente / convention ; inclusions — valeur d'usage / inventaire à l'offre d'achat, valeur de revente des biens / mesuré au cas par cas. Point clé : « catalogue » = vecteur de coefficients **datés et localisés**, reconstruit à chaque mandat.148149**F3 — Grille piégée.**1501. Erreurs : (i) **base du temps** : calculé sur 430 000 $ au lieu du prix courant net de la toiture (440 000 $) ; (ii) **séquence** : la toiture (critère 4, dollars) doit précéder le temps (critère 5, %), pas le suivre ; (iii) **signe du garage** : CX a un garage double, sujet simple → CX supérieur → **−15 000** (la collègue a raisonné sur le sujet) ; (iv) **signe de l'état** : CX très bon, sujet bon → CX supérieur → **−8 000** ; (v) **convention net/brut** : calculés sur les seules lignes de propriété, sans temps ni toiture, et sur quatre lignes dont deux mal signées ; (vi) accessoirement, la raison « le sujet vaut moins » ajuste le sujet (non-réalité).1512. Grille correcte : 430 000 + 10 000 = 440 000 ; temps 440 000 × 0,0017 × 8 = +5 984 ; **PAT 445 984 $** ; aire +60 pi² → −9 000 ; état très bon → −8 000 ; chambres +1 → −10 000 ; garage double vs simple → −15 000 ; total propriété **−42 000** ; **indication 403 984 $** ; net +10 000 + 5 984 − 42 000 = **−26 016 $ (−6,1 %)** ; brut 10 000 + 5 984 + 42 000 = **57 984 $ (13,5 %)**.1523. Écart : 449 848 − 403 984 = **45 864 $**. Décomposition : garage (+15 000 au lieu de −15 000) : 30 000 $ ; état (+8 000 au lieu de −8 000) : 16 000 $ ; base/séquence du temps : 5 848 vs 5 984 = −136 $ ; total 45 864 $ ✓. Les **erreurs de signe** pèsent 46 000 $ ; les erreurs de base/séquence quelques centaines — mais celles-ci révèlent une méthode mal comprise et rendent les grilles non comparables.1534. Le cours applique les deux lignes (aire et chambres) indépendamment (C4 de l'atelier ; `verification_calculs.py`) ; c'est un double comptage *si* la chambre supplémentaire est obtenue par les 60 pi² en plus. Trancher par le plan (pièce ajoutée vs redécoupage) ; en cas de doute, garder les deux lignes du catalogue, le signaler et tester la conclusion sans la ligne chambres (indication 413 984 $). Dans un rapport : expliquer le choix, ne pas le taire.154155---156157## Annexe — Reproduction de tous les calculs (Python, exécuté)158159Script `calculs_s09.py` (dans ce dossier ; `python3 calculs_s09.py`). Les assertions de concordance avec `RESULTATS_CALCULS.md` (C1–C5, pondérée 446 081 → 445 000 $ ; E2 430 342 / 457 185 $) sont vérifiées à l'exécution.160161### Code162163```python164#!/usr/bin/env python3165"""IMM1003 — Séance 9 — Annexe de calcul des CORRIGES (exercices formatifs, non notés).166167Mêmes conventions que validation/verification_calculs.py :168 - arrondi au dollar (ROUND_HALF_UP) à chaque ligne ;169 - transactionnels en séquence (droits → financement → conditions de vente → dépenses → temps),170 temps = prorata simple 0,17 %/mois sur le prix courant ;171 - propriété additive sur le prix ajusté transactionnel ; localisation ±5 % de ce prix ;172 - net / brut = TOUS les ajustements (transactionnels compris), en % du prix de vente ;173 - valeur conclue arrondie au 5 000 $ (ROUND_HALF_UP).174Exécuter : python3 calculs_s09.py175"""176from decimal import Decimal, ROUND_HALF_UP177import datetime as dt178179# ----------------------------------------------------------------- utilitaires180def r0(x): return int(Decimal(str(x)).quantize(Decimal("1"), rounding=ROUND_HALF_UP))181def r1(x): return float(Decimal(str(x)).quantize(Decimal("0.1"), rounding=ROUND_HALF_UP))182def r2(x): return float(Decimal(str(x)).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP))183def arrondi(x, pas=5000): return int(pas * Decimal(str(x / pas)).quantize(Decimal("1"), rounding=ROUND_HALF_UP))184def f(x): return f"{x:,.0f}".replace(",", " ") # 446 081185def fs(x): return ("+" if x >= 0 else "−") + f(abs(x)) # +6 148 / −8 170186def mois_ecoules(v, e): return (e.year - v.year) * 12 + (e.month - v.month)187188CAT = {"temps_pct_par_mois": 0.17, "aire_par_pi2": 150, "lot_par_pi2": 6, "lot_seuil_pi2": 1000,189 "garage_simple_vs_aucun": 30000, "garage_double_vs_simple": 15000,190 "soussol_fini_vs_non_fini": 20000, "soussol_fini_vs_partiel": 10000,191 "sdb_complete": 12000, "salle_eau": 6000, "chambre": 10000, "age_par_an": 2000,192 "etat": {"très bon": -8000, "bon": 0, "moyen": 12000}, "localisation_pct": 5.0, "piscine_creusee": 25000}193GARAGE = {"aucun": 0, "simple": 1, "double": 2}194SOUSSOL = {"non fini": 0, "partiel": 1, "fini": 2}195DATE_EVAL = dt.date(2026, 11, 1)196197def v_garage(n): return {0: 0, 1: CAT["garage_simple_vs_aucun"], 2: CAT["garage_simple_vs_aucun"] + CAT["garage_double_vs_simple"]}[GARAGE[n]]198def v_soussol(n): return {0: 0, 1: CAT["soussol_fini_vs_non_fini"] - CAT["soussol_fini_vs_partiel"], 2: CAT["soussol_fini_vs_non_fini"]}[SOUSSOL[n]]199200def grille(sujet, comp, taux_temps=None, date_eval=DATE_EVAL, cat=None):201 cat = cat or CAT202 taux = cat["temps_pct_par_mois"] if taux_temps is None else taux_temps203 rows, cour = [], comp["prix"]204 d = comp.get("droits", 0); cour += d; rows.append(("1 Droits de propriété", d, cour))205 fin = -comp.get("financement_avantage", 0); cour += fin; rows.append(("2 Conditions de financement", fin, cour))206 cv = comp.get("conditions_vente_pct", 0.0); m = r0(cour * cv / 100); cour += m; rows.append((f"3 Conditions de vente ({cv:+.1f} %)" if cv else "3 Conditions de vente", m, cour))207 dep = comp.get("depenses_apres_achat", 0); cour += dep; rows.append(("4 Dépenses après achat", dep, cour))208 mois = mois_ecoules(comp["date"], date_eval)209 t = r0(cour * taux / 100 * mois); cour += t; rows.append((f"5 Temps ({mois} mois × {taux:.2f} %)", t, cour))210 pat = cour211 prop = []212 loc = comp.get("localisation", "similaire")213 lp = {"similaire": 0.0, "inférieure": cat["localisation_pct"], "supérieure": -cat["localisation_pct"]}[loc]214 prop.append((f"6 Localisation ({loc}{f', {lp:+.0f} %' if lp else ''})", r0(pat * lp / 100)))215 da = comp["aire"] - sujet["aire"]; prop.append((f"7a Aire ({da:+d} pi² × 150 $)", -da * cat["aire_par_pi2"]))216 dl = comp["lot"] - sujet["lot"]; la = -dl * cat["lot_par_pi2"] if abs(dl) >= cat["lot_seuil_pi2"] else 0217 prop.append((f"7b Terrain ({dl:+d} pi²{'' if abs(dl) >= cat['lot_seuil_pi2'] else ', < 1 000'})", la))218 dg = comp["annee"] - sujet["annee"]; prop.append((f"7c Âge ({dg:+d} an × 2 000 $)", -dg * cat["age_par_an"]))219 prop.append((f"7d État ({comp['etat']} vs {sujet['etat']})", cat["etat"][comp["etat"]] - cat["etat"][sujet["etat"]]))220 dc = comp["chambres"] - sujet["chambres"]; prop.append((f"7e Chambres ({dc:+d})", -dc * cat["chambre"]))221 sdb = (sujet["sdb"][0] - comp["sdb"][0]) * cat["sdb_complete"] + (sujet["sdb"][1] - comp["sdb"][1]) * cat["salle_eau"]222 prop.append((f"7f Salles de bains ({comp['sdb'][0]}+{comp['sdb'][1]} s.e. vs {sujet['sdb'][0]}+{sujet['sdb'][1]})", sdb))223 prop.append((f"7g Sous-sol ({comp['soussol']} vs {sujet['soussol']})", v_soussol(sujet["soussol"]) - v_soussol(comp["soussol"])))224 prop.append((f"7h Garage ({comp['garage']} vs {sujet['garage']})", v_garage(sujet["garage"]) - v_garage(comp["garage"])))225 prop.append(("8 Non immobilier", -comp.get("non_immobilier", 0)))226 tp = sum(v for _, v in prop); ind = pat + tp227 adj = [v for _, v, _ in rows] + [v for _, v in prop]228 net, brut = sum(adj), sum(abs(v) for v in adj)229 return {"nom": comp["nom"], "prix": comp["prix"], "mois": mois, "trans": rows, "pat": pat, "prop": prop,230 "total_prop": tp, "indication": ind, "net": net, "net_pct": r1(net / comp["prix"] * 100),231 "brut": brut, "brut_pct": r1(brut / comp["prix"] * 100)}232233def affiche(g, detail=True):234 print(f"--- {g['nom']} : prix {f(g['prix'])} $, {g['mois']} mois")235 if detail:236 for lib, v, c in g["trans"]:237 if v or lib.startswith("5"): print(f" {lib:<38} {fs(v):>10} → {f(c)}")238 print(f" {'Prix ajusté transactionnel':<38} {'':>10} = {f(g['pat'])}")239 for lib, v in g["prop"]:240 if v: print(f" {lib:<38} {fs(v):>10}")241 print(f" Total propriété {fs(g['total_prop'])} → INDICATION {f(g['indication'])} $ | net {fs(g['net'])} ({g['net_pct']} %) | brut {f(g['brut'])} ({g['brut_pct']} %)")242243def reconcilier(grilles, poids):244 assert abs(sum(poids.values()) - 100) < 1e-9245 vp = sum(g["indication"] * poids[g["nom"]] / 100 for g in grilles)246 vals = sorted(g["indication"] for g in grilles); n = len(vals)247 med = vals[n // 2] if n % 2 else (vals[n // 2 - 1] + vals[n // 2]) / 2248 return {"ponderee": r0(vp), "conclue": arrondi(vp), "moyenne": r0(sum(vals) / n), "moyenne_arr": arrondi(sum(vals) / n),249 "mediane": r0(med), "min": vals[0], "max": vals[-1], "etendue_pct": r1((vals[-1] - vals[0]) / vp * 100)}250251def equivalence_comptant(solde, i_c, i_m, n):252 I = solde * i_c / 100; a = (1 - (1 + i_m / 100) ** -n) / (i_m / 100)253 va_int = I * a; va_cap = solde / (1 + i_m / 100) ** n; va = va_int + va_cap254 return {"interets": r0(I), "facteur": round(a, 4), "va_int": r0(va_int), "va_cap": r0(va_cap), "va": r0(va), "avantage": r0(solde - va),255 "formule_directe": r0(solde * (i_m - i_c) / 100 * a)}256257def ecarts_mediane(ind: dict, seuil=10.0):258 vals = sorted(ind.values()); n = len(vals)259 med = vals[n // 2] if n % 2 else (vals[n // 2 - 1] + vals[n // 2]) / 2260 return med, {k: (r1((v - med) / med * 100), "RÉEXAMINER" if abs((v - med) / med * 100) > seuil else "ok") for k, v in ind.items()}261262# ----------------------------------------------------------------- données de l'atelier (bloc 4)263SUJET = {"nom": "Sujet", "annee": 2005, "aire": 1500, "lot": 5500, "chambres": 3, "sdb": (2, 0), "soussol": "fini", "garage": "double", "etat": "bon"}264FIN_C1 = equivalence_comptant(100000, 2.0, 5.0, 3)265COMPS = [266 {"nom": "C1", "prix": 410000, "date": dt.date(2026, 2, 1), "annee": 2003, "aire": 1580, "lot": 5000, "chambres": 3, "sdb": (2, 0), "soussol": "non fini", "garage": "simple", "etat": "bon", "financement_avantage": FIN_C1["avantage"]},267 {"nom": "C2", "prix": 445000, "date": dt.date(2026, 7, 1), "annee": 2006, "aire": 1480, "lot": 5200, "chambres": 3, "sdb": (1, 0), "soussol": "fini", "garage": "double", "etat": "très bon"},268 {"nom": "C3", "prix": 425000, "date": dt.date(2026, 4, 1), "annee": 2005, "aire": 1520, "lot": 6000, "chambres": 3, "sdb": (2, 0), "soussol": "fini", "garage": "double", "etat": "bon", "depenses_apres_achat": 15000},269 {"nom": "C4", "prix": 460000, "date": dt.date(2026, 8, 1), "localisation": "supérieure", "annee": 2008, "aire": 1650, "lot": 7000, "chambres": 4, "sdb": (2, 0), "soussol": "fini", "garage": "double", "etat": "très bon"},270 {"nom": "C5", "prix": 438000, "date": dt.date(2026, 5, 1), "annee": 2004, "aire": 1500, "lot": 5500, "chambres": 3, "sdb": (2, 0), "soussol": "partiel", "garage": "simple", "etat": "moyen", "non_immobilier": 6000},271]272POIDS = {"C2": 30, "C3": 30, "C1": 20, "C5": 15, "C4": 5}273POIDS_SANS_C4 = {"C2": 32, "C3": 32, "C1": 21, "C5": 15, "C4": 0}274275def section(t): print("\n" + "=" * 78 + f"\n{t}\n" + "=" * 78)276277# ================================================================= 0. Atelier du deck (référence)278section("0. ATELIER DU DECK (bloc 4) — référence RESULTATS_CALCULS.md")279print("Équivalence au comptant C1 :", FIN_C1)280G = [grille(SUJET, c) for c in COMPS]281for g in G: affiche(g)282R = reconcilier(G, POIDS)283print(f"\nPondérée {f(R['ponderee'])} → conclue {f(R['conclue'])} $ ; moyenne {f(R['moyenne'])} (→ {f(R['moyenne_arr'])}) ; médiane {f(R['mediane'])} ; étendue {f(R['min'])}–{f(R['max'])} ({R['etendue_pct']} %)")284R2 = reconcilier(G, POIDS_SANS_C4); print(f"Sans C4 (32/32/21/15/0) : {f(R2['ponderee'])} → {f(R2['conclue'])} $")285med, ec = ecarts_mediane({g["nom"]: g["indication"] for g in G}); print("Écarts à la médiane :", ec)286attendu = {"C1": 434978, "C2": 453026, "C3": 442236, "C4": 383729, "C5": 475468}287assert all(g["indication"] == attendu[g["nom"]] for g in G) and R["ponderee"] == 446081 and R["conclue"] == 445000, "écart avec RESULTATS_CALCULS"288print("Concordance avec RESULTATS_CALCULS.md : OK (C1–C5, 446 081 → 445 000)")289290# sensibilité du deck291section("0b. SENSIBILITÉ DU DECK (base 446 081 $)")292for tx in (-0.25, 0.0, 0.17, 0.34):293 print(f" temps {tx:+.2f} %/mois → {f(reconcilier([grille(SUJET, c, taux_temps=tx) for c in COMPS], POIDS)['ponderee'])} $")294for gd in (10000, 15000, 20000):295 cat = dict(CAT); cat["garage_double_vs_simple"] = gd296 old = CAT["garage_double_vs_simple"]; CAT["garage_double_vs_simple"] = gd297 print(f" garage double vs simple {f(gd)} $ → {f(reconcilier([grille(SUJET, c) for c in COMPS], POIDS)['ponderee'])} $")298 CAT["garage_double_vs_simple"] = old299for lp in (3.0, 5.0, 8.0):300 old = CAT["localisation_pct"]; CAT["localisation_pct"] = lp301 print(f" localisation {lp:.0f} % → {f(reconcilier([grille(SUJET, c) for c in COMPS], POIDS)['ponderee'])} $")302 CAT["localisation_pct"] = old303print(f" question p. 81 (garage 30 000 $) : 446 081 + 15 000 × 0,35 = {f(446081 + 15000 * 0.35)} → {f(arrondi(446081 + 15000 * 0.35))} $")304print(f" question p. 84 (temps avant financement C1) : 410 000 × 1,0153 − 8 170 = {f(r0(410000 * 1.0153 - 8170))} $ (vs 407 978 ; écart {f(r0(410000 * 1.0153 - 8170) - 407978)} $)")305print(f" question p. 40 (C4 avec abri + spa 12 000 $) : {f(383729 - 12000)} $ ; écart à la médiane {r1((383729 - 12000 - 442236) / 442236 * 100)} %")306print(f" p. 37 (C1 sans transactionnels) : net {r1(27000 / 410000 * 100)} %, brut {r1(51000 / 410000 * 100)} %")307print(f" p. 46 : moyenne des 4 sans C4 = {f(r0((434978 + 453026 + 442236 + 475468) / 4))} ; effet de C4 = {fs(437887 - 451427)} $")308print(f" p. 35 : temps à −0,25 %/mois sur C1 = {f(r0(401830 * 0.0025 * 9))} $ retirés")309310# ================================================================= A. (conceptuel : pas de calcul) — B. calculs311section("B1. Équivalence au comptant — E1 du deck + variante")312e1 = equivalence_comptant(80000, 3.0, 5.5, 2); print("E1 (80 000 $, 3 % vs 5,5 %, 2 ans) :", e1, "→ prix au comptant", f(395000 - e1["avantage"]), "$ ; en % du prix :", r1(e1["avantage"] / 395000 * 100))313e1b = equivalence_comptant(80000, 3.0, 5.5, 3); print("B1 b (même solde, 3 ans) :", e1b, "→ prix au comptant", f(395000 - e1b["avantage"]))314e1c = equivalence_comptant(80000, 5.5, 5.5, 2); print("B1 c (taux du contrat = taux du marché) : avantage", e1c["avantage"])315print("Vérification C1 par la formule directe S(i_m − i_c)a :", FIN_C1["formule_directe"], "(annuité 2,7232)")316317section("B2. Séquence vs addition — 436 000 $, financement −7 500 $, 6 mois à 0,17 %/mois")318p, fin, m = 436000, 7500, 6319seq_base = p - fin; t_seq = r0(seq_base * 0.0017 * m); seq = seq_base + t_seq320t_add = r0(p * 0.0017 * m); add = p - fin + t_add321inv = r0(p * (1 + 0.0017 * m)) - fin322print(f" séquence : {f(p)} − {f(fin)} = {f(seq_base)} ; temps {f(seq_base)} × 0,0017 × {m} = {fs(t_seq)} → {f(seq)} $")323print(f" temps d'abord : {f(p)} × 1,0102 = {f(r0(p * 1.0102))} − {f(fin)} = {f(inv)} $ ; simple addition : {f(add)} $ ; écart = {f(add - seq)} $")324print(f" base du % : 3 % de 436 000 = {f(436000 * 0.03)} $ vs 3 % de 428 500 = {f(428500 * 0.03)} $")325326section("B3. Revente — 398 000 $ (1er mai 2024) → 418 000 $ (1er nov. 2026), 30 mois")327var = 418000 / 398000 - 1; print(f" variation {r2(var * 100)} % ; mensuel simple {var * 100 / 30:.3f} %/mois ; annuel composé {( (1 + var) ** (12 / 30) - 1) * 100:.2f} %/an")328print(f" application : vente de 5 mois à 430 000 $ → 430 000 × {var / 30:.5f} × 5 = {fs(r0(430000 * var / 30 * 5))} $ (vs {fs(r0(430000 * 0.0017 * 5))} $ au taux du cours)")329330section("B4. Net et brut — comparable 462 000 $, 6 mois")331adj = {"temps (6 mois)": r0(462000 * 0.0017 * 6), "garage double vs simple (comp. supérieur)": -15000, "salle de bains (comp. inférieur)": 12000, "aire +20 pi²": -3000, "inclusions": -6000}332net, brut = sum(adj.values()), sum(abs(v) for v in adj.values())333for k, v in adj.items(): print(f" {k:<45} {fs(v):>9}")334print(f" net {fs(net)} ({r1(net / 462000 * 100)} %) ; brut {f(brut)} ({r1(brut / 462000 * 100)} %) ; compensation cachée par le net : {f(brut - abs(net))} $")335print(f" sans le temps : net {fs(net - adj['temps (6 mois)'])} ({r1((net - adj['temps (6 mois)']) / 462000 * 100)} %), brut {f(brut - adj['temps (6 mois)'])} ({r1((brut - adj['temps (6 mois)']) / 462000 * 100)} %)")336337section("B5. Capitalisation d'un loyer de garage")338for loyer, taux in ((175, 7.0), (175, 6.5), (150, 7.0), (200, 7.0)):339 print(f" {loyer} $/mois à {taux} % → {f(r0(loyer * 12 / (taux / 100)))} $")340341section("B6. Régression hédonique — lecture des coefficients")342b0, b1, sig = 247673, 151.91, 7972343AIRES = [1050, 1100, 1120, 1150, 1180, 1200, 1220, 1250, 1280, 1300, 1350, 1400]344PRIX = [398500, 421500, 414000, 433500, 419500, 432000, 442500, 426500, 446000, 442000, 459500, 454500]345n = len(AIRES); mx, my = sum(AIRES) / n, sum(PRIX) / n346sxx = sum((a - mx) ** 2 for a in AIRES); sxy = sum((a - mx) * (p - my) for a, p in zip(AIRES, PRIX))347bb1 = sxy / sxx; bb0 = my - bb1 * mx348res = [p - (bb0 + bb1 * a) for a, p in zip(AIRES, PRIX)]; sse = sum(r ** 2 for r in res); sst = sum((p - my) ** 2 for p in PRIX)349s2 = sse / (n - 2); se_b1 = (s2 / sxx) ** 0.5350print(f" ré-estimation : β0 = {f(r0(bb0))}, β1 = {bb1:.2f} $/pi², R² = {1 - sse / sst:.2f}, t = {bb1 / se_b1:.2f}, σ = {f(r0(s2 ** 0.5))} $ (deck : 247 673 ; 151,91 ; 0,81 ; 6,61 ; 7 972)")351print(f" (a) écart de 80 pi² : 80 × 151,91 = {f(r0(80 * b1))} $ vs catalogue 80 × 150 = {f(80 * 150)} $ (différence {f(r0(80 * b1) - 12000)} $)")352print(f" (b) résidu de la vente 8 (1 250 pi², 426 500 $) : 426 500 − ({f(b0)} + 151,91 × 1 250 = {f(r0(b0 + b1 * 1250))}) = {fs(r0(426500 - (b0 + b1 * 1250)))} $ = {r1((426500 - (b0 + b1 * 1250)) / sig)} σ")353print(f" (c) intervalle ±2σ pour une prédiction : ±{f(2 * sig)} $ ; pour 1 200 pi² : {f(r0(b0 + b1 * 1200))} ± {f(2 * sig)} $")354print(f" (d) IC 95 % approx. de β1 (t crit. 2,23 à 10 ddl) : {b1 - 2.23 * 22.99:.1f} à {b1 + 2.23 * 22.99:.1f} $/pi²")355print(f" (e) prédiction hors échantillon à 1 500 pi² : {f(r0(b0 + b1 * 1500))} $ — extrapolation (max observé 1 400 pi²)")356357section("B7. Pondération — E3 du deck")358V = {"V1": 441000, "V2": 452000, "V3": 428000}359def pond(w, vals): return sum(w[k] * vals[k] for k in w) / 100360a = pond({"V1": 50, "V2": 30, "V3": 20}, V); print(f" (a) 50/30/20 : {f(r0(a))} → {f(arrondi(a))} $")361Vb = dict(V); Vb["V3"] = 418000; b = pond({"V1": 50, "V2": 30, "V3": 20}, Vb); print(f" (b) garage 20 000 $ (V3 = 418 000) : {f(r0(b))} → {f(arrondi(b))} $ (robuste : V3 pèse 20 %)")362c = pond({"V1": 40, "V2": 40, "V3": 20}, V); print(f" (c) 40/40/20 : {f(r0(c))} → {f(arrondi(c))} $ (l'arrondi saute : frontière 442 500)")363print(f" (d) moyenne simple : {f(r0(sum(V.values()) / 3))} → {f(arrondi(sum(V.values()) / 3))} $ ; médiane 441 000 $")364print(f" (e) poids qui ramènent exactement à 442 500 : avec V3 à 20 %, il faut w1 × 441 000 + w2 × 452 000 = 356 900 → w1 = {(0.8 * 452000 - 356900) / (452000 - 441000):.3f}")365366section("B8. Règle de l'aberrant (écart à la médiane > 10 %)")367ind = {"I1": 512000, "I2": 498000, "I3": 505000, "I4": 448000, "I5": 520000, "I6": 501000}368med, ec = ecarts_mediane(ind); print(f" médiane {f(med)} $ ;", ec)369print(f" moyenne avec I4 : {f(r0(sum(ind.values()) / 6))} ; sans I4 : {f(r0((sum(ind.values()) - 448000) / 5))} ; la médiane sans I4 : {f(sorted([v for k, v in ind.items() if k != 'I4'])[2])} $")370371# ================================================================= C. démonstrations guidées372section("C1. Grille à deux comparables (E2 du deck)")373S2 = {"nom": "Sujet", "annee": 2010, "aire": 1400, "lot": 5000, "chambres": 3, "sdb": (1, 1), "soussol": "fini", "garage": "simple", "etat": "bon"}374CA = {"nom": "CA", "prix": 452000, "date": dt.date(2026, 6, 1), "annee": 2010, "aire": 1450, "lot": 5000, "chambres": 3, "sdb": (1, 1), "soussol": "fini", "garage": "double", "etat": "bon", "non_immobilier": 3000}375CB = {"nom": "CB", "prix": 418000, "date": dt.date(2026, 3, 1), "annee": 2012, "aire": 1350, "lot": 5000, "chambres": 3, "sdb": (1, 1), "soussol": "fini", "garage": "aucun", "etat": "bon"}376gA, gB = grille(S2, CA), grille(S2, CB); affiche(gA); affiche(gB)377assert gA["indication"] == 430342 and gB["indication"] == 457185378print(f" écart entre les deux indications : {f(gB['indication'] - gA['indication'])} $ ({r1((gB['indication'] - gA['indication']) / gA['indication'] * 100)} % de CA) ; pondérée 60/40 : {f(r0(0.6 * gA['indication'] + 0.4 * gB['indication']))} → {f(arrondi(0.6 * gA['indication'] + 0.4 * gB['indication']))} $ ; 50/50 : {f(r0((gA['indication'] + gB['indication']) / 2))} → {f(arrondi((gA['indication'] + gB['indication']) / 2))} $")379380section("C2. Formule fermée de l'avantage de financement : S (i_m − i_c) a(i_m, n)")381for lab, (S, ic, im, n) in {"C1": (100000, 2.0, 5.0, 3), "E1": (80000, 3.0, 5.5, 2)}.items():382 e = equivalence_comptant(S, ic, im, n)383 print(f" {lab} : i_m a + v^n = {im / 100 * e['facteur'] + (1 + im / 100) ** -n:.4f} (≡ 1) ; S(i_m−i_c)a = {f(e['formule_directe'])} $ ; par VA : {f(e['avantage'])} $")384385section("C3. Décomposition de la sensibilité (pourquoi la pondérée bouge de si peu)")386print(f" garage +5 000 $ → ΔV = 5 000 × (w_C1 + w_C5) = 5 000 × 0,35 = {f(5000 * 0.35)} $ → {f(446081 + 1750)} ✓ (deck 447 831)")387bases = {"C1": (401830, 9, 1.0), "C2": (445000, 4, 1.0), "C3": (440000, 7, 1.0), "C4": (460000, 3, 0.95), "C5": (438000, 6, 1.0)}388dV = sum(POIDS[k] / 100 * b * m * k2 for k, (b, m, k2) in bases.items()) * 0.0017389print(f" temps 0 → 0,17 %/mois : ΔV = 0,0017 × Σ w_i × base_i × mois_i (× 0,95 pour C4 à cause de la localisation) = {f(r0(dV))} $ ✓ (deck 446 081 − 441 591 = 4 490)")390print(f" temps 0,17 → −0,25 : ΔV = {f(r0(dV / 0.17 * 0.42))} $ → {f(446081 - r0(dV / 0.17 * 0.42))} $ (deck 434 988 ; l'écart de quelques $ vient des arrondis ligne par ligne)")391print(f" localisation 5 → 8 % sur C4 : ΔV = −0,03 × 462 346 × 0,05 = {fs(r0(-0.03 * 462346 * 0.05))} $ → {f(446081 + r0(-0.03 * 462346 * 0.05))} ✓ (deck 445 387)")392393# ================================================================= D. étude de cas — variante394section("D. VARIANTE DE L'ATELIER — sujet avec GARAGE SIMPLE et SOUS-SOL PARTIEL (tout le reste inchangé)")395SUJ_D = dict(SUJET); SUJ_D["garage"] = "simple"; SUJ_D["soussol"] = "partiel"396GD = [grille(SUJ_D, c) for c in COMPS]397for g in GD: affiche(g)398RD = reconcilier(GD, POIDS)399print(f"\n Poids du deck (30/30/20/15/5) : pondérée {f(RD['ponderee'])} → {f(RD['conclue'])} $ ; moyenne {f(RD['moyenne'])} ; médiane {f(RD['mediane'])} ; étendue {RD['etendue_pct']} %")400med, ec = ecarts_mediane({g["nom"]: g["indication"] for g in GD}); print(" écarts à la médiane :", ec)401print(f" différence avec l'atelier : {f(RD['ponderee'] - 446081)} $ = −(15 000 + 10 000) exactement, car les poids somment à 1 et chaque grille bouge de −25 000 $")402POIDS_D = {"C2": 25, "C3": 30, "C1": 20, "C5": 20, "C4": 5}403RD2 = reconcilier(GD, POIDS_D); print(f" Poids révisés (C2 25, C3 30, C1 20, C5 20, C4 5) : {f(RD2['ponderee'])} → {f(RD2['conclue'])} $")404POIDS_D3 = {"C2": 25, "C3": 25, "C1": 25, "C5": 25, "C4": 0}405RD3 = reconcilier(GD, POIDS_D3); print(f" Sans C4, 25/25/25/25 : {f(RD3['ponderee'])} → {f(RD3['conclue'])} $")406print(" sensibilité D (temps) :", {tx: f(reconcilier([grille(SUJ_D, c, taux_temps=tx) for c in COMPS], POIDS)["ponderee"]) for tx in (-0.25, 0.0, 0.17, 0.34)})407print(f" repère : {f(RD['conclue'])} / 1 500 = {f(r0(RD['conclue'] / 1500))} $/pi² ; rôle 2025 385 000 $")408409# ================================================================= F3. grille piégée410section("F3. Grille piégée — comparable CX (430 000 $, 1er mars 2026, toiture 10 000 $)")411S3 = {"nom": "Sujet", "annee": 2005, "aire": 1500, "lot": 5500, "chambres": 3, "sdb": (2, 0), "soussol": "fini", "garage": "simple", "etat": "bon"}412CX = {"nom": "CX", "prix": 430000, "date": dt.date(2026, 3, 1), "annee": 2005, "aire": 1560, "lot": 5500, "chambres": 4, "sdb": (2, 0), "soussol": "fini", "garage": "double", "etat": "très bon", "depenses_apres_achat": 10000}413gX = grille(S3, CX); affiche(gX)414# version fautive de l'énoncé415t_faux = r0(430000 * 0.0017 * 8)416ind_faux = 430000 + t_faux + 10000 - 9000 - 10000 + 15000 + 8000417print(f" grille fautive de l'énoncé : temps sur 430 000 = {f(t_faux)} ; garage +15 000 ; état +8 000 ; toiture après le temps → indication {f(ind_faux)} $ ; net/brut sans transactionnels : {fs(-9000 - 10000 + 15000 + 8000)} / {f(42000)}")418print(f" grille corrigée : indication {f(gX['indication'])} $ ; écart {f(ind_faux - gX['indication'])} $ ; net {fs(gX['net'])} ({gX['net_pct']} %), brut {f(gX['brut'])} ({gX['brut_pct']} %)")419420# ================================================================= F1 — conclusion écrite variante D (chiffres)421section("F1. Chiffres pour la conclusion écrite de la variante D")422print(f" indications : {', '.join(f'{g['nom']} {f(g['indication'])}' for g in GD)} ; bruts : {', '.join(f'{g['nom']} {g['brut_pct']} %' for g in GD)}")423print(f" pondérée {f(RD['ponderee'])} → {f(RD['conclue'])} $ ; sans C4 (25×4) {f(RD3['ponderee'])} → {f(RD3['conclue'])} $")424print("\nFIN — toutes les assertions de concordance ont passé.")425```426427### Sortie (exécution du 2026-11-02, `python3 calculs_s09.py`)428429```text430431==============================================================================4320. ATELIER DU DECK (bloc 4) — référence RESULTATS_CALCULS.md433==============================================================================434Équivalence au comptant C1 : {'interets': 2000, 'facteur': 2.7232, 'va_int': 5446, 'va_cap': 86384, 'va': 91830, 'avantage': 8170, 'formule_directe': 8170}435--- C1 : prix 410 000 $, 9 mois436 2 Conditions de financement −8 170 → 401 830437 5 Temps (9 mois × 0.17 %) +6 148 → 407 978438 Prix ajusté transactionnel = 407 978439 7a Aire (+80 pi² × 150 $) −12 000440 7c Âge (-2 an × 2 000 $) +4 000441 7g Sous-sol (non fini vs fini) +20 000442 7h Garage (simple vs double) +15 000443 Total propriété +27 000 → INDICATION 434 978 $ | net +24 978 (6.1 %) | brut 65 318 (15.9 %)444--- C2 : prix 445 000 $, 4 mois445 5 Temps (4 mois × 0.17 %) +3 026 → 448 026446 Prix ajusté transactionnel = 448 026447 7a Aire (-20 pi² × 150 $) +3 000448 7c Âge (+1 an × 2 000 $) −2 000449 7d État (très bon vs bon) −8 000450 7f Salles de bains (1+0 s.e. vs 2+0) +12 000451 Total propriété +5 000 → INDICATION 453 026 $ | net +8 026 (1.8 %) | brut 28 026 (6.3 %)452--- C3 : prix 425 000 $, 7 mois453 4 Dépenses après achat +15 000 → 440 000454 5 Temps (7 mois × 0.17 %) +5 236 → 445 236455 Prix ajusté transactionnel = 445 236456 7a Aire (+20 pi² × 150 $) −3 000457 Total propriété −3 000 → INDICATION 442 236 $ | net +17 236 (4.1 %) | brut 23 236 (5.5 %)458--- C4 : prix 460 000 $, 3 mois459 5 Temps (3 mois × 0.17 %) +2 346 → 462 346460 Prix ajusté transactionnel = 462 346461 6 Localisation (supérieure, -5 %) −23 117462 7a Aire (+150 pi² × 150 $) −22 500463 7b Terrain (+1500 pi²) −9 000464 7c Âge (+3 an × 2 000 $) −6 000465 7d État (très bon vs bon) −8 000466 7e Chambres (+1) −10 000467 Total propriété −78 617 → INDICATION 383 729 $ | net −76 271 (-16.6 %) | brut 80 963 (17.6 %)468--- C5 : prix 438 000 $, 6 mois469 5 Temps (6 mois × 0.17 %) +4 468 → 442 468470 Prix ajusté transactionnel = 442 468471 7c Âge (-1 an × 2 000 $) +2 000472 7d État (moyen vs bon) +12 000473 7g Sous-sol (partiel vs fini) +10 000474 7h Garage (simple vs double) +15 000475 8 Non immobilier −6 000476 Total propriété +33 000 → INDICATION 475 468 $ | net +37 468 (8.6 %) | brut 49 468 (11.3 %)477478Pondérée 446 081 → conclue 445 000 $ ; moyenne 437 887 (→ 440 000) ; médiane 442 236 ; étendue 383 729–475 468 (20.6 %)479Sans C4 (32/32/21/15/0) : 449 149 → 450 000 $480Écarts à la médiane : {'C1': (-1.6, 'ok'), 'C2': (2.4, 'ok'), 'C3': (0.0, 'ok'), 'C4': (-13.2, 'RÉEXAMINER'), 'C5': (7.5, 'ok')}481Concordance avec RESULTATS_CALCULS.md : OK (C1–C5, 446 081 → 445 000)482483==============================================================================4840b. SENSIBILITÉ DU DECK (base 446 081 $)485==============================================================================486 temps -0.25 %/mois → 434 988 $487 temps +0.00 %/mois → 441 591 $488 temps +0.17 %/mois → 446 081 $489 temps +0.34 %/mois → 450 571 $490 garage double vs simple 10 000 $ → 444 331 $491 garage double vs simple 15 000 $ → 446 081 $492 garage double vs simple 20 000 $ → 447 831 $493 localisation 3 % → 446 543 $494 localisation 5 % → 446 081 $495 localisation 8 % → 445 387 $496 question p. 81 (garage 30 000 $) : 446 081 + 15 000 × 0,35 = 451 331 → 450 000 $497 question p. 84 (temps avant financement C1) : 410 000 × 1,0153 − 8 170 = 408 103 $ (vs 407 978 ; écart 125 $)498 question p. 40 (C4 avec abri + spa 12 000 $) : 371 729 $ ; écart à la médiane -15.9 %499 p. 37 (C1 sans transactionnels) : net 6.6 %, brut 12.4 %500 p. 46 : moyenne des 4 sans C4 = 451 427 ; effet de C4 = −13 540 $501 p. 35 : temps à −0,25 %/mois sur C1 = 9 041 $ retirés502503==============================================================================504B1. Équivalence au comptant — E1 du deck + variante505==============================================================================506E1 (80 000 $, 3 % vs 5,5 %, 2 ans) : {'interets': 2400, 'facteur': 1.8463, 'va_int': 4431, 'va_cap': 71876, 'va': 76307, 'avantage': 3693, 'formule_directe': 3693} → prix au comptant 391 307 $ ; en % du prix : 0.9507B1 b (même solde, 3 ans) : {'interets': 2400, 'facteur': 2.6979, 'va_int': 6475, 'va_cap': 68129, 'va': 74604, 'avantage': 5396, 'formule_directe': 5396} → prix au comptant 389 604508B1 c (taux du contrat = taux du marché) : avantage 0509Vérification C1 par la formule directe S(i_m − i_c)a : 8170 (annuité 2,7232)510511==============================================================================512B2. Séquence vs addition — 436 000 $, financement −7 500 $, 6 mois à 0,17 %/mois513==============================================================================514 séquence : 436 000 − 7 500 = 428 500 ; temps 428 500 × 0,0017 × 6 = +4 371 → 432 871 $515 temps d'abord : 436 000 × 1,0102 = 440 447 − 7 500 = 432 947 $ ; simple addition : 432 947 $ ; écart = 76 $516 base du % : 3 % de 436 000 = 13 080 $ vs 3 % de 428 500 = 12 855 $517518==============================================================================519B3. Revente — 398 000 $ (1er mai 2024) → 418 000 $ (1er nov. 2026), 30 mois520==============================================================================521 variation 5.03 % ; mensuel simple 0.168 %/mois ; annuel composé 1.98 %/an522 application : vente de 5 mois à 430 000 $ → 430 000 × 0.00168 × 5 = +3 601 $ (vs +3 655 $ au taux du cours)523524==============================================================================525B4. Net et brut — comparable 462 000 $, 6 mois526==============================================================================527 temps (6 mois) +4 712528 garage double vs simple (comp. supérieur) −15 000529 salle de bains (comp. inférieur) +12 000530 aire +20 pi² −3 000531 inclusions −6 000532 net −7 288 (-1.6 %) ; brut 40 712 (8.8 %) ; compensation cachée par le net : 33 424 $533 sans le temps : net −12 000 (-2.6 %), brut 36 000 (7.8 %)534535==============================================================================536B5. Capitalisation d'un loyer de garage537==============================================================================538 175 $/mois à 7.0 % → 30 000 $539 175 $/mois à 6.5 % → 32 308 $540 150 $/mois à 7.0 % → 25 714 $541 200 $/mois à 7.0 % → 34 286 $542543==============================================================================544B6. Régression hédonique — lecture des coefficients545==============================================================================546 ré-estimation : β0 = 247 673, β1 = 151.91 $/pi², R² = 0.81, t = 6.61, σ = 7 972 $ (deck : 247 673 ; 151,91 ; 0,81 ; 6,61 ; 7 972)547 (a) écart de 80 pi² : 80 × 151,91 = 12 153 $ vs catalogue 80 × 150 = 12 000 $ (différence 153 $)548 (b) résidu de la vente 8 (1 250 pi², 426 500 $) : 426 500 − (247 673 + 151,91 × 1 250 = 437 561) = −11 061 $ = -1.4 σ549 (c) intervalle ±2σ pour une prédiction : ±15 944 $ ; pour 1 200 pi² : 429 965 ± 15 944 $550 (d) IC 95 % approx. de β1 (t crit. 2,23 à 10 ddl) : 100.6 à 203.2 $/pi²551 (e) prédiction hors échantillon à 1 500 pi² : 475 538 $ — extrapolation (max observé 1 400 pi²)552553==============================================================================554B7. Pondération — E3 du deck555==============================================================================556 (a) 50/30/20 : 441 700 → 440 000 $557 (b) garage 20 000 $ (V3 = 418 000) : 439 700 → 440 000 $ (robuste : V3 pèse 20 %)558 (c) 40/40/20 : 442 800 → 445 000 $ (l'arrondi saute : frontière 442 500)559 (d) moyenne simple : 440 333 → 440 000 $ ; médiane 441 000 $560 (e) poids qui ramènent exactement à 442 500 : avec V3 à 20 %, il faut w1 × 441 000 + w2 × 452 000 = 356 900 → w1 = 0.427561562==============================================================================563B8. Règle de l'aberrant (écart à la médiane > 10 %)564==============================================================================565 médiane 503 000 $ ; {'I1': (1.8, 'ok'), 'I2': (-1.0, 'ok'), 'I3': (0.4, 'ok'), 'I4': (-10.9, 'RÉEXAMINER'), 'I5': (3.4, 'ok'), 'I6': (-0.4, 'ok')}566 moyenne avec I4 : 497 333 ; sans I4 : 507 200 ; la médiane sans I4 : 505 000 $567568==============================================================================569C1. Grille à deux comparables (E2 du deck)570==============================================================================571--- CA : prix 452 000 $, 5 mois572 5 Temps (5 mois × 0.17 %) +3 842 → 455 842573 Prix ajusté transactionnel = 455 842574 7a Aire (+50 pi² × 150 $) −7 500575 7h Garage (double vs simple) −15 000576 8 Non immobilier −3 000577 Total propriété −25 500 → INDICATION 430 342 $ | net −21 658 (-4.8 %) | brut 29 342 (6.5 %)578--- CB : prix 418 000 $, 8 mois579 5 Temps (8 mois × 0.17 %) +5 685 → 423 685580 Prix ajusté transactionnel = 423 685581 7a Aire (-50 pi² × 150 $) +7 500582 7c Âge (+2 an × 2 000 $) −4 000583 7h Garage (aucun vs simple) +30 000584 Total propriété +33 500 → INDICATION 457 185 $ | net +39 185 (9.4 %) | brut 47 185 (11.3 %)585 écart entre les deux indications : 26 843 $ (6.2 % de CA) ; pondérée 60/40 : 441 079 → 440 000 $ ; 50/50 : 443 764 → 445 000 $586587==============================================================================588C2. Formule fermée de l'avantage de financement : S (i_m − i_c) a(i_m, n)589==============================================================================590 C1 : i_m a + v^n = 1.0000 (≡ 1) ; S(i_m−i_c)a = 8 170 $ ; par VA : 8 170 $591 E1 : i_m a + v^n = 1.0000 (≡ 1) ; S(i_m−i_c)a = 3 693 $ ; par VA : 3 693 $592593==============================================================================594C3. Décomposition de la sensibilité (pourquoi la pondérée bouge de si peu)595==============================================================================596 garage +5 000 $ → ΔV = 5 000 × (w_C1 + w_C5) = 5 000 × 0,35 = 1 750 $ → 447 831 ✓ (deck 447 831)597 temps 0 → 0,17 %/mois : ΔV = 0,0017 × Σ w_i × base_i × mois_i (× 0,95 pour C4 à cause de la localisation) = 4 490 $ ✓ (deck 446 081 − 441 591 = 4 490)598 temps 0,17 → −0,25 : ΔV = 11 092 $ → 434 989 $ (deck 434 988 ; l'écart de quelques $ vient des arrondis ligne par ligne)599 localisation 5 → 8 % sur C4 : ΔV = −0,03 × 462 346 × 0,05 = −694 $ → 445 387 ✓ (deck 445 387)600601==============================================================================602D. VARIANTE DE L'ATELIER — sujet avec GARAGE SIMPLE et SOUS-SOL PARTIEL (tout le reste inchangé)603==============================================================================604--- C1 : prix 410 000 $, 9 mois605 2 Conditions de financement −8 170 → 401 830606 5 Temps (9 mois × 0.17 %) +6 148 → 407 978607 Prix ajusté transactionnel = 407 978608 7a Aire (+80 pi² × 150 $) −12 000609 7c Âge (-2 an × 2 000 $) +4 000610 7g Sous-sol (non fini vs partiel) +10 000611 Total propriété +2 000 → INDICATION 409 978 $ | net −22 (-0.0 %) | brut 40 318 (9.8 %)612--- C2 : prix 445 000 $, 4 mois613 5 Temps (4 mois × 0.17 %) +3 026 → 448 026614 Prix ajusté transactionnel = 448 026615 7a Aire (-20 pi² × 150 $) +3 000616 7c Âge (+1 an × 2 000 $) −2 000617 7d État (très bon vs bon) −8 000618 7f Salles de bains (1+0 s.e. vs 2+0) +12 000619 7g Sous-sol (fini vs partiel) −10 000620 7h Garage (double vs simple) −15 000621 Total propriété −20 000 → INDICATION 428 026 $ | net −16 974 (-3.8 %) | brut 53 026 (11.9 %)622--- C3 : prix 425 000 $, 7 mois623 4 Dépenses après achat +15 000 → 440 000624 5 Temps (7 mois × 0.17 %) +5 236 → 445 236625 Prix ajusté transactionnel = 445 236626 7a Aire (+20 pi² × 150 $) −3 000627 7g Sous-sol (fini vs partiel) −10 000628 7h Garage (double vs simple) −15 000629 Total propriété −28 000 → INDICATION 417 236 $ | net −7 764 (-1.8 %) | brut 48 236 (11.3 %)630--- C4 : prix 460 000 $, 3 mois631 5 Temps (3 mois × 0.17 %) +2 346 → 462 346632 Prix ajusté transactionnel = 462 346633 6 Localisation (supérieure, -5 %) −23 117634 7a Aire (+150 pi² × 150 $) −22 500635 7b Terrain (+1500 pi²) −9 000636 7c Âge (+3 an × 2 000 $) −6 000637 7d État (très bon vs bon) −8 000638 7e Chambres (+1) −10 000639 7g Sous-sol (fini vs partiel) −10 000640 7h Garage (double vs simple) −15 000641 Total propriété −103 617 → INDICATION 358 729 $ | net −101 271 (-22.0 %) | brut 105 963 (23.0 %)642--- C5 : prix 438 000 $, 6 mois643 5 Temps (6 mois × 0.17 %) +4 468 → 442 468644 Prix ajusté transactionnel = 442 468645 7c Âge (-1 an × 2 000 $) +2 000646 7d État (moyen vs bon) +12 000647 8 Non immobilier −6 000648 Total propriété +8 000 → INDICATION 450 468 $ | net +12 468 (2.8 %) | brut 24 468 (5.6 %)649650 Poids du deck (30/30/20/15/5) : pondérée 421 081 → 420 000 $ ; moyenne 412 887 ; médiane 417 236 ; étendue 21.8 %651 écarts à la médiane : {'C1': (-1.7, 'ok'), 'C2': (2.6, 'ok'), 'C3': (0.0, 'ok'), 'C4': (-14.0, 'RÉEXAMINER'), 'C5': (8.0, 'ok')}652 différence avec l'atelier : -25 000 $ = −(15 000 + 10 000) exactement, car les poids somment à 1 et chaque grille bouge de −25 000 $653 Poids révisés (C2 25, C3 30, C1 20, C5 20, C4 5) : 422 203 → 420 000 $654 Sans C4, 25/25/25/25 : 426 427 → 425 000 $655 sensibilité D (temps) : {-0.25: '409 988', 0.0: '416 591', 0.17: '421 081', 0.34: '425 571'}656 repère : 420 000 / 1 500 = 280 $/pi² ; rôle 2025 385 000 $657658==============================================================================659F3. Grille piégée — comparable CX (430 000 $, 1er mars 2026, toiture 10 000 $)660==============================================================================661--- CX : prix 430 000 $, 8 mois662 4 Dépenses après achat +10 000 → 440 000663 5 Temps (8 mois × 0.17 %) +5 984 → 445 984664 Prix ajusté transactionnel = 445 984665 7a Aire (+60 pi² × 150 $) −9 000666 7d État (très bon vs bon) −8 000667 7e Chambres (+1) −10 000668 7h Garage (double vs simple) −15 000669 Total propriété −42 000 → INDICATION 403 984 $ | net −26 016 (-6.1 %) | brut 57 984 (13.5 %)670 grille fautive de l'énoncé : temps sur 430 000 = 5 848 ; garage +15 000 ; état +8 000 ; toiture après le temps → indication 449 848 $ ; net/brut sans transactionnels : +4 000 / 42 000671 grille corrigée : indication 403 984 $ ; écart 45 864 $ ; net −26 016 (-6.1 %), brut 57 984 (13.5 %)672673==============================================================================674F1. Chiffres pour la conclusion écrite de la variante D675==============================================================================676 indications : C1 409 978, C2 428 026, C3 417 236, C4 358 729, C5 450 468 ; bruts : C1 9.8 %, C2 11.9 %, C3 11.3 %, C4 23.0 %, C5 5.6 %677 pondérée 421 081 → 420 000 $ ; sans C4 (25×4) 426 427 → 425 000 $678679FIN — toutes les assertions de concordance ont passé.680```681