spb/qwhpi Public
QHPI — Quebec Housing Price Index: quality-adjusted, hierarchically pooled housing price indexes.
Python 63.9%
TypeScript 25.4%
CSS 5.5%
TeX 3.5%
SQL 0.8%
Makefile 0.5%
Dockerfile 0.5%
1<!--2=============================================================================3QWHPI — Quebec Weekly Housing Price Index4Author : Simon-Pierre Boucher5Contact : contact@spboucher.ai6File : outputs/reports/methodology_v2_research.md7Purpose : Web-researched design record for the v2 (monthly, robust) index.8=============================================================================9-->1011# QHPI v2 — monthly, robust: research record and design decisions1213## Why revisit v11415The v1 weekly index estimated ONE pooled hedonic over 2021–2026 (fixed16coefficients for 5.5 years) and published weekly points whose thin-cell noise17had to be repaired by heavy shrinkage. Two structural weaknesses:18191. **Fixed hedonic coefficients over the full pool.** The implicit prices of20 floor area, age and location are not constant across a boom, a rate-hike21 correction and a recovery. The literature flags the fixed-parameter22 restriction as the main drawback of the full-pool time-dummy method.232. **Full-sample estimation revises history on every run** — each refresh24 re-estimates every β, so past index points move.2526## What the literature recommends2728- **Rolling-Time-Dummy (RTD)**: estimate the time-dummy hedonic on a rolling29 window of recent periods only, then link (splice) each new estimate onto30 the existing series. Used by official HPIs; requires less data, adapts to31 parameter drift, and is "well suited for computing higher frequency HPIs".32 Hill, Scholz, Shimizu & Steurer (2022, *Journal of Official Statistics*33 38(1):127–151) treat the three design choices: window length, linking34 variant (movement / window / half / **mean splice**), and low-volume35 robustness.36- **Chained/spliced time dummies produce a revision-free series** and relax37 the fixed-parameter assumption (Eurostat/IMF/OECD *RPPI Handbook*, ch. 5).38- **Mean splice** (geometric mean over all feasible link positions) is the39 robust default in the splicing literature (Diewert & Fox 2021 for40 multilateral updating): no single anomalous overlap period drives the link.41- **Robust estimation**: OLS hedonics chase influential observations;42 M-estimation (Huber weights) or documented influence-trimming is standard43 practice for official filters (cf. IMF WP/16/213, MNB HPI outlier44 procedures).45- **Monthly frequency**: weekly cells below the metro level are too thin for46 publication-grade points without aggressive shrinkage; monthly multiplies47 cell counts ~4.3× and is the modal frequency of official HPIs.4849Sources:50- Hill, Scholz, Shimizu & Steurer (2022) — https://journals.sagepub.com/doi/abs/10.2478/jos-2022-000751- Eurostat et al., Handbook on Residential Property Prices Indices — https://www.oecd.org/content/dam/oecd/en/publications/reports/2013/04/handbook-on-residential-property-price-indices_g1g2e251/9789264197183-en.pdf52- RPPI Handbook ch.5 (hedonic methods) — https://www.elibrary.imf.org/display/book/9789279259845/ch005.xml53- IMF WP/16/213, "How to Better Measure Hedonic RPPIs" — https://www.imf.org/external/pubs/ft/wp/2016/wp16213.pdf54- IMF RPPI Practical Guide — https://www.imf.org/-/media/files/data/guides/rppi/rppi-guide.pdf5556## v2 design (implemented)57581. **Frequency: monthly** (labels `YYYY-MM`, continuous grid, trailing month59 flagged partial while registrations arrive).602. **Stage 1 — RTD, 13-month rolling windows, monthly step.** Within each61 window: hedonic `log P ~ log_fa + fa_missing + age bins + building type62 | FSA FE + (month × type) FE`, estimated by **iteratively reweighted least63 squares with Huber weights** (k = 1.345 on MAD-standardized residuals,64 2 reweighting passes) — outliers are downweighted inside the regression65 instead of silently trimmed. A 13-month window spans every calendar month66 once (seasonal balance) and holds ~120k transactions.673. **Linking: mean splice.** For each new window the province path per type68 is extended by the geometric mean of the growth implied at every feasible69 overlap position. Movement and window splices are computed as published70 sensitivity diagnostics. The published history never revises.714. **Stage 2 — unchanged hierarchy, monthly grid.** Each transaction's72 quality-adjusted residual comes from the window in which its month is the73 NEWEST month (fully real-time, β local in time). Cell deviations74 (region → municipality) follow the heteroskedastic local-level Kalman75 model; thin months shrink toward the parent path.765. **Growth horizons**: 1m, 3m, 6m, 12m (YoY). Reliability grades77 recalibrated by a monthly downsampling experiment.786. **New diagnostics**: hedonic coefficient drift across windows (the79 empirical justification for RTD), RTD vs full-pool comparison, splice80 variant sensitivity.817. Cleaning screens, geography, `indéterminé` exclusion, fixed-share "all"82 composition, assessment-gap module: unchanged from v1 (already validated).8384Author: Simon-Pierre Boucher — contact@spboucher.ai85