\begin{longtable}{lp{48mm}p{62mm}} \caption{Scripts du dépôt (modules, calculs, figures, tests, outils)}\label{tab:app:scripts}\\ \toprule Type & Fichier & Rôle \\ \midrule \endfirsthead \toprule Type & Fichier & Rôle \\ \midrule \endhead \bottomrule \endfoot module & \texttt{analysis/python/traite/cas1.py} & Cas 1 — maison unifamiliale à Gatineau (données synthétiques) : calculs PARTAGÉS par les chapitres 9, 14, 16-2 \\ module & \texttt{analysis/python/traite/cas2.py} & Cas 2 — triplex à Québec, Limoilou (données synthétiques) : calculs PARTAGÉS par les chapitres 26, 27, 32 et 4 \\ module & \texttt{analysis/python/traite/cas3.py} & Cas 3 — immeuble de 12 logements à Montréal (données synthétiques) : calculs PARTAGÉS par les chapitres 26-31, \\ module & \texttt{analysis/python/traite/cas4.py} & Cas 4 — portefeuille multirésidentiel interrégional (données synthétiques) : calculs PARTAGÉS par les chapitre \\ module & \texttt{analysis/python/traite/comparables.py} & Méthode de comparaison : grille d'ajustements, ajustements séquentiels, ventes appariées, réconciliation. \\ module & \texttt{analysis/python/traite/cout.py} & Méthode du coût : coût neuf, dépréciation (physique, fonctionnelle, externe), extraction de marché. \\ module & \texttt{analysis/python/traite/finance.py} & Mathématiques financières de l'évaluation immobilière (conventions déclarées). \\ module & \texttt{analysis/python/traite/geo.py} & Outils géospatiaux génériques du traité (chapitre 38 ; réutilisables aux chapitres 43 et 48). \\ module & \texttt{analysis/python/traite/hedonique.py} & Outils économétriques : hédonique semi-log, indices (dummies temporelles, ventes répétées BMN / Case–Shiller), \\ module & \texttt{analysis/python/traite/panel.py} & Données de panel et identification causale (chapitre 36) : transformation within, erreurs-types en grappes (CR \\ module & \texttt{analysis/python/traite/style.py} & Style graphique du traité (Matplotlib). Palette validée : styles/palette.json. \\ module & \texttt{analysis/python/traite/synth.py} & Génération des quatre dossiers de cas SYNTHÉTIQUES du traité. \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch02\_droits.py} & Chapitre 2 — Droits immobiliers et bases de valeur : calculs de l'exemple intégral sur le cas 3 (12 logements, \\ calcul & \texttt{analysis/python/cases/ch03\_cycles.py} & Chapitre 3 — Offre, demande et cycles : calculs de l'exemple intégral et des tableaux. \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch05\_rente.py} & Chapitre 5 — Économie urbaine et rente foncière : calculs de l'exemple intégral et des encadrés. \\ calcul & \texttt{analysis/python/cases/ch06\_demembrements.py} & Chapitre 6 — Code civil et droit immobilier : effets des modalités et démembrements du droit de propriété sur \\ calcul & \texttt{analysis/python/cases/ch07\_servitudes\_copro.py} & Chapitre 7 — Cadastre, titres, servitudes et copropriété : exemples chiffrés (DONNÉES SYNTHÉTIQUES, graine 202 \\ calcul & \texttt{analysis/python/cases/ch08\_zonage.py} & Chapitre 8 — Zonage et urbanisme : DONNÉES SYNTHÉTIQUES et calculs de l'exemple intégral. \\ calcul & \texttt{analysis/python/cases/ch09\_ratios.py} & Chapitre 9 — Évaluation foncière municipale et contestation (DONNÉES SYNTHÉTIQUES du cas 1, graine 20261031). \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch10\_matrice\_normes.py} & Chapitre 10 — statistiques descriptives de la matrice des dispositions normatives du domaine C \\ calcul & \texttt{analysis/python/cases/ch11\_inspection.py} & Chapitre 11 — inspection synthétique du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES) : fiche d'état par \\ calcul & \texttt{analysis/python/cases/ch12\_mesurage.py} & Chapitre 12 — Mesurage, superficies et plans : calculs du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES). \\ calcul & \texttt{analysis/python/cases/ch13\_sources.py} & Chapitre 13 — Transactions, inscriptions, loyers et coûts : lecture et description des fichiers RÉELS de data/ \\ calcul & \texttt{analysis/python/cases/ch14\_nettoyage.py} & Chapitre 14 — Nettoyage, géocodage et qualité des données (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES). \\ calcul & \texttt{analysis/python/cases/ch15\_segmentation.py} & Chapitre 15 — Études de marché et segmentation. Calculs de l'exemple intégral et des tableaux du chapitre. \\ calcul & \texttt{analysis/python/cases/ch16\_selection.py} & Chapitre 16 — sélection des comparables pour le sujet du cas 1 (Gatineau, données synthétiques). \\ calcul & \texttt{analysis/python/cases/ch17\_ajustements.py} & Chapitre 17 — ajustements qualitatifs et quantitatifs des cinq comparables du cas 1 (Gatineau, données synthét \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch19\_spatial.py} & Chapitre 19 — modèles spatiaux et temporels sur le cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261031). \\ calcul & \texttt{analysis/python/cases/ch20\_reconciliation.py} & Chapitre 20 — réconciliation et incertitude : combinaison des indications du cas 1 (Gatineau, données synthéti \\ calcul & \texttt{analysis/python/cases/ch21\_cout\_neuf.py} & Chapitre 21 — coût neuf (remplacement) du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES) et indexation IPCB ( \\ calcul & \texttt{analysis/python/cases/ch22\_metre.py} & Chapitre 22 — métré et quantités du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES). \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch24\_depreciation.py} & Chapitre 24 — dépréciation et désuétudes du sujet du cas 1 (Gatineau, DONNÉES SYNTHÉTIQUES). \\ calcul & \texttt{analysis/python/cases/ch25\_terrain.py} & Chapitre 25 — Évaluation du terrain (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch27\_revenus.py} & Chapitre 27 — Revenus potentiels, vacance et pertes : calculs du cas 3 (12 logements, Rosemont) et du cas 2 (t \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch29\_capitalisation.py} & Chapitre 29 — Capitalisation directe : calculs du cas 3 (12 logements, Rosemont ; DONNÉES SYNTHÉTIQUES). \\ calcul & \texttt{analysis/python/cases/ch30\_dcf.py} & Chapitre 30 — Flux actualisés et valeur terminale : exemple intégral du cas 3 (12 logements, Montréal, \\ calcul & \texttt{analysis/python/cases/ch31\_financement.py} & Chapitre 31 — Financement, levier, RCD et RPV : calculs du chapitre (cas 3, 12 logements, Montréal, \\ calcul & \texttt{analysis/python/cases/ch32\_plex.py} & Chapitre 32 — Duplex à quintuplex : calculs de l'exemple intégral (cas 2, triplex de Limoilou, données SYNTHÉT \\ calcul & \texttt{analysis/python/cases/ch33\_six\_logements.py} & Chapitre 33 — Immeubles de six logements et plus : tous les chiffres cités dans manuscript/chapters/ch33.tex \\ calcul & \texttt{analysis/python/cases/ch34\_tal.py} & Chapitre 34 — TAL, encadrement locatif et scénarios : calculs du chapitre (cas 3, 12 logements, Montréal, \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch36\_panel.py} & Chapitre 36 — Données de panel et identification causale : choc simulé sur les séries de RNE du cas 4 \\ calcul & \texttt{analysis/python/cases/ch37\_ml.py} & Chapitre 37 — Apprentissage automatique et explicabilité : exemple intégral sur les 600 ventes du cas 1 \\ calcul & \texttt{analysis/python/cases/ch38\_sig.py} & Chapitre 38 — SIG et risques géospatiaux (cas 1 Gatineau et cas 4 portefeuille, DONNÉES SYNTHÉTIQUES, graine 2 \\ calcul & \texttt{analysis/python/cases/ch39\_bayes.py} & Chapitre 39 — Modèles bayésiens et intervalles : exemple intégral sur les 600 ventes du cas 1 (Gatineau, DONNÉ \\ calcul & \texttt{analysis/python/cases/ch40\_montecarlo.py} & Chapitre 40 — Monte-Carlo et stress tests (DONNÉES SYNTHÉTIQUES : cas 3, 12 logements à Montréal ; cas 4, port \\ calcul & \texttt{analysis/python/cases/ch41\_phmu.py} & Chapitre 41 — Plus haute et meilleure utilisation, terrains et développement : calculs de l'exemple intégral. \\ calcul & \texttt{analysis/python/cases/ch42\_copro.py} & Chapitre 42 — Copropriétés et conversions : exemples chiffrés (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ calcul & \texttt{analysis/python/cases/ch43\_risques.py} & Chapitre 43 — Risques environnementaux et sinistres : DONNÉES SYNTHÉTIQUES et calculs de l'exemple intégral. \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/ch45\_dossier.py} & Chapitre 45 — Cas 1 : maison unifamiliale à Gatineau (DONNÉES SYNTHÉTIQUES, propriété fictive) — dossier compl \\ calcul & \texttt{analysis/python/cases/ch46\_dossier.py} & Chapitre 46 — Cas 2 : triplex à Québec (Limoilou), dossier complet (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ calcul & \texttt{analysis/python/cases/ch47\_dossier.py} & Chapitre 47 — Cas 3 : immeuble de 12 logements à Montréal (DONNÉES SYNTHÉTIQUES, immeuble fictif). \\ calcul & \texttt{analysis/python/cases/ch48\_portefeuille.py} & Chapitre 48 — Cas 4 : portefeuille multirésidentiel interrégional (DONNÉES SYNTHÉTIQUES, 48 immeubles fictifs, \\ calcul & \texttt{analysis/python/cases/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 & \texttt{analysis/python/cases/make\_spreadsheets.py} & Classeurs Excel du traité (openpyxl, formules vivantes) : spreadsheets/ \\ figure & \texttt{analysis/python/figures/ch01\_figures.py} & Figures du chapitre 1 (DONNÉES SYNTHÉTIQUES du cas 1, graine 20261031 ; simulations étiquetées). \\ figure & \texttt{analysis/python/figures/ch02\_decomposition.py} & Figure ch02 — cas 3 (DONNÉES SYNTHÉTIQUES) : (a) revenu net d'exploitation projeté avec les baux en place (dro \\ figure & \texttt{analysis/python/figures/ch02\_ecart\_logements.py} & Figure ch02 — cas 3 (DONNÉES SYNTHÉTIQUES) : (a) ratio loyer contractuel / loyer de marché selon l'ancienneté \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch03\_cycle.py} & Figures ch03 — Simulation d'un cycle stock-flux (SYNTHÉTIQUE, analysis/python/cases/ch03\_cycles.py, paramètre \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch03\_quadrants.py} & Figure ch03 — Modèle des quatre quadrants (DiPasquale–Wheaton) tracé à partir des paramètres pédagogiques du m \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch04\_ipln.py} & Figure ch04 — Indice des prix des logements neufs (IPLN), total maison et terrain, déc. 2016 = 100, janvier 20 \\ figure & \texttt{analysis/python/figures/ch04\_mutations.py} & Figure ch04 — taux effectif des droits sur les mutations immobilières (droit / base d'imposition) selon la bas \\ figure & \texttt{analysis/python/figures/ch04\_parc.py} & Figure ch04 — structure du parc de logements : ménages privés selon le type de construction, Québec et Canada \\ figure & \texttt{analysis/python/figures/ch04\_schl.py} & Figure ch04 — marché locatif par RMR : taux d'inoccupation (octobre 2024 et 2025) et loyer moyen des logements \\ figure & \texttt{analysis/python/figures/ch04\_taux.py} & Figure ch04 — taux d'intérêt 2000-2026 : taux hypothécaire conventionnel 5 ans affiché (V80691335, hebdomadair \\ figure & \texttt{analysis/python/figures/ch05\_capitalisation.py} & Figure ch05 — sensibilité de la capitalisation d'un écart de taxe foncière : perte de valeur (en \% de la vale \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch05\_gradient.py} & Figure ch05 — gradients du modèle monocentrique simulé (PARAMÈTRES PÉDAGOGIQUES DÉCLARÉS dans ch05\_rente.PARA \\ figure & \texttt{analysis/python/figures/ch05\_rmr.py} & Figure ch05 — valeur par logement par RMR du portefeuille du cas 4 (DONNÉES SYNTHÉTIQUES, graine 20261031) et \\ figure & \texttt{analysis/python/figures/ch05\_surface.py} & Figure ch05 — surface de rente bicentrique simulée (courbes de niveau) : enveloppe de deux surfaces d'enchère \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch06\_usufruit.py} & Figure ch06 — usufruit viager sur la maison du cas 1 (DONNÉES SYNTHÉTIQUES, table de mortalité synthétique) : \\ figure & \texttt{analysis/python/figures/ch07\_charges.py} & Figure ch07 — répartition des charges communes annuelles entre les huit fractions (DONNÉES SYNTHÉTIQUES). \\ figure & \texttt{analysis/python/figures/ch07\_fonds.py} & Figure ch07 — trajectoire du fonds de prévoyance sur 25 ans selon trois cotisations (DONNÉES SYNTHÉTIQUES). \\ figure & \texttt{analysis/python/figures/ch07\_paires.py} & Figure ch07 — ventes appariées : prix sans et avec servitude de passage pour 12 paires (DONNÉES SYNTHÉTIQUES, \\ figure & \texttt{analysis/python/figures/ch07\_sensibilite.py} & Figure ch07 — sensibilité de la cotisation de seuil A* à l'inflation des coûts et au rendement du fonds (DONNÉ \\ figure & \texttt{analysis/python/figures/ch08\_carte\_zones.py} & Figure ch08 — carte synthétique des zones de « Val-Fictif » (DONNÉES SYNTHÉTIQUES) : 400 lots, cinq zones, \\ figure & \texttt{analysis/python/figures/ch08\_option\_sensibilite.py} & Figure ch08 — sensibilité des effets de valeur du zonage (DONNÉES SYNTHÉTIQUES / hypothèses déclarées) : \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch09\_ratios.py} & Figures du chapitre 9 (DONNÉES SYNTHÉTIQUES du cas 1, graine 20261031) : \\ figure & \texttt{analysis/python/figures/ch10\_figures.py} & Chapitre 10 — figures Matplotlib : \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch11\_frise\_pathologies.py} & Figure ch11 — frise INDICATIVE des pathologies et matériaux à risque selon la période de construction (Québec) \\ figure & \texttt{analysis/python/figures/ch11\_matrice\_age\_effectif.py} & Figure ch11 — matrice état × âge chronologique → âge effectif (convention déclarée de l'ouvrage, chapitre 11). \\ figure & \texttt{analysis/python/figures/ch12\_figures.py} & Figures du chapitre 12 (DONNÉES SYNTHÉTIQUES, cas 1, graine 20261031) : \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch13\_indices.py} & Figure ch13 — trois indices souvent confondus, données RÉELLES de data/raw, rebasés T1 2017 = 100 : \\ figure & \texttt{analysis/python/figures/ch13\_rfu.py} & Figure ch13 — composition de l'évaluation imposable uniformisée 2026 (MAMH, richesse foncière uniformisée, CC \\ figure & \texttt{analysis/python/figures/ch13\_schl.py} & Figure ch13 — SCHL, Enquête sur les logements locatifs d'octobre 2025 (données RÉELLES, fichier rmr-quebec-202 \\ figure & \texttt{analysis/python/figures/ch14\_figures.py} & Chapitre 14 — figures (données SYNTHÉTIQUES, graine 20261031). Idempotent. \\ figure & \texttt{analysis/python/figures/ch15\_figures.py} & Figures du chapitre 15 — Études de marché et segmentation. Produit dans assets/figures/ch15/ : \\ figure & \texttt{analysis/python/figures/ch17\_figures.py} & Chapitre 17 — figures : cascade d'ajustements (G0404), dispersion des paires, prix bruts vs ajustés, tornade d \\ figure & \texttt{analysis/python/figures/ch18\_figures.py} & Figures du chapitre 18 — Modèles hédoniques (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261031). \\ figure & \texttt{analysis/python/figures/ch19\_figures.py} & Figures du chapitre 19 — modèles spatiaux et temporels (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261031 \\ figure & \texttt{analysis/python/figures/ch20\_figures.py} & Chapitre 20 — figures : densités bootstrap et énumération exhaustive ; résidus des candidats et élargissement \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch21\_ipcb.py} & Figure ch21 — IPCB Montréal (Statistique Canada, tableau 18-10-0289-01, base 2023 = 100), données RÉELLES lues \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch23\_ipcb\_divisions.py} & Figure ch23 — IPCB Montréal, maison individuelle, par division de travaux (Statistique Canada 18-10-0289-01), \\ figure & \texttt{analysis/python/figures/ch23\_ipcb\_types.py} & Figure ch23 — IPCB (Statistique Canada 18-10-0289-01, 2023 = 100), données RÉELLES lues dans data/raw : \\ figure & \texttt{analysis/python/figures/ch23\_sensibilite.py} & Figure ch23 — sensibilité (DONNÉES SYNTHÉTIQUES, cas 1 ; taux documenté Banque du Canada V80691335) : \\ figure & \texttt{analysis/python/figures/ch23\_structure.py} & Figure ch23 — cascade de formation du coût neuf du sujet du cas 1 (DONNÉES SYNTHÉTIQUES, graine 20261031) : \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch24\_sensibilite.py} & Figure ch24 — sensibilité (DONNÉES SYNTHÉTIQUES, cas 1, graine 20261031) : (a) taux de dépréciation âge-vie mo \\ figure & \texttt{analysis/python/figures/ch25\_figures.py} & Figures du chapitre 25 — Évaluation du terrain (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ figure & \texttt{analysis/python/figures/ch26\_figures.py} & Chapitre 26 — figures (4) : loyer contractuel vs loyer de marché par logement (cas 3), distribution de l'ancie \\ figure & \texttt{analysis/python/figures/ch27\_figures.py} & Chapitre 27 — figures (4) : \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch29\_figures.py} & Chapitre 29 — figures (5) : taux extraits (histogramme), taux vs état/taille (nuage), surface V(RNE, R) (carte \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch30\_loyers.py} & Ch. 30, figure « loyers » : trajectoire du revenu brut potentiel contractuel (indexé au taux TAL + relocation \\ figure & \texttt{analysis/python/figures/ch30\_surface.py} & Ch. 30, figure « surface » : valeur DCF du cas 3 (DONNÉES SYNTHÉTIQUES) selon le taux d'actualisation r (ligne \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch31\_levier.py} & Ch. 31, figure « levier » (DONNÉES SYNTHÉTIQUES, cas 3) : TRI des fonds propres sur dix ans et rendement coura \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch32\_figures.py} & Figures du chapitre 32 — Duplex à quintuplex (données SYNTHÉTIQUES du cas 2, sauf la figure des médianes APCIQ \\ figure & \texttt{analysis/python/figures/ch33\_figures.py} & Chapitre 33 — figures (4) : (1) SCHL, île de Montréal, loyers et inoccupation par taille d'immeuble et par ann \\ figure & \texttt{analysis/python/figures/ch34\_calcul\_tal.py} & Ch. 34, figure « exemple de calcul TAL » : composantes de l'augmentation mensuelle du logement 103 du cas 3 (D \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch34\_rotation.py} & Ch. 34, figure « rotation espérée » : (gauche) rapport espéré loyer contractuel / loyer de marché d'un logemen \\ figure & \texttt{analysis/python/figures/ch34\_trajectoires.py} & Ch. 34, figure « trajectoires RBP » : revenu brut potentiel contractuel du cas 3 (DONNÉES SYNTHÉTIQUES) selon \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch35\_figures.py} & Figures du chapitre 35 — Indices immobiliers et ventes répétées. \\ figure & \texttt{analysis/python/figures/ch36\_figures.py} & Figures du chapitre 36 — données de panel et identification causale (cas 4, DONNÉES SYNTHÉTIQUES, graine 20261 \\ figure & \texttt{analysis/python/figures/ch37\_figures.py} & Figures du chapitre 37 — Apprentissage automatique et explicabilité (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, gr \\ figure & \texttt{analysis/python/figures/ch38\_figures.py} & Figures du chapitre 38 — SIG et risques géospatiaux (cas 1 Gatineau et cas 4 portefeuille, DONNÉES SYNTHÉTIQUE \\ figure & \texttt{analysis/python/figures/ch39\_figures.py} & Figures du chapitre 39 — Modèles bayésiens et intervalles (cas 1, Gatineau, DONNÉES SYNTHÉTIQUES, graine 20261 \\ figure & \texttt{analysis/python/figures/ch40\_figures.py} & Chapitre 40 — figures (DONNÉES SYNTHÉTIQUES : cas 3 et cas 4, graine 20261031). \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch42\_cotisation\_speciale.py} & Figure ch42 — charges annuelles normalisées des huit fractions (ch. 7) et part de chacune dans une cotisation \\ figure & \texttt{analysis/python/figures/ch42\_grille.py} & Figure ch42 — grille de comparaison de la fraction F4 : prix observé, prix ajusté et décomposition des ajustem \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch43\_carte\_riverain.py} & Figure ch43 — municipalité fictive de Rivière-Fictive (DONNÉES SYNTHÉTIQUES) : 625 lots, classes d'exposition \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch43\_placebos.py} & Figure ch43 — inférence de randomisation exacte pour le DiD du cas 4 (DONNÉES SYNTHÉTIQUES) : distribution des \\ figure & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/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 & \texttt{analysis/python/figures/ch44\_heatmap\_van.py} & Figure ch44 — VAN des deux mesures selon le taux d'actualisation et la croissance du prix de l'électricité \\ figure & \texttt{analysis/python/figures/ch44\_prime\_verte.py} & Figure ch44 — la « prime verte » dans la littérature : fourchettes publiées par étude (valeurs vérifiées, voir \\ figure & \texttt{analysis/python/figures/ch45\_figures.py} & Chapitre 45 — figures du dossier (cas 1, DONNÉES SYNTHÉTIQUES) : carte des comparables, cascade des ajustement \\ figure & \texttt{analysis/python/figures/ch46\_figures.py} & Chapitre 46 — figures du dossier « triplex à Québec » (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ figure & \texttt{analysis/python/figures/ch47\_dossier\_figures.py} & Chapitre 47 — figures du dossier « 12 logements à Montréal » (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ figure & \texttt{analysis/python/figures/ch48\_portefeuille\_figures.py} & Chapitre 48 — figures du dossier « portefeuille multirésidentiel interrégional » (DONNÉES SYNTHÉTIQUES, graine \\ figure & \texttt{analysis/python/figures/run\_all.py} & Exécute tous les scripts de figures (analysis/python/figures/chNN\_*.py) et les scripts R (analysis/r/chNN\_*. \\ test & \texttt{analysis/python/tests/conftest.py} & \\ test & \texttt{analysis/python/tests/test\_cas1.py} & \\ test & \texttt{analysis/python/tests/test\_cas2\_cas4.py} & \\ test & \texttt{analysis/python/tests/test\_cas3.py} & \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch02.py} & Chapitre 2 — Droits immobiliers et bases de valeur : identités (additivité, Gordon, annuité) et valeurs citées \\ test & \texttt{analysis/python/tests/test\_ch03.py} & Tests du chapitre 3 — Offre, demande et cycles. \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch05.py} & Tests du chapitre 5 — modèle monocentrique simulé, gradient prix/distance du cas 1, décomposition du cas 4, \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch07.py} & Tests du chapitre 7 — servitude par ventes appariées, quotes-parts et charges de copropriété, fonds de prévoya \\ test & \texttt{analysis/python/tests/test\_ch08.py} & Tests du chapitre 8 — zonage et urbanisme (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ test & \texttt{analysis/python/tests/test\_ch09.py} & Tests du chapitre 9 — étude de ratios (COD, PRD, PRB, proportion médiane, facteur comparatif), dossiers de con \\ test & \texttt{analysis/python/tests/test\_ch10.py} & Chapitre 10 — vérification des chiffres cités dans le texte, les tableaux et les solutions. \\ test & \texttt{analysis/python/tests/test\_ch11.py} & Tests du chapitre 11 — inspection synthétique du sujet du cas 1, convention d'âge effectif, dépréciation venti \\ test & \texttt{analysis/python/tests/test\_ch12.py} & Tests du chapitre 12 — mesurage, superficies, propagation d'erreur (cas 1, données synthétiques). \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch14.py} & Chapitre 14 — Nettoyage, géocodage et qualité des données : reproductibilité du jeu brut, identités des diagno \\ test & \texttt{analysis/python/tests/test\_ch15.py} & Chapitre 15 — Études de marché et segmentation : vérification des identités et des chiffres cités dans le text \\ test & \texttt{analysis/python/tests/test\_ch16.py} & Chapitre 16 — vérification des chiffres cités dans le texte et les solutions. \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch18.py} & Chapitre 18 — Modèles hédoniques : vérification des chiffres cités dans le texte, les tableaux et les solution \\ test & \texttt{analysis/python/tests/test\_ch19.py} & Chapitre 19 — tests des fonctions spatiales ajoutées à traite.hedonique et des chiffres cités dans le texte et \\ test & \texttt{analysis/python/tests/test\_ch20.py} & Chapitre 20 — réconciliation et incertitude : identités, chiffres cités dans le texte et dans les solutions (t \\ test & \texttt{analysis/python/tests/test\_ch21.py} & Tests du chapitre 21 — coût neuf du sujet du cas 1, IPCB Montréal, sensibilité et exercices. \\ test & \texttt{analysis/python/tests/test\_ch22.py} & Tests du chapitre 22 — métré et quantités du sujet du cas 1. \\ test & \texttt{analysis/python/tests/test\_ch23.py} & Tests du chapitre 23 — coûts directs et indirects : structure du devis du cas 1, financement intérimaire (trai \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch25.py} & Tests du chapitre 25 — Évaluation du terrain : jeu synthétique de terrains (graine 20261031), modèle hédonique \\ test & \texttt{analysis/python/tests/test\_ch26.py} & Tests du chapitre 26 — baux et loyers (cas 3 et cas 2, données synthétiques). \\ test & \texttt{analysis/python/tests/test\_ch27.py} & Tests du chapitre 27 — revenus potentiels, vacance et pertes (cas 3 et cas 2, données synthétiques ; tableaux \\ test & \texttt{analysis/python/tests/test\_ch28.py} & Tests du chapitre 28 — dépenses, réserves, CAPEX et RNE (cas 3 et cas 2, données synthétiques). \\ test & \texttt{analysis/python/tests/test\_ch29.py} & Tests du chapitre 29 — capitalisation directe (cas 3, données synthétiques). \\ test & \texttt{analysis/python/tests/test\_ch30.py} & Tests du chapitre 30 — flux actualisés et valeur terminale (cas 3, données synthétiques). \\ test & \texttt{analysis/python/tests/test\_ch31.py} & Tests du chapitre 31 — financement, levier, RCD et RPV (cas 3, données synthétiques ; repères BdC réels). \\ test & \texttt{analysis/python/tests/test\_ch32.py} & Tests du chapitre 32 — Duplex à quintuplex : identités, cohérence avec traite.cas2 (partagé avec les ch. 26, 2 \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch37.py} & Chapitre 37 — Apprentissage automatique et explicabilité : reproductibilité et bornes de performance des chiff \\ test & \texttt{analysis/python/tests/test\_ch38.py} & Chapitre 38 — tests des fonctions de traite.geo et des chiffres cités dans manuscript/chapters/ch38.tex et sol \\ test & \texttt{analysis/python/tests/test\_ch39.py} & Chapitre 39 — Modèles bayésiens et intervalles : vérification des identités, des diagnostics et des chiffres c \\ test & \texttt{analysis/python/tests/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 & \texttt{analysis/python/tests/test\_ch41.py} & Tests du chapitre 41 — PHMU, terrains et développement (DONNÉES SYNTHÉTIQUES du cas 1 ; zonage FICTIF ; hypoth \\ test & \texttt{analysis/python/tests/test\_ch42.py} & Tests du chapitre 42 — fraction de copropriété (grille, réconciliation), cotisation spéciale, copropriété loca \\ test & \texttt{analysis/python/tests/test\_ch43.py} & Tests du chapitre 43 — risques environnementaux et sinistres (DONNÉES SYNTHÉTIQUES, graine 20261031). \\ test & \texttt{analysis/python/tests/test\_ch44.py} & Tests du chapitre 44 — rénovation et efficacité énergétique (sujet du cas 1, DONNÉES SYNTHÉTIQUES). \\ test & \texttt{analysis/python/tests/test\_ch46.py} & Tests du chapitre 46 — Cas 2 : triplex à Québec (dossier complet, données SYNTHÉTIQUES). \\ test & \texttt{analysis/python/tests/test\_ch47.py} & Tests du chapitre 47 (cas 3, 12 logements à Montréal — données synthétiques) : identités, valeurs citées dans \\ test & \texttt{analysis/python/tests/test\_ch48.py} & Tests du chapitre 48 (cas 4, portefeuille interrégional — données synthétiques) : identités du sommaire, cohér \\ test & \texttt{analysis/python/tests/test\_comparables.py} & \\ test & \texttt{analysis/python/tests/test\_cout.py} & \\ test & \texttt{analysis/python/tests/test\_finance.py} & \\ test & \texttt{analysis/python/tests/test\_hedonique.py} & \\ test & \texttt{analysis/python/tests/test\_synth.py} & \\ outil & \texttt{tools/check\_manuscript.py} & Vérifications du manuscrit : stubs restants, figures manquantes, scripts des figures, \\ outil & \texttt{tools/inventaire.py} & Inventaire des scripts, tests, données, figures et classeurs → manuscript/appendices/\_inventaire.tex (longtab \\ outil & \texttt{tools/make\_labels.py} & Écrit un fichier d'étiquettes (newlabel) pour tous les chapitres et annexes, afin que cref{ch:NN} / cref{app:x \\ outil & \texttt{tools/make\_release.py} & Assemble release/ : PDF, sources LaTeX, données, figures, scripts, classeurs, corrigés, rapport de validation. \\ outil & \texttt{tools/merge\_sources.py} & Fusionne sources/registry-*.csv → sources/registry.csv, sources/normes-*.csv → sources/normes-matrice.csv, \\ outil & \texttt{tools/compile\_chapter.sh} & !/usr/bin/env bash \\ outil & \texttt{tools/valider\_chapitre.sh} & !/usr/bin/env bash \\ \end{longtable} \begin{longtable}{lr} \caption{Jeux de données synthétiques}\label{tab:app:donnees}\\ \toprule Fichier & Taille \\ \midrule \endfirsthead \toprule Fichier & Taille \\ \midrule \endhead \bottomrule \endfoot \texttt{data/synthetic/README-brut.md} & 5 ko \\ \texttt{data/synthetic/README.md} & 18 ko \\ \texttt{data/synthetic/calibration.json} & 93 ko \\ \texttt{data/synthetic/calibration\_journal.csv} & 6 ko \\ \texttt{data/synthetic/cas1\_gatineau\_anomalies\_injectees.csv} & 6 ko \\ \texttt{data/synthetic/cas1\_gatineau\_couts.csv} & 2 ko \\ \texttt{data/synthetic/cas1\_gatineau\_journal\_exclusions.csv} & 22 ko \\ \texttt{data/synthetic/cas1\_gatineau\_role\_extrait.csv} & 44 ko \\ \texttt{data/synthetic/cas1\_gatineau\_sujet.json} & 1 ko \\ \texttt{data/synthetic/cas1\_gatineau\_ventes.csv} & 65 ko \\ \texttt{data/synthetic/cas1\_gatineau\_ventes\_brut.csv} & 111 ko \\ \texttt{data/synthetic/cas2\_quebec\_depenses.csv} & 0 ko \\ \texttt{data/synthetic/cas2\_quebec\_loyers.csv} & 0 ko \\ \texttt{data/synthetic/cas2\_quebec\_sujet.json} & 0 ko \\ \texttt{data/synthetic/cas2\_quebec\_ventes\_plex.csv} & 28 ko \\ \texttt{data/synthetic/cas3\_montreal\_comparables.csv} & 4 ko \\ \texttt{data/synthetic/cas3\_montreal\_depenses.csv} & 1 ko \\ \texttt{data/synthetic/cas3\_montreal\_etat\_locatif.csv} & 1 ko \\ \texttt{data/synthetic/cas3\_montreal\_hypotheses\_dcf.json} & 1 ko \\ \texttt{data/synthetic/cas3\_montreal\_sujet.json} & 0 ko \\ \texttt{data/synthetic/cas4\_portefeuille.csv} & 6 ko \\ \texttt{data/synthetic/cas4\_portefeuille\_series.csv} & 33 ko \\ \texttt{data/synthetic/ch08\_zonage\_lots.csv} & 15 ko \\ \texttt{data/synthetic/ch08\_zonage\_ventes.csv} & 32 ko \\ \texttt{data/synthetic/ch25\_terrains\_ventes.csv} & 20 ko \\ \texttt{data/synthetic/ch43\_riverain\_lots.csv} & 27 ko \\ \texttt{data/synthetic/ch43\_riverain\_ventes.csv} & 79 ko \\ \end{longtable} \begin{itemize} \item \texttt{spreadsheets/amortissement\_hypothecaire.xlsx} \item \texttt{spreadsheets/cas1\_grille\_comparaison.xlsx} \item \texttt{spreadsheets/cas3\_dcf\_12\_logements.xlsx} \end{itemize} \noindent Figures PDF générées : 219.