1<!-- Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca -->2# 🌍 The Global Evidence on Housing Price Determinants34**UQO Working Paper No. 21** — *A Meta-Analysis of Hedonic Pricing Models, 1970–2026*56[-b31b1b?logo=latex&logoColor=white)](paper/main.pdf)7[](requirements.txt)8[](data/metadata/)9[](Makefile)10[](https://uqo.ca)11[](mailto:simon-pierre.boucher@uqo.ca)1213> **TL;DR** — PRISMA-style systematic search (103,011 records → 56,727 unique → 7,083 agent-screened → 2,249 hedonic studies14> included at stage 1), open-access retrieval (501 PDFs, 18.8 %), LLM-assisted extraction of 297 papers (242 eligible, 2,02215> model columns, 18,831 coefficient rows; 20-paper independent double extraction: 100 % numerical agreement on 647 matched16> coefficients), harmonisation into % premiums / semi-elasticities / elasticities (7,693 usable estimates from 149 studies), and17> REML, three-level, cluster-robust, PET-PEESE, selection-model, Bayesian and ML meta-analyses of 67 characteristic–family18> combinations. Living-area elasticity 0.65 [0.61, 0.69]; bathroom +5.9 %; age −0.24 %/yr; CBD distance −3.1 %/km; waterfront19> +32.5 %; I² ≈ 100 % everywhere; moderators explain little. Extends Sirmans et al. (2005, 2006).2021---2223## 📌 Status2425| Item | Value |26|---|---|27| Version | 1.0 (October 2026) |28| SSRN | not yet submitted |29| Journal | — |30| Code & data | reproducible from `Makefile`; raw PDFs not redistributed (retrieval log allows re-download) |3132## 🎯 What this paper does3334Global, harmonised, uncertainty-aware synthesis of hedonic housing price models with a reproducible pipeline (discovery →35screening → retrieval → extraction → validation → harmonisation → meta-analysis → manuscript). Eight research questions36(consistency, magnitude, geography, time, estimators, AI-derived characteristics, heterogeneity vs selection, gaps).3738## 🏆 Headline results3940| Object | Estimate (REML, 95 % CI; k studies) |41|---|---|42| Living-area elasticity | 0.65 [0.61, 0.69]; k = 46 |43| Bathroom semi-elasticity | +5.9 % per bathroom; k = 51 |44| Bedroom (conditional on area) | +3.0 % per bedroom; k = 60 |45| Age | −0.24 % per year; k = 54 |46| Distance to CBD | −3.1 % per km; k = 23 |47| Garage / pool / AC / view / waterfront premiums | 5.4 / 4.9 / 10.8 / 8.2 / 32.5 % |48| Heterogeneity | median I² = 100 %; prediction intervals span zero for most characteristics |49| Moderators | 12 of 182 terms significant (RVE); ML meta-regression out-of-study R² < 0 |50| 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 |5152## 🗂 Repository layout5354```55hedonic-meta-analysis-global/ (spbgit: wp21_uqo.git)56├── CLAUDE.md · protocol/{preregistration,eligibility,search_strategy}.md57├── data/metadata/ (records, screening decisions, retrieval log, PRISMA counts, competing reviews)58├── data/extracted/ (dumps, json/ per paper, ai/ light extractions) · data/validated/ (double extraction + comparison)59├── data/final/ (studies.csv, coefficients_raw.csv, effects_all.csv, effects.csv, ai_studies.csv)60├── scripts/{discovery,screening,extraction,harmonization,validation,econometrics,visualization}/61├── results/{econometrics,figures,logs}/ · reports/{foundations,search_audit,extraction_audit,methodological_decisions,limitations}.md62├── paper/ (main.tex, sections/, appendices/, tables/, figures/, references.bib → main.pdf)63└── tests/ · requirements.txt · Makefile64```6566## 🚀 Quick start6768```bash69python3 -m pip install -r requirements.txt # + R: install.packages(c("metafor","clubSandwich"))70make screen # deduplicate, rule-screen, audit (from stored records)71make effects # build studies/coefficients/effects + validation comparison72make models # R metafor + clubSandwich; Python REML/PET-PEESE/Bayes/ML73make tables figures paper74```75Discovery (`make discover`) and retrieval (`make fetch`) re-query live services and are slow (rate limits); the stored records76and logs reproduce the paper as is. Extraction JSONs are stored artefacts of the agent protocol (`scripts/extraction/EXTRACTION_PROTOCOL.md`).7778## 🗃 Data7980Bibliographic records from Semantic Scholar bulk API, Crossref, arXiv, OpenAlex (2026-10-20); open-access PDFs via Unpaywall,81Semantic Scholar and arXiv (not redistributed; `data/metadata/retrieval_log.csv`). No proprietary data.8283## 🔬 Methodology84851. Discovery (67 queries, multilingual) and deduplication (DOI + normalised title).862. Rule-based + agent screening with coded reasons (PRISMA flow generated from logs).873. PyMuPDF page scoring → dumps → agent extraction (JSON schema) → independent double extraction of 20 papers.884. Harmonisation: Kennedy-corrected premiums, unit-harmonised semi-elasticities, elasticities, partial correlations; flags.895. metafor `rma.uni`/`rma.mv` + clubSandwich CR2; Egger, PET-PEESE, step selection model; Gibbs Bayesian; grouped RF/GBM.9091## 🖼 Figures & tables inventory929314 figures (`fig01_prisma_flow` … `fig14_summary_evidence`) and 23 table fragments (`tab01_coverage` … `tab15_gaps`) plus94`numbers.tex` (913 macros), all generated by `scripts/visualization/`.9596## ⚠️ Limitations9798See `reports/limitations.md` and Section 15 of the paper (open-access retrieval bound, agent-based extraction, heterogeneity).99100## 📖 Citation101102```bibtex103@techreport{boucher2026global,104 author = {Boucher, Simon-Pierre}, title = {The Global Evidence on Housing Price Determinants: A Meta-Analysis of Hedonic Pricing Models, 1970--2026},105 institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives}, type = {UQO Working Paper}, number = {21}, year = {2026}, month = {October}106}107```108109## 👤 Author & contact110111Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca.112113## 📝 Notes114115Deviations from the series standard: `scripts/<phase>/` instead of numbered scripts; `protocol/`, `reports/` directories; longtables116for the diagnostics tables. Numbering: WP21 (WP20 reserved elsewhere).117