TeX 55.1%
Python 44.2%
1<!-- Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca -->2# Decision log — WP22 SHARP-HPI34| # | Date | Decision | Evidence / rationale |5|---|---|---|---|6| D0.1 | 2026-10-21 | Project lives in `Recherche-UQO/immobilier/sharp-hpi-quebec` (the request said "uqo-research"; no such folder exists, `Recherche-UQO` is the working-paper series root). WP number 22 per `HARMONISATION.md`. | discovery |7| D0.2 | 2026-10-21 | Data source = production Vrai Prix SQLite on M3U96a, read through `sqlite3 .backup` (read-only), never the live file. One immutable snapshot, checksum pinned in `config.py`. | §1 of protocol |8| D0.3 | 2026-10-21 | "Existing QHPI method" (benchmark K) = the QWHPI v2.1 engine in `~/Desktop/PhD/recherche/QWHPI` (rolling 13-month Huber time-dummy, mean splice, direct local TD for liquid cells, local-level Kalman shrinkage for thin cells). Re-implemented here from its source, not re-run from its repo (different sample). | discovery |9| D1.1 | 2026-10-21 | Geography from SDA V2026-07 polygons (spatial join on lat/lng, 100 % within); the roll's `code_mun` agrees 99.96 %. Series are on **2026 boundaries**; municipalities constituted/merged 2022–2026 (Amos, Plessisville, La Pocatière, …) are listed in `results/geo/mamh_constituted_since_2021.csv`. | results/geo |10| D1.2 | 2026-10-21 | Fine location = nested metric grid (500 m ⊂ 1 km ⊂ 2 km ⊂ 5 km ⊂ municipality, NAD83/Quebec Lambert); each estimation picks the finest level with ≥ `min_n` sales of the class (time-invariant partition, no singletons). The roll's `unite_voisinage` is a unit-level code (379k distinct values for 449k rows, 73 % singletons) and is unusable as a neighbourhood. H3 not installed; a metric grid is equivalent for a fixed-effect control. | results/geo/fine_location_summary.csv |11| D1.3 | 2026-10-21 | Property classification from the roll (CUBF, units, physical link) with the provider label as fallback; conflicts kept and flagged (`type_conflict`, 4.3 %), headline keeps the roll class. | results/cleaning/classification_crosstab.csv |12| D1.4 | 2026-10-21 | Headline population = house / condo / plex sales with roll characteristics; cottages, mobile homes, 6+ unit buildings, land, non-residential excluded (ledger). | results/cleaning/exclusion_ledger.csv |13| D1.5 | 2026-10-21 | Sales dated before the roll's construction year are lots or unfinished structures → excluded (`built_after_sale`); sales in the construction year flagged `new_construction` and kept (sensitivity). The current-roll vintage means 2025–2026 new builds may still be coded as land and are then excluded — a documented coverage limitation. | results/profile/new_construction_share.csv |14| D1.6 | 2026-10-21 | Price screen: provider floor ($50k, not ours) + $10M cap + assessment-ratio screen relative to the year×class×region median using the **sale-time** assessment (|log deviation| > log 4). Not the sole outlier treatment: estimators use Huber / Student-t likelihoods. | results/profile/assessment_ratio_year.csv |15| D1.7 | 2026-10-21 | Multi-parcel deeds: same date+price+city+street or same date+price+~1 km cell → excluded (0.35 %). Same parcel sold twice the same day at different prices → excluded (1.9 %; mostly undivided co-ownership shares and condo-project parcels). Parcels with > 10 sales in 2021–2026 → excluded as shared/developer parcels. | results/cleaning/flag_counts.csv |16| D1.8 | 2026-10-21 | `building_type` (provider) banned from all models: coverage 12 % → 87 % over the sample (backfill). `unite_voisinage` coverage drifts 51 % → 62 %, acceptable because its fallback is another location fixed effect, not a "missing" regressor. | results/profile/completeness_by_month.csv |17| D1.9 | 2026-10-21 | Registration lag: 4 earlier vintages show 99.99 % of eventual transactions dated ≤ a vintage's last date were already in it; the only incompleteness is the final ~2 weeks. Real-time simulation therefore models a **publication delay of ~10–13 days** with no later backfill, and the last calendar month is partial. | results/vintages |18| D1.10 | 2026-10-21 | January–February 2021 volumes are roughly a third of 2022 levels (feed start-up); the 2021 annual base is kept (protocol) but the thin start is flagged in coverage tables and in the paper. | results/profile/coverage_month_type.csv |19