# πŸ‡ Half a Million Prices, Twenty Models **UQO Working Paper No. 11** β€” *A Systematic Assessment of Hedonic Specifications and Estimation Methods for the Quebec Housing Market, 2021–2026* [![Paper](https://img.shields.io/badge/paper-PDF%20(23%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) [![Python](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](requirements.txt) [![Data](https://img.shields.io/badge/data-514%2C212%20sales%20Β·%20roll--matched-4051b5)](data/raw/README.md) [![Models](https://img.shields.io/badge/models-20%20Β·%204%20design%20axes-4051b5)](src/wp11/models.py) [![Reproducible](https://img.shields.io/badge/reproducible-end--to--end%20pipeline-2e7d32)](scripts/) [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca) [![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:contact@spboucher.ai) [![Contact](https://img.shields.io/badge/contact-contact%40spboucher.ai-a02020?logo=maildotru&logoColor=white)](mailto:contact@spboucher.ai) > **TL;DR** β€” A controlled horse race of **20 hedonic models** on 514,212 Quebec sales > with assessor-grade structural attributes: 6 functional forms Γ— time-FE ladder Γ— > spatial-FE ladder Γ— 6 estimation methods, all scored on the **same price-level > scoreboard** (Duan smearing / Box–Cox inversion) under **two holdouts** (random 80/20 > and forward-in-time). Functional form is second-order (Β±2 pp of MdAPE); spatial > controls are first-order (~10 pp) but overfit at ~1 km granularity; **gradient > boosting wins under random validation** (MdAPE β‰ˆ 14.4% vs 16.5% for the best linear > model) β€” but under the forward-in-time split *every* model degrades and the ML > advantage **reverses** (splines 19.1% vs boosting 21.2%, identical RΒ²_ln): random > cross-validation is the wrong experiment for valuation models. Implied price indices > and implicit-price profiles agree across forms far more than the accuracy gap suggests. --- ## 🎯 The four design axes | Axis | Models | Question | |---|---|---| | **A. Functional form** | linear, semi-log, log-log, Box–Cox (Ξ»Μ‚ by profile likelihood), quadratics, cubic splines | does curvature matter? | | **B. Time effects** | none / year / quarter / month FE | how fine must the time dummies be? | | **C. Spatial controls** | none / municipality / ~5.5 km grid / ~1.1 km grid FE | how fine can location FE get before overfitting? | | **D. Estimation method** | OLS, ridge (CV), random forest, gradient boosting (Β± coordinates), spatial k-NN comparables | what do the machines actually buy? | Every model: same sales, same attributes (floor area, lot, age, storeys, units, class, physical link), metrics on price levels (MdAPE, MAPE, RMSE_ln, RΒ²_ln), municipality-clustered design, and **two splits** β€” random 80/20 and train < 2025 / test 2025–26 with carry-forward time effects. ## πŸ—‚ Repository layout ``` wp11_uqo/ β”œβ”€β”€ data/raw/ # snapshot (NOT in git β€” see data/raw/README.md) β”œβ”€β”€ src/wp11/ # config, sample, models (the harness), plotstyle β”œβ”€β”€ scripts/ β”‚ β”œβ”€β”€ 01_build_sample.py # 745,119 β†’ 514,212 sales β”‚ β”œβ”€β”€ 02_horserace.py # 20 models Γ— 2 splits + Box–Cox profile β”‚ β”œβ”€β”€ 03_extensions.py # indices, implicit-price profiles, learning curves, segments β”‚ β”œβ”€β”€ 04_make_figures.py # 9 journal-calibre figures β”‚ └── 05_make_tables.py # 7 LaTeX tables β”œβ”€β”€ results/{reproduced,tables}/ β”œβ”€β”€ figures/ └── paper/ # main.tex + sections/ + references.bib β†’ main.pdf ``` ## πŸš€ Quick start ```bash cd wp11_uqo python3 -m pip install -r requirements.txt # place the parquet snapshot in data/raw/ (not distributed), then: for s in scripts/0*.py; do python3 "$s"; done cd paper && make ``` Runtime β‰ˆ 10 minutes on an Apple-silicon laptop (the boosting and forest fits dominate); peak RAM β‰ˆ 8 GB. ## πŸ“ Citation ```bibtex @techreport{boucher2026horserace, author = {Boucher, Simon-Pierre}, title = {Half a Million Prices, Twenty Models: A Systematic Assessment of Hedonic Specifications and Estimation Methods for the Quebec Housing Market}, institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives}, type = {Working Paper}, number = {11}, year = {2026}, month = {August} } ``` ## πŸ‘€ Author & contact **Simon-Pierre Boucher** β€” DΓ©partement des sciences administratives, UniversitΓ© du QuΓ©bec en Outaouais (UQO), Gatineau, QC. πŸ“§ [contact@spboucher.ai](mailto:contact@spboucher.ai)