# Inventaire (229 scripts, 27 fichiers de données, 3 classeurs, 219 figures) - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}cas1.py` — Cas 1 — maison unifamiliale à Gatineau (données synthétiques) : calculs PARTAGÉS par les chapitres 9, 14, 16-2 - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}cas2.py` — Cas 2 — triplex à Québec, Limoilou (données synthétiques) : calculs PARTAGÉS par les chapitres 26, 27, 32 et 4 - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}cas3.py` — Cas 3 — immeuble de 12 logements à Montréal (données synthétiques) : calculs PARTAGÉS par les chapitres 26-31, - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}cas4.py` — Cas 4 — portefeuille multirésidentiel interrégional (données synthétiques) : calculs PARTAGÉS par les chapitre - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}comparables.py` — Méthode de comparaison : grille d'ajustements, ajustements séquentiels, ventes appariées, réconciliation. - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}cout.py` — Méthode du coût : coût neuf, dépréciation (physique, fonctionnelle, externe), extraction de marché. - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}finance.py` — Mathématiques financières de l'évaluation immobilière (conventions déclarées). - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}geo.py` — Outils géospatiaux génériques du traité (chapitre 38 ; réutilisables aux chapitres 43 et 48). - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}hedonique.py` — Outils économétriques : hédonique semi-log, indices (dummies temporelles, ventes répétées BMN / Case–Shiller), - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}panel.py` — Données de panel et identification causale (chapitre 36) : transformation within, erreurs-types en grappes (CR - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}style.py` — Style graphique du traité (Matplotlib). Palette validée : styles/palette.json. - module `analysis/\allowbreak{}python/\allowbreak{}traite/\allowbreak{}synth.py` — Génération des quatre dossiers de cas SYNTHÉTIQUES du traité. - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch01\_valeur\_prix.py` — Chapitre 1 — Théorie de la valeur et prix immobiliers : tous les chiffres cités dans le texte (DONNÉES SYNTHÉT - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch02\_droits.py` — Chapitre 2 — Droits immobiliers et bases de valeur : calculs de l'exemple intégral sur le cas 3 (12 logements, - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch03\_cycles.py` — Chapitre 3 — Offre, demande et cycles : calculs de l'exemple intégral et des tableaux. - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch04\_marches.py` — Chapitre 4 — Marchés résidentiels québécois : lecture des DONNÉES RÉELLES de data/raw et calculs cités dans le - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch05\_rente.py` — Chapitre 5 — Économie urbaine et rente foncière : calculs de l'exemple intégral et des encadrés. - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch06\_demembrements.py` — Chapitre 6 — Code civil et droit immobilier : effets des modalités et démembrements du droit de propriété sur - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch07\_servitudes\_copro.py` — Chapitre 7 — Cadastre, titres, servitudes et copropriété : exemples chiffrés (DONNÉES SYNTHÉTIQUES, graine 202 - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch08\_zonage.py` — Chapitre 8 — Zonage et urbanisme : DONNÉES SYNTHÉTIQUES et calculs de l'exemple intégral. - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch09\_ratios.py` — Chapitre 9 — Évaluation foncière municipale et contestation (DONNÉES SYNTHÉTIQUES du cas 1, graine 20261031). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch10\_controle\_rapport.py` — Chapitre 10 — contrôle automatique de la présence des douze éléments du contenu minimal d'un rapport écrit - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch10\_matrice\_normes.py` — Chapitre 10 — statistiques descriptives de la matrice des dispositions normatives du domaine C - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch11\_inspection.py` — Chapitre 11 — inspection synthétique du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES) : fiche d'état par - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch12\_mesurage.py` — Chapitre 12 — Mesurage, superficies et plans : calculs du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch13\_sources.py` — Chapitre 13 — Transactions, inscriptions, loyers et coûts : lecture et description des fichiers RÉELS de data/ - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch14\_nettoyage.py` — Chapitre 14 — Nettoyage, géocodage et qualité des données (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch15\_segmentation.py` — Chapitre 15 — Études de marché et segmentation. Calculs de l'exemple intégral et des tableaux du chapitre. - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch16\_selection.py` — Chapitre 16 — sélection des comparables pour le sujet du cas 1 (Gatineau, données synthétiques). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch17\_ajustements.py` — Chapitre 17 — ajustements qualitatifs et quantitatifs des cinq comparables du cas 1 (Gatineau, données synthét - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch18\_hedonique.py` — Chapitre 18 — Modèles hédoniques : exemple intégral sur les 600 ventes du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUE - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch19\_spatial.py` — Chapitre 19 — modèles spatiaux et temporels sur le cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261031). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch20\_reconciliation.py` — Chapitre 20 — réconciliation et incertitude : combinaison des indications du cas 1 (Gatineau, données synthéti - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch21\_cout\_neuf.py` — Chapitre 21 — coût neuf (remplacement) du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES) et indexation IPCB ( - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch22\_metre.py` — Chapitre 22 — métré et quantités du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch23\_structure\_couts.py` — Chapitre 23 — coûts directs et indirects : structure complète du coût neuf du sujet du cas 1 (DONNÉES SYNTHÉTI - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch24\_depreciation.py` — Chapitre 24 — dépréciation et désuétudes du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch25\_terrain.py` — Chapitre 25 — Évaluation du terrain (DONNÉES SYNTHÉTIQUES, graine 20261031). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch26\_etat\_locatif.py` — Chapitre 26 — Baux et loyers : calculs de l'exemple intégral (cas 3, 12 logements à Montréal ; cas 2, triplex - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch27\_revenus.py` — Chapitre 27 — Revenus potentiels, vacance et pertes : calculs du cas 3 (12 logements, Rosemont) et du cas 2 (t - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch28\_depenses.py` — Chapitre 28 — Dépenses, réserves, CAPEX et RNE : calculs du cas 3 (12 logements, Rosemont) et du cas 2 (triple - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch29\_capitalisation.py` — Chapitre 29 — Capitalisation directe : calculs du cas 3 (12 logements, Rosemont ; DONNÉES SYNTHÉTIQUES). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch30\_dcf.py` — Chapitre 30 — Flux actualisés et valeur terminale : exemple intégral du cas 3 (12 logements, Montréal, - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch31\_financement.py` — Chapitre 31 — Financement, levier, RCD et RPV : calculs du chapitre (cas 3, 12 logements, Montréal, - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch32\_plex.py` — Chapitre 32 — Duplex à quintuplex : calculs de l'exemple intégral (cas 2, triplex de Limoilou, données SYNTHÉT - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch33\_six\_logements.py` — Chapitre 33 — Immeubles de six logements et plus : tous les chiffres cités dans manuscript/chapters/ch33.tex - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch34\_tal.py` — Chapitre 34 — TAL, encadrement locatif et scénarios : calculs du chapitre (cas 3, 12 logements, Montréal, - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch35\_indices.py` — Chapitre 35 — Indices immobiliers et ventes répétées : exemple intégral sur le cas 1 (Gatineau, DONNÉES SYNTHÉ - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch36\_panel.py` — Chapitre 36 — Données de panel et identification causale : choc simulé sur les séries de RNE du cas 4 - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch37\_ml.py` — Chapitre 37 — Apprentissage automatique et explicabilité : exemple intégral sur les 600 ventes du cas 1 - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch38\_sig.py` — Chapitre 38 — SIG et risques géospatiaux (cas 1 Gatineau et cas 4 portefeuille, DONNÉES SYNTHÉTIQUES, graine 2 - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch39\_bayes.py` — Chapitre 39 — Modèles bayésiens et intervalles : exemple intégral sur les 600 ventes du cas 1 (Gatineau, DONNÉ - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch40\_montecarlo.py` — Chapitre 40 — Monte-Carlo et stress tests (DONNÉES SYNTHÉTIQUES : cas 3, 12 logements à Montréal ; cas 4, port - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch41\_phmu.py` — Chapitre 41 — Plus haute et meilleure utilisation, terrains et développement : calculs de l'exemple intégral. - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch42\_copro.py` — Chapitre 42 — Copropriétés et conversions : exemples chiffrés (DONNÉES SYNTHÉTIQUES, graine 20261031). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch43\_risques.py` — Chapitre 43 — Risques environnementaux et sinistres : DONNÉES SYNTHÉTIQUES et calculs de l'exemple intégral. - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch44\_renovation.py` — Chapitre 44 — rénovation et efficacité énergétique : analyse coût-bénéfice de deux mesures sur le sujet du cas - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch45\_dossier.py` — Chapitre 45 — Cas 1 : maison unifamiliale à Gatineau (DONNÉES SYNTHÉTIQUES, propriété fictive) — dossier compl - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch46\_dossier.py` — Chapitre 46 — Cas 2 : triplex à Québec (Limoilou), dossier complet (DONNÉES SYNTHÉTIQUES, graine 20261031). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch47\_dossier.py` — Chapitre 47 — Cas 3 : immeuble de 12 logements à Montréal (DONNÉES SYNTHÉTIQUES, immeuble fictif). - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}ch48\_portefeuille.py` — Chapitre 48 — Cas 4 : portefeuille multirésidentiel interrégional (DONNÉES SYNTHÉTIQUES, 48 immeubles fictifs, - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}generate\_all.py` — Régénère tous les jeux synthétiques (graine fixée). Usage : python3 -m analysis.python.cases.generate\_all (de - calcul `analysis/\allowbreak{}python/\allowbreak{}cases/\allowbreak{}make\_spreadsheets.py` — Classeurs Excel du traité (openpyxl, formules vivantes) : spreadsheets/ - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch01\_figures.py` — Figures du chapitre 1 (DONNÉES SYNTHÉTIQUES du cas 1, graine 20261031 ; simulations étiquetées). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch02\_decomposition.py` — Figure ch02 — cas 3 (DONNÉES SYNTHÉTIQUES) : (a) revenu net d'exploitation projeté avec les baux en place (dro - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch02\_ecart\_logements.py` — Figure ch02 — cas 3 (DONNÉES SYNTHÉTIQUES) : (a) ratio loyer contractuel / loyer de marché selon l'ancienneté - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch03\_cout\_usage.py` — Figure ch03 — Coût d'usage du logement au Québec, 2001-2026, données RÉELLES (Banque du Canada, Valet : V80691 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch03\_cycle.py` — Figures ch03 — Simulation d'un cycle stock-flux (SYNTHÉTIQUE, analysis/python/cases/ch03\_cycles.py, paramètre - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch03\_mises\_chantier.py` — Figure ch03 — Mises en chantier au Québec, données RÉELLES : Statistique Canada (SCHL), tableau 34-10-0135-01, - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch03\_quadrants.py` — Figure ch03 — Modèle des quatre quadrants (DiPasquale–Wheaton) tracé à partir des paramètres pédagogiques du m - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch04\_carte.py` — Figure ch04 — carte schématique des six RMR du Québec : position des centres (coordonnées de la Base de donnée - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch04\_ipln.py` — Figure ch04 — Indice des prix des logements neufs (IPLN), total maison et terrain, déc. 2016 = 100, janvier 20 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch04\_mutations.py` — Figure ch04 — taux effectif des droits sur les mutations immobilières (droit / base d'imposition) selon la bas - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch04\_parc.py` — Figure ch04 — structure du parc de logements : ménages privés selon le type de construction, Québec et Canada - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch04\_schl.py` — Figure ch04 — marché locatif par RMR : taux d'inoccupation (octobre 2024 et 2025) et loyer moyen des logements - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch04\_taux.py` — Figure ch04 — taux d'intérêt 2000-2026 : taux hypothécaire conventionnel 5 ans affiché (V80691335, hebdomadair - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch05\_capitalisation.py` — Figure ch05 — sensibilité de la capitalisation d'un écart de taxe foncière : perte de valeur (en \% de la vale - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch05\_cas1\_distance.py` — Figure ch05 — prix par mètre carré habitable et distance au centre, cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES, gra - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch05\_gradient.py` — Figure ch05 — gradients du modèle monocentrique simulé (PARAMÈTRES PÉDAGOGIQUES DÉCLARÉS dans ch05\_rente.PARA - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch05\_rmr.py` — Figure ch05 — valeur par logement par RMR du portefeuille du cas 4 (DONNÉES SYNTHÉTIQUES, graine 20261031) et - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch05\_surface.py` — Figure ch05 — surface de rente bicentrique simulée (courbes de niveau) : enveloppe de deux surfaces d'enchère - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch06\_emphyteose.py` — Figure ch06 — emphytéose sur un immeuble locatif dont le RNE est celui du cas 3 (DONNÉES SYNTHÉTIQUES, hypothè - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch06\_usufruit.py` — Figure ch06 — usufruit viager sur la maison du cas 1 (DONNÉES SYNTHÉTIQUES, table de mortalité synthétique) : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch07\_charges.py` — Figure ch07 — répartition des charges communes annuelles entre les huit fractions (DONNÉES SYNTHÉTIQUES). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch07\_fonds.py` — Figure ch07 — trajectoire du fonds de prévoyance sur 25 ans selon trois cotisations (DONNÉES SYNTHÉTIQUES). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch07\_paires.py` — Figure ch07 — ventes appariées : prix sans et avec servitude de passage pour 12 paires (DONNÉES SYNTHÉTIQUES, - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch07\_sensibilite.py` — Figure ch07 — sensibilité de la cotisation de seuil A* à l'inflation des coûts et au rendement du fonds (DONNÉ - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch08\_carte\_zones.py` — Figure ch08 — carte synthétique des zones de « Val-Fictif » (DONNÉES SYNTHÉTIQUES) : 400 lots, cinq zones, - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch08\_option\_sensibilite.py` — Figure ch08 — sensibilité des effets de valeur du zonage (DONNÉES SYNTHÉTIQUES / hypothèses déclarées) : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch08\_rezonage\_paires.py` — Figure ch08 — effet d'un rezonage mesuré par ventes appariées et par doubles différences (DONNÉES SYNTHÉTIQUES - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch09\_ratios.py` — Figures du chapitre 9 (DONNÉES SYNTHÉTIQUES du cas 1, graine 20261031) : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch10\_figures.py` — Chapitre 10 — figures Matplotlib : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch11\_fiche\_etat.py` — Figures ch11 — (1) fiche d'état du sujet du cas 1 : fraction de vie utile consommée a\_eff/L par composante, c - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch11\_frise\_pathologies.py` — Figure ch11 — frise INDICATIVE des pathologies et matériaux à risque selon la période de construction (Québec) - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch11\_matrice\_age\_effectif.py` — Figure ch11 — matrice état × âge chronologique → âge effectif (convention déclarée de l'ouvrage, chapitre 11). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch12\_figures.py` — Figures du chapitre 12 (DONNÉES SYNTHÉTIQUES, cas 1, graine 20261031) : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch13\_biais\_datation.py` — Figure ch13 — biais relatif de l'ajustement de conditions du marché lorsqu'une vente est datée à l'acte notari - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch13\_indices.py` — Figure ch13 — trois indices souvent confondus, données RÉELLES de data/raw, rebasés T1 2017 = 100 : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch13\_rfu.py` — Figure ch13 — composition de l'évaluation imposable uniformisée 2026 (MAMH, richesse foncière uniformisée, CC - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch13\_schl.py` — Figure ch13 — SCHL, Enquête sur les logements locatifs d'octobre 2025 (données RÉELLES, fichier rmr-quebec-202 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch14\_figures.py` — Chapitre 14 — figures (données SYNTHÉTIQUES, graine 20261031). Idempotent. - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch15\_figures.py` — Figures du chapitre 15 — Études de marché et segmentation. Produit dans assets/figures/ch15/ : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch17\_figures.py` — Chapitre 17 — figures : cascade d'ajustements (G0404), dispersion des paires, prix bruts vs ajustés, tornade d - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch18\_figures.py` — Figures du chapitre 18 — Modèles hédoniques (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261031). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch19\_figures.py` — Figures du chapitre 19 — modèles spatiaux et temporels (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261031 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch20\_figures.py` — Chapitre 20 — figures : densités bootstrap et énumération exhaustive ; résidus des candidats et élargissement - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch21\_decomposition.py` — Figure ch21 — décomposition du coût neuf du sujet du cas 1 par corps de métier (DONNÉES SYNTHÉTIQUES, graine 2 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch21\_ipcb.py` — Figure ch21 — IPCB Montréal (Statistique Canada, tableau 18-10-0289-01, base 2023 = 100), données RÉELLES lues - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch21\_sensibilite.py` — Figure ch21 — sensibilité du coût neuf du sujet du cas 1 (DONNÉES SYNTHÉTIQUES) : (a) grille taux d'indirects - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch22\_ecarts.py` — Figure ch22 — métré de contrôle du sujet du cas 1 : écart relatif entre la quantité recalculée depuis le plan - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch22\_repartition.py` — Figure ch22 — répartition du devis du sujet du cas 1 par corps de métier et par type d'unité de mesure - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch23\_ipcb\_divisions.py` — Figure ch23 — IPCB Montréal, maison individuelle, par division de travaux (Statistique Canada 18-10-0289-01), - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch23\_ipcb\_types.py` — Figure ch23 — IPCB (Statistique Canada 18-10-0289-01, 2023 = 100), données RÉELLES lues dans data/raw : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch23\_sensibilite.py` — Figure ch23 — sensibilité (DONNÉES SYNTHÉTIQUES, cas 1 ; taux documenté Banque du Canada V80691335) : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch23\_structure.py` — Figure ch23 — cascade de formation du coût neuf du sujet du cas 1 (DONNÉES SYNTHÉTIQUES, graine 20261031) : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch24\_composantes.py` — Figure ch24 — composantes de courte durée du sujet du cas 1 : coût neuf et dépréciation ventilée par composant - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch24\_courbes.py` — Figure ch24 — courbes de dépréciation du bâtiment en fonction de l'âge (DONNÉES SYNTHÉTIQUES, cas 1, graine 20 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch24\_decomposition.py` — Figure ch24 — décomposition de la valeur par le coût du sujet du cas 1 (DONNÉES SYNTHÉTIQUES, graine 20261031) - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch24\_sensibilite.py` — Figure ch24 — sensibilité (DONNÉES SYNTHÉTIQUES, cas 1, graine 20261031) : (a) taux de dépréciation âge-vie mo - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch25\_figures.py` — Figures du chapitre 25 — Évaluation du terrain (DONNÉES SYNTHÉTIQUES, graine 20261031). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch26\_figures.py` — Chapitre 26 — figures (4) : loyer contractuel vs loyer de marché par logement (cas 3), distribution de l'ancie - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch27\_figures.py` — Chapitre 27 — figures (4) : - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch28\_figures.py` — Chapitre 28 — figures (5) : cascade RBP → RNE (cas 3) ; structure des dépenses en \% du RBE (cas 3 vs cas 2) ; - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch29\_figures.py` — Chapitre 29 — figures (5) : taux extraits (histogramme), taux vs état/taille (nuage), surface V(RNE, R) (carte - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch30\_flux.py` — Ch. 30, figure « flux » : RNE, CAPEX et flux net avant dette (barres) du cas 3 (DONNÉES SYNTHÉTIQUES), puis va - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch30\_gdc.py` — Ch. 30, figure « gdc » (DONNÉES RÉELLES, Banque du Canada, API Valet, téléchargées le 2026-10-31) : rendements - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch30\_loyers.py` — Ch. 30, figure « loyers » : trajectoire du revenu brut potentiel contractuel (indexé au taux TAL + relocation - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch30\_surface.py` — Ch. 30, figure « surface » : valeur DCF du cas 3 (DONNÉES SYNTHÉTIQUES) selon le taux d'actualisation r (ligne - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch30\_tornade.py` — Ch. 30, figure « tornade » : variation de la valeur DCF du cas 3 (DONNÉES SYNTHÉTIQUES) pour un choc bas/haut - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch31\_levier.py` — Ch. 31, figure « levier » (DONNÉES SYNTHÉTIQUES, cas 3) : TRI des fonds propres sur dix ans et rendement coura - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch31\_service\_dette.py` — Ch. 31, figure « service-dette » (DONNÉES SYNTHÉTIQUES, cas 3) : service de la dette annuel du prêt de 1 475 9 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch31\_solde.py` — Ch. 31, figure « solde » (DONNÉES SYNTHÉTIQUES, cas 3) : trajectoire du solde du prêt de 1 475 959 \$ à 4,12 \ - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch31\_taux\_bdc.py` — Ch. 31, figure « taux-bdc » (DONNÉES RÉELLES, Banque du Canada, API Valet, téléchargées le 2026-10-31) : taux - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch32\_figures.py` — Figures du chapitre 32 — Duplex à quintuplex (données SYNTHÉTIQUES du cas 2, sauf la figure des médianes APCIQ - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch33\_figures.py` — Chapitre 33 — figures (4) : (1) SCHL, île de Montréal, loyers et inoccupation par taille d'immeuble et par ann - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch34\_calcul\_tal.py` — Ch. 34, figure « exemple de calcul TAL » : composantes de l'augmentation mensuelle du logement 103 du cas 3 (D - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch34\_ipc\_base.py` — Ch. 34, figure « IPC et pourcentage de base » (DONNÉES RÉELLES : Statistique Canada, tableau 18-10-0004-01, IP - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch34\_rotation.py` — Ch. 34, figure « rotation espérée » : (gauche) rapport espéré loyer contractuel / loyer de marché d'un logemen - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch34\_trajectoires.py` — Ch. 34, figure « trajectoires RBP » : revenu brut potentiel contractuel du cas 3 (DONNÉES SYNTHÉTIQUES) selon - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch34\_valeur\_scenarios.py` — Ch. 34, figure « valeur par scénario » : valeur DCF du cas 3 (DONNÉES SYNTHÉTIQUES) pour la grille rotation (5 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch35\_figures.py` — Figures du chapitre 35 — Indices immobiliers et ventes répétées. - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch36\_figures.py` — Figures du chapitre 36 — données de panel et identification causale (cas 4, DONNÉES SYNTHÉTIQUES, graine 20261 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch37\_figures.py` — Figures du chapitre 37 — Apprentissage automatique et explicabilité (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, gr - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch38\_figures.py` — Figures du chapitre 38 — SIG et risques géospatiaux (cas 1 Gatineau et cas 4 portefeuille, DONNÉES SYNTHÉTIQUE - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch39\_figures.py` — Figures du chapitre 39 — Modèles bayésiens et intervalles (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261 - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch40\_figures.py` — Chapitre 40 — figures (DONNÉES SYNTHÉTIQUES : cas 3 et cas 4, graine 20261031). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch41\_figures.py` — Figures du chapitre 41 (DONNÉES SYNTHÉTIQUES du cas 1 ; zonage FICTIF ; hypothèses déclarées dans ch41\_phmu.p - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch42\_bloc\_piece.py` — Figure ch42 — valeur de conversion (somme des fractions nette des coûts, des frais, du portage et des délais) - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch42\_cotisation\_speciale.py` — Figure ch42 — charges annuelles normalisées des huit fractions (ch. 7) et part de chacune dans une cotisation - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch42\_grille.py` — Figure ch42 — grille de comparaison de la fraction F4 : prix observé, prix ajusté et décomposition des ajustem - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch42\_medianes.py` — Figure ch42 — prix médians Centris des copropriétés et des unifamiliales par territoire, T3 2026 (DONNÉES RÉEL - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch43\_carte\_cas4.py` — Figure ch43 — carte schématique des 48 immeubles du cas 4 (DONNÉES SYNTHÉTIQUES, coordonnées fictives autour d - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch43\_carte\_riverain.py` — Figure ch43 — municipalité fictive de Rivière-Fictive (DONNÉES SYNTHÉTIQUES) : 625 lots, classes d'exposition - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch43\_did\_cas4.py` — Figure ch43 — doubles différences sur les séries de RNE du cas 4 avec choc d'inondation injecté en 2019 (DONNÉ - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch43\_effets\_methodes.py` — Figure ch43 — décote d'une zone inondable mesurée par quatre méthodes sur les ventes de Rivière-Fictive (DONNÉ - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch43\_placebos.py` — Figure ch43 — inférence de randomisation exacte pour le DiD du cas 4 (DONNÉES SYNTHÉTIQUES) : distribution des - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch44\_capitalisation.py` — Figure ch44 — (a) quatre lectures de ce que la thermopompe « vaut » pour le sujet du cas 1 : coût installé, co - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch44\_flux.py` — Figure ch44 — flux annuels des deux mesures énergétiques du sujet du cas 1 (DONNÉES SYNTHÉTIQUES, hypothèses d - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch44\_heatmap\_van.py` — Figure ch44 — VAN des deux mesures selon le taux d'actualisation et la croissance du prix de l'électricité - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch44\_prime\_verte.py` — Figure ch44 — la « prime verte » dans la littérature : fourchettes publiées par étude (valeurs vérifiées, voir - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch45\_figures.py` — Chapitre 45 — figures du dossier (cas 1, DONNÉES SYNTHÉTIQUES) : carte des comparables, cascade des ajustement - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch46\_figures.py` — Chapitre 46 — figures du dossier « triplex à Québec » (DONNÉES SYNTHÉTIQUES, graine 20261031). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch47\_dossier\_figures.py` — Chapitre 47 — figures du dossier « 12 logements à Montréal » (DONNÉES SYNTHÉTIQUES, graine 20261031). - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}ch48\_portefeuille\_figures.py` — Chapitre 48 — figures du dossier « portefeuille multirésidentiel interrégional » (DONNÉES SYNTHÉTIQUES, graine - figure `analysis/\allowbreak{}python/\allowbreak{}figures/\allowbreak{}run\_all.py` — Exécute tous les scripts de figures (analysis/python/figures/chNN\_*.py) et les scripts R (analysis/r/chNN\_*. - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}conftest.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_cas1.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_cas2\_cas4.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_cas3.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch01.py` — Chapitre 1 — vérification des identités et des chiffres cités dans le texte et les solutions (données synthéti - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch02.py` — Chapitre 2 — Droits immobiliers et bases de valeur : identités (additivité, Gordon, annuité) et valeurs citées - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch03.py` — Tests du chapitre 3 — Offre, demande et cycles. - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch04.py` — Tests du chapitre 4 — marchés résidentiels québécois : lecture des données réelles (Recensement 2021, 17-10-01 - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch05.py` — Tests du chapitre 5 — modèle monocentrique simulé, gradient prix/distance du cas 1, décomposition du cas 4, - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch06.py` — Tests du chapitre 6 — démembrements et modalités du droit de propriété (DONNÉES SYNTHÉTIQUES, hypothèses décla - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch07.py` — Tests du chapitre 7 — servitude par ventes appariées, quotes-parts et charges de copropriété, fonds de prévoya - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch08.py` — Tests du chapitre 8 — zonage et urbanisme (DONNÉES SYNTHÉTIQUES, graine 20261031). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch09.py` — Tests du chapitre 9 — étude de ratios (COD, PRD, PRB, proportion médiane, facteur comparatif), dossiers de con - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch10.py` — Chapitre 10 — vérification des chiffres cités dans le texte, les tableaux et les solutions. - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch11.py` — Tests du chapitre 11 — inspection synthétique du sujet du cas 1, convention d'âge effectif, dépréciation venti - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch12.py` — Tests du chapitre 12 — mesurage, superficies, propagation d'erreur (cas 1, données synthétiques). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch13.py` — Tests du chapitre 13 — lecture des fichiers RÉELS de data/raw (StatCan 18-10-0289-01, 18-10-0205-01, 18-10-000 - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch14.py` — Chapitre 14 — Nettoyage, géocodage et qualité des données : reproductibilité du jeu brut, identités des diagno - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch15.py` — Chapitre 15 — Études de marché et segmentation : vérification des identités et des chiffres cités dans le text - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch16.py` — Chapitre 16 — vérification des chiffres cités dans le texte et les solutions. - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch17.py` — Chapitre 17 — vérification des identités et des chiffres cités dans le texte et les solutions (tolérances décl - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch18.py` — Chapitre 18 — Modèles hédoniques : vérification des chiffres cités dans le texte, les tableaux et les solution - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch19.py` — Chapitre 19 — tests des fonctions spatiales ajoutées à traite.hedonique et des chiffres cités dans le texte et - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch20.py` — Chapitre 20 — réconciliation et incertitude : identités, chiffres cités dans le texte et dans les solutions (t - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch21.py` — Tests du chapitre 21 — coût neuf du sujet du cas 1, IPCB Montréal, sensibilité et exercices. - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch22.py` — Tests du chapitre 22 — métré et quantités du sujet du cas 1. - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch23.py` — Tests du chapitre 23 — coûts directs et indirects : structure du devis du cas 1, financement intérimaire (trai - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch24.py` — Tests du chapitre 24 — dépréciation et désuétudes du sujet du cas 1, extraction de marché, profils et exercice - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch25.py` — Tests du chapitre 25 — Évaluation du terrain : jeu synthétique de terrains (graine 20261031), modèle hédonique - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch26.py` — Tests du chapitre 26 — baux et loyers (cas 3 et cas 2, données synthétiques). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch27.py` — Tests du chapitre 27 — revenus potentiels, vacance et pertes (cas 3 et cas 2, données synthétiques ; tableaux - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch28.py` — Tests du chapitre 28 — dépenses, réserves, CAPEX et RNE (cas 3 et cas 2, données synthétiques). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch29.py` — Tests du chapitre 29 — capitalisation directe (cas 3, données synthétiques). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch30.py` — Tests du chapitre 30 — flux actualisés et valeur terminale (cas 3, données synthétiques). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch31.py` — Tests du chapitre 31 — financement, levier, RCD et RPV (cas 3, données synthétiques ; repères BdC réels). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch32.py` — Tests du chapitre 32 — Duplex à quintuplex : identités, cohérence avec traite.cas2 (partagé avec les ch. 26, 2 - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch33.py` — Tests du chapitre 33 (immeubles de six logements et plus) : identités, cohérence avec traite.cas3/cas4 et le c - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch34.py` — Tests du chapitre 34 — TAL, encadrement locatif et scénarios (cas 3, données synthétiques ; IPC Québec réel). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch35.py` — Chapitre 35 — Indices immobiliers et ventes répétées : identités et valeurs citées dans le texte, les tableaux - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch36.py` — Chapitre 36 — tests des fonctions de traite.panel (récupération d'effets connus sur données simulées) et des c - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch37.py` — Chapitre 37 — Apprentissage automatique et explicabilité : reproductibilité et bornes de performance des chiff - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch38.py` — Chapitre 38 — tests des fonctions de traite.geo et des chiffres cités dans manuscript/chapters/ch38.tex et sol - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch39.py` — Chapitre 39 — Modèles bayésiens et intervalles : vérification des identités, des diagnostics et des chiffres c - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch40.py` — Tests du chapitre 40 (Monte-Carlo et stress tests — données synthétiques, cas 3 et cas 4) : égalité stricte av - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch41.py` — Tests du chapitre 41 — PHMU, terrains et développement (DONNÉES SYNTHÉTIQUES du cas 1 ; zonage FICTIF ; hypoth - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch42.py` — Tests du chapitre 42 — fraction de copropriété (grille, réconciliation), cotisation spéciale, copropriété loca - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch43.py` — Tests du chapitre 43 — risques environnementaux et sinistres (DONNÉES SYNTHÉTIQUES, graine 20261031). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch44.py` — Tests du chapitre 44 — rénovation et efficacité énergétique (sujet du cas 1, DONNÉES SYNTHÉTIQUES). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch45.py` — Tests du chapitre 45 (cas 1, maison unifamiliale à Gatineau — DONNÉES SYNTHÉTIQUES) : le dossier ne doit repre - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch46.py` — Tests du chapitre 46 — Cas 2 : triplex à Québec (dossier complet, données SYNTHÉTIQUES). - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch47.py` — Tests du chapitre 47 (cas 3, 12 logements à Montréal — données synthétiques) : identités, valeurs citées dans - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_ch48.py` — Tests du chapitre 48 (cas 4, portefeuille interrégional — données synthétiques) : identités du sommaire, cohér - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_comparables.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_cout.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_finance.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_hedonique.py` — - test `analysis/\allowbreak{}python/\allowbreak{}tests/\allowbreak{}test\_synth.py` — - outil `tools/\allowbreak{}check\_manuscript.py` — Vérifications du manuscrit : stubs restants, figures manquantes, scripts des figures, - outil `tools/\allowbreak{}inventaire.py` — Inventaire des scripts, tests, données, figures et classeurs → manuscript/appendices/\_inventaire.tex (longtab - outil `tools/\allowbreak{}make\_labels.py` — Écrit un fichier d'étiquettes (newlabel) pour tous les chapitres et annexes, afin que cref\{ch:NN\} / cref\{ap - outil `tools/\allowbreak{}make\_release.py` — Assemble release/ : PDF, sources LaTeX, données, figures, scripts, classeurs, corrigés, rapport de validation. - outil `tools/\allowbreak{}merge\_sources.py` — Fusionne sources/registry-*.csv → sources/registry.csv, sources/normes-*.csv → sources/normes-matrice.csv, - outil `tools/\allowbreak{}compile\_chapter.sh` — !/usr/bin/env bash - outil `tools/\allowbreak{}valider\_chapitre.sh` — !/usr/bin/env bash