🌍 The Global Evidence on Housing Price Determinants
UQO Working Paper No. 21 — A Meta-Analysis of Hedonic Pricing Models, 1970–2026
TL;DR — PRISMA-style systematic search (103,011 records → 56,727 unique → 7,083 agent-screened → 2,249 hedonic studies included at stage 1), open-access retrieval (501 PDFs, 18.8 %), LLM-assisted extraction of 297 papers (242 eligible, 2,022 model columns, 18,831 coefficient rows; 20-paper independent double extraction: 100 % numerical agreement on 647 matched coefficients), harmonisation into % premiums / semi-elasticities / elasticities (7,693 usable estimates from 149 studies), and REML, three-level, cluster-robust, PET-PEESE, selection-model, Bayesian and ML meta-analyses of 67 characteristic–family combinations. Living-area elasticity 0.65 [0.61, 0.69]; bathroom +5.9 %; age −0.24 %/yr; CBD distance −3.1 %/km; waterfront +32.5 %; I² ≈ 100 % everywhere; moderators explain little. Extends Sirmans et al. (2005, 2006).
📌 Status
| Item | Value |
|---|---|
| Version | 1.0 (October 2026) |
| SSRN | not yet submitted |
| Journal | — |
| Code & data | reproducible from Makefile; raw PDFs not redistributed (retrieval log allows re-download) |
🎯 What this paper does
Global, harmonised, uncertainty-aware synthesis of hedonic housing price models with a reproducible pipeline (discovery → screening → retrieval → extraction → validation → harmonisation → meta-analysis → manuscript). Eight research questions (consistency, magnitude, geography, time, estimators, AI-derived characteristics, heterogeneity vs selection, gaps).
🏆 Headline results
| Object | Estimate (REML, 95 % CI; k studies) |
|---|---|
| Living-area elasticity | 0.65 [0.61, 0.69]; k = 46 |
| Bathroom semi-elasticity | +5.9 % per bathroom; k = 51 |
| Bedroom (conditional on area) | +3.0 % per bedroom; k = 60 |
| Age | −0.24 % per year; k = 54 |
| Distance to CBD | −3.1 % per km; k = 23 |
| Garage / pool / AC / view / waterfront premiums | 5.4 / 4.9 / 10.8 / 8.2 / 32.5 % |
| Heterogeneity | median I² = 100 %; prediction intervals span zero for most characteristics |
| Moderators | 12 of 182 terms significant (RVE); ML meta-regression out-of-study R² < 0 |
| AI synthesis (40 studies) | ML beats hedonic benchmark in most same-test-set comparisons (median MAPE 9.0 vs 12.4); 9 studies report incremental gains from AI features |
🗂 Repository layout
hedonic-meta-analysis-global/ (spbgit: wp21_uqo.git)
├── CLAUDE.md · protocol/{preregistration,eligibility,search_strategy}.md
├── data/metadata/ (records, screening decisions, retrieval log, PRISMA counts, competing reviews)
├── data/extracted/ (dumps, json/ per paper, ai/ light extractions) · data/validated/ (double extraction + comparison)
├── data/final/ (studies.csv, coefficients_raw.csv, effects_all.csv, effects.csv, ai_studies.csv)
├── scripts/{discovery,screening,extraction,harmonization,validation,econometrics,visualization}/
├── results/{econometrics,figures,logs}/ · reports/{foundations,search_audit,extraction_audit,methodological_decisions,limitations}.md
├── paper/ (main.tex, sections/, appendices/, tables/, figures/, references.bib → main.pdf)
└── tests/ · requirements.txt · Makefile🚀 Quick start
python3 -m pip install -r requirements.txt # + R: install.packages(c("metafor","clubSandwich"))
make screen # deduplicate, rule-screen, audit (from stored records)
make effects # build studies/coefficients/effects + validation comparison
make models # R metafor + clubSandwich; Python REML/PET-PEESE/Bayes/ML
make tables figures paperDiscovery (make discover) and retrieval (make fetch) re-query live services and are slow (rate limits); the stored records
and logs reproduce the paper as is. Extraction JSONs are stored artefacts of the agent protocol (scripts/extraction/EXTRACTION_PROTOCOL.md).
🗃 Data
Bibliographic records from Semantic Scholar bulk API, Crossref, arXiv, OpenAlex (2026-10-20); open-access PDFs via Unpaywall,
Semantic Scholar and arXiv (not redistributed; data/metadata/retrieval_log.csv). No proprietary data.
🔬 Methodology
- Discovery (67 queries, multilingual) and deduplication (DOI + normalised title).
- Rule-based + agent screening with coded reasons (PRISMA flow generated from logs).
- PyMuPDF page scoring → dumps → agent extraction (JSON schema) → independent double extraction of 20 papers.
- Harmonisation: Kennedy-corrected premiums, unit-harmonised semi-elasticities, elasticities, partial correlations; flags.
- metafor
rma.uni/rma.mv+ clubSandwich CR2; Egger, PET-PEESE, step selection model; Gibbs Bayesian; grouped RF/GBM.
🖼 Figures & tables inventory
14 figures (fig01_prisma_flow … fig14_summary_evidence) and 23 table fragments (tab01_coverage … tab15_gaps) plus
numbers.tex (913 macros), all generated by scripts/visualization/.
⚠️ Limitations
See reports/limitations.md and Section 15 of the paper (open-access retrieval bound, agent-based extraction, heterogeneity).
📖 Citation
@techreport{boucher2026global,
author = {Boucher, Simon-Pierre}, title = {The Global Evidence on Housing Price Determinants: A Meta-Analysis of Hedonic Pricing Models, 1970--2026},
institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives}, type = {UQO Working Paper}, number = {21}, year = {2026}, month = {October}
}👤 Author & contact
Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca.
📝 Notes
Deviations from the series standard: scripts/<phase>/ instead of numbered scripts; protocol/, reports/ directories; longtables
for the diagnostics tables. Numbering: WP21 (WP20 reserved elsewhere).