SPB Git

spb/wp9_uqo

Public

UQO Working Paper No. 9 — A grand hedonic model of the Canadian housing market: decomposing structure and location value.

harmonisation standard UQO WP (2026-10-17)

Page titre canonique, hyperref pdftitle/pdfauthor, mots-clés normalisés,
.gitignore du gabarit, README : Status + Notes, courriel uqo.ca.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Oct 17, 2026) parent 7e21fa7 Browse files

11 changed files +64 −24

modified .gitignore +16 −1
@@ -1,19 +1,34 @@
1−# Raw data snapshot — 747 MB, exceeds GitHub limits and is not redistributed 1+# Raw data snapshot — 747 MB DuckDB, not redistributed (see data/raw/README.md)
2 data/raw/*.duckdb 2 data/raw/*.duckdb
3+data/raw/*.parquet
4+data/processed/*.parquet
3 5
4 # Python 6 # Python
5 __pycache__/ 7 __pycache__/
6 *.pyc 8 *.pyc
9+.pytest_cache/
10+.venv/
11+*.egg-info/
7 12
8 # LaTeX build artifacts (paper/main.pdf IS committed) 13 # LaTeX build artifacts (paper/main.pdf IS committed)
9 paper/*.aux 14 paper/*.aux
10 paper/*.log 15 paper/*.log
11 paper/*.out 16 paper/*.out
17+paper/*.toc
18+paper/*.lof
19+paper/*.lot
12 paper/*.fls 20 paper/*.fls
13 paper/*.fdb_latexmk 21 paper/*.fdb_latexmk
14 paper/*.bbl 22 paper/*.bbl
15 paper/*.blg 23 paper/*.blg
24+paper/*.spl
16 paper/*.synctex.gz 25 paper/*.synctex.gz
26+paper/*.run.xml
27+paper/*.bcf
28+
29+# Logs
30+logs/
31+*.log
17 32
18 # macOS 33 # macOS
19 .DS_Store 34 .DS_Store
modified README.md +26 −10
@@ -3,15 +3,15 @@
3 **UQO Working Paper No. 9** — *Decomposing the Value of Structure and Location across 3 **UQO Working Paper No. 9** — *Decomposing the Value of Structure and Location across
4 140,931 MLS Listings with High-Dimensional Neighbourhood Fixed Effects* 4 140,931 MLS Listings with High-Dimensional Neighbourhood Fixed Effects*
5 5
6−[![Paper](https://img.shields.io/badge/paper-PDF%20(26%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) 6+[![Paper](https://img.shields.io/badge/paper-PDF%20(34%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf)
7 [![Python](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](requirements.txt) 7 [![Python](https://img.shields.io/badge/python-3.11%2B-3776AB?logo=python&logoColor=white)](requirements.txt)
8 [![DuckDB](https://img.shields.io/badge/data-DuckDB%20·%20172%2C019%20listings-FFF000?logo=duckdb&logoColor=black)](data/raw/README.md) 8 [![DuckDB](https://img.shields.io/badge/data-DuckDB%20·%20172%2C019%20listings-FFF000?logo=duckdb&logoColor=black)](data/raw/README.md)
9 [![Estimation](https://img.shields.io/badge/estimation-statsmodels%20·%20linearmodels%20(AbsorbingLS)-4051b5)](src/wp9/models.py) 9 [![Estimation](https://img.shields.io/badge/estimation-statsmodels%20·%20linearmodels%20(AbsorbingLS)-4051b5)](src/wp9/models.py)
10 [![Reproducible](https://img.shields.io/badge/reproducible-end--to--end%20pipeline-2e7d32)](scripts/) 10 [![Reproducible](https://img.shields.io/badge/reproducible-end--to--end%20pipeline-2e7d32)](scripts/)
11−[![Tables verified](https://img.shields.io/badge/tables-identical%20to%20published-2e7d32)](AUDIT.md) 11+[![Tables verified](https://img.shields.io/badge/tables-identical%20to%20published-2e7d32)](docs/AUDIT.md)
12 [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca) 12 [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca)
13−[![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:contact@spboucher.ai) 13+[![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca)
14−[![Contact](https://img.shields.io/badge/contact-contact%40spboucher.ai-a02020?logo=maildotru&logoColor=white)](mailto:contact@spboucher.ai) 14+[![Contact](https://img.shields.io/badge/contact-simon--pierre.boucher%40uqo.ca-a02020?logo=maildotru&logoColor=white)](mailto:simon-pierre.boucher@uqo.ca)
15 15
16 > **TL;DR** — On 140,931 Canadian MLS listings, absorbing 1,153 neighbourhood (FSA) fixed 16 > **TL;DR** — On 140,931 Canadian MLS listings, absorbing 1,153 neighbourhood (FSA) fixed
17 > effects lifts explained log-price variance from **46% → 77%**. Location alone is worth 17 > effects lifts explained log-price variance from **46% → 77%**. Location alone is worth
@@ -21,8 +21,18 @@
21 21
22 --- 22 ---
23 23
24+## 📌 Status
25+
26+| Item | Value |
27+|---|---|
28+| Version | 1.2 (May 2026) |
29+| SSRN | [7626678](https://ssrn.com/abstract=7626678) — submitted 2026-10-17 (preliminary upload) |
30+| Journal | not yet submitted |
31+| Code & data | reproducible from `scripts/` (see Quick start); raw DuckDB snapshot not redistributed |
32+
24 ## 📖 Table of contents 33 ## 📖 Table of contents
25 34
35+0. [Status](#-status)
26 1. [What this paper does](#-what-this-paper-does) 36 1. [What this paper does](#-what-this-paper-does)
27 2. [Headline results](#-headline-results) 37 2. [Headline results](#-headline-results)
28 3. [Repository layout](#-repository-layout) 38 3. [Repository layout](#-repository-layout)
@@ -91,8 +101,8 @@ Saskatchewan, Manitoba and Newfoundland (−60 to −67%).
91 ``` 101 ```
92 wp9_uqo/ 102 wp9_uqo/
93 ├── README.md ← you are here 103 ├── README.md ← you are here
94−├── AUDIT.md forensic audit of the original project + verification 104+├── docs/ AUDIT.md (forensic audit + verification), CHANGES.md,
95−├── CHANGES.md restructuring report (what moved, what was rewritten) 105+│ PAPER_REVIEW.md, UPGRADE_REPORT.md
96 ├── requirements.txt pinned Python dependencies 106 ├── requirements.txt pinned Python dependencies
97 ├── .gitignore 107 ├── .gitignore
98 ├── data/ 108 ├── data/
@@ -120,7 +130,7 @@ wp9_uqo/
120 │ └── tables/ the 6 LaTeX tables consumed by the paper 130 │ └── tables/ the 6 LaTeX tables consumed by the paper
121 └── paper/ 131 └── paper/
122 ├── main.tex preamble + metadata; \input's the sections 132 ├── main.tex preamble + metadata; \input's the sections
123− ├── main.pdf compiled paper (26 pages) 133+ ├── main.pdf compiled paper (34 pages)
124 ├── sections/ titlepage, introduction, literature, data, 134 ├── sections/ titlepage, introduction, literature, data,
125 │ methodology, results, robustness, conclusion 135 │ methodology, results, robustness, conclusion
126 ├── references.bib 32 entries, natbib author-year, aer style 136 ├── references.bib 32 entries, natbib author-year, aer style
@@ -211,7 +221,7 @@ Alberta dominate; PEI and the territories have no listings in this snapshot.
211 221
212 The original upstream cleaning code (`RE_DB_QC/hedonic`) was **lost** before this 222 The original upstream cleaning code (`RE_DB_QC/hedonic`) was **lost** before this
213 repository was assembled; `src/wp9/sample.py` is a careful reconstruction from the 223 repository was assembled; `src/wp9/sample.py` is a careful reconstruction from the
214−paper's own data section, calibrated against every stored output (see `AUDIT.md`). It 224+paper's own data section, calibrated against every stored output (see `docs/AUDIT.md`). It
215 reproduces the published sample to **+0.86%** and all headline estimates closely — but 225 reproduces the published sample to **+0.86%** and all headline estimates closely — but
216 not to the last digit. To keep the published record intact: 226 not to the last digit. To keep the published record intact:
217 227
@@ -254,7 +264,7 @@ Tables (`results/tables/`): `summary_stats`, `regression` (M1/M2/M3/M5),
254 264
255 ## ✅ Reproduction verification 265 ## ✅ Reproduction verification
256 266
257−Full side-by-side in [`AUDIT.md`](AUDIT.md) §5. Highlights (original → reproduced): 267+Full side-by-side in [`docs/AUDIT.md`](docs/AUDIT.md) §5. Highlights (original → reproduced):
258 268
259 - Sample: 140,931 → 142,146 (+0.86%); condos match to 3 listings. 269 - Sample: 140,931 → 142,146 (+0.86%); condos match to 3 listings.
260 - R² ladder: 0.464/0.469/0.567/0.762/0.767 → 0.467/0.470/0.569/0.766/0.770. 270 - R² ladder: 0.464/0.469/0.567/0.762/0.767 → 0.467/0.470/0.569/0.766/0.770.
@@ -295,9 +305,15 @@ research agenda these imply.
295 Département des sciences administratives, Université du Québec en Outaouais 305 Département des sciences administratives, Université du Québec en Outaouais
296 Gatineau — Pavillon Alexandre-Taché, 283 boulevard Alexandre-Taché, Gatineau (QC) J9A 1L8 306 Gatineau — Pavillon Alexandre-Taché, 283 boulevard Alexandre-Taché, Gatineau (QC) J9A 1L8
297 307
298−📧 **contact@spboucher.ai** · 🌐 [spboucher.ai](https://www.spboucher.ai) 308+📧 **simon-pierre.boucher@uqo.ca** · 🌐 [spboucher.ai](https://www.spboucher.ai)
299 309
300 All code files carry the header `Author: Simon-Pierre Boucher — contact@spboucher.ai`. 310 All code files carry the header `Author: Simon-Pierre Boucher — contact@spboucher.ai`.
301 311
302 © 2026 Simon-Pierre Boucher. All rights reserved. The listing data snapshot is not 312 © 2026 Simon-Pierre Boucher. All rights reserved. The listing data snapshot is not
303 redistributed; code and paper are shared for research reproducibility. 313 redistributed; code and paper are shared for research reproducibility.
314+
315+## 🗒 Notes
316+
317+- Numbering: UQO Working Paper No. 9 since the first version (May 2026).
318+- The original flat May 2026 project (`immo-wp9-spb-20260529`) is archived in `Recherche-UQO/_archives/versions-mai-2026/grand-hedonic-model-canada--immo-wp9-20260529`; `docs/AUDIT.md` and `docs/CHANGES.md` describe how this repository was rebuilt from it.
319+- Cover page, metadata and layout follow `Recherche-UQO/HARMONISATION.md` (2026-10-17).
renamed AUDIT.md → docs/AUDIT.md +0 −0
renamed CHANGES.md → docs/CHANGES.md +0 −0
renamed PAPER_REVIEW.md → docs/PAPER_REVIEW.md +0 −0
renamed UPGRADE_REPORT.md → docs/UPGRADE_REPORT.md +0 −0
modified paper/.latexmkrc +0 −1
@@ -1,4 +1,3 @@
1−# Author: Simon-Pierre Boucher — contact@spboucher.ai
2 $pdf_mode = 1; 1 $pdf_mode = 1;
3 $pdflatex = 'pdflatex -interaction=nonstopmode -halt-on-error -synctex=1 %O %S'; 2 $pdflatex = 'pdflatex -interaction=nonstopmode -halt-on-error -synctex=1 %O %S';
4 $bibtex_use = 2; 3 $bibtex_use = 2;
modified paper/Makefile +4 −2
@@ -1,9 +1,11 @@
1−# Author: Simon-Pierre Boucher — contact@spboucher.ai 1+.PHONY: all clean distclean
2+
2 all: 3 all:
3− latexmk -pdf main.tex 4+ latexmk
4 5
5 clean: 6 clean:
6 latexmk -c 7 latexmk -c
7 8
8 distclean: 9 distclean:
9 latexmk -C 10 latexmk -C
11+ rm -f *.synctex.gz *.run.xml *.bbl *.bcf
modified paper/main.pdf +0 −0

Binary file not shown.

modified paper/main.tex +3 −2
@@ -67,8 +67,7 @@
67 140{,}931 MLS Listings with High-Dimensional Neighbourhood Fixed Effects} 67 140{,}931 MLS Listings with High-Dimensional Neighbourhood Fixed Effects}
68 \newcommand{\WPdate}{May 2026} 68 \newcommand{\WPdate}{May 2026}
69 \newcommand{\WPversion}{1.2} 69 \newcommand{\WPversion}{1.2}
70−\newcommand{\WPkeywords}{Hedonic pricing, Housing markets, Canada, Fixed effects, 70+\newcommand{\WPkeywords}{hedonic pricing, housing markets, Canada, fixed effects, spatial heterogeneity, automated valuation}
71− Spatial heterogeneity, Automated valuation}
72 \newcommand{\WPjel}{R31, R21, C21, C55} 71 \newcommand{\WPjel}{R31, R21, C21, C55}
73 72
74 \newcommand{\WPauthor}{Simon-Pierre Boucher} 73 \newcommand{\WPauthor}{Simon-Pierre Boucher}
@@ -98,6 +97,8 @@ distance to major metros, and quantile and cross-province heterogeneity in the i
98 prices. We map the resulting neighbourhood premia, which span a factor of roughly nine 97 prices. We map the resulting neighbourhood premia, which span a factor of roughly nine
99 between the most and least expensive areas.} 98 between the most and least expensive areas.}
100 99
100+\hypersetup{pdftitle={A Grand Hedonic Model of the Canadian Housing Market}, pdfauthor={Simon-Pierre Boucher}}
101+
101 \begin{document} 102 \begin{document}
102 103
103 \input{sections/titlepage} 104 \input{sections/titlepage}
modified paper/sections/titlepage.tex +15 −8
@@ -1,17 +1,17 @@
1−% Author: Simon-Pierre Boucher — contact@spboucher.ai
2 % ============================================================================ 1 % ============================================================================
3−% Title and abstract pages 2+% Title Page
4 % ============================================================================ 3 % ============================================================================
5 \thispagestyle{empty} 4 \thispagestyle{empty}
6 5
7 \begin{center} 6 \begin{center}
8 7
9−\includegraphics[width=4cm]{uq_logo.jpg} 8+% --- Logo ---
9+\includegraphics[width=3.5cm]{uq_logo.jpg}
10 10
11 \vspace{0.6cm} 11 \vspace{0.6cm}
12 12
13−{\footnotesize\textsc{Universit\'e du Qu\'ebec en Outaouais}}\\[0.15cm] 13+{\footnotesize\textsc{Université du Québec en Outaouais}}\\[0.15cm]
14−{\footnotesize\textsc{D\'epartement des sciences administratives}} 14+{\footnotesize\textsc{Département des sciences administratives}}
15 15
16 \vspace{0.8cm} 16 \vspace{0.8cm}
17 17
@@ -19,13 +19,17 @@
19 19
20 \vspace{1.2cm} 20 \vspace{1.2cm}
21 21
22+% --- Title ---
22 {\LARGE\bfseries \WPtitle\par} 23 {\LARGE\bfseries \WPtitle\par}
23 24
24−\vspace{0.4cm} 25+\ifx\WPsubtitle\empty\else
25−{\large\itshape \WPsubtitle\par} 26+ \vspace{0.3cm}
27+ {\large\itshape \WPsubtitle\par}
28+\fi
26 29
27 \vspace{1.2cm} 30 \vspace{1.2cm}
28 31
32+% --- Author ---
29 {\large \WPauthor}\\[0.3cm] 33 {\large \WPauthor}\\[0.3cm]
30 {\normalsize \WPaffiliation}\\[0.15cm] 34 {\normalsize \WPaffiliation}\\[0.15cm]
31 {\normalsize \href{mailto:\WPemail}{\WPemail}}\\[0.15cm] 35 {\normalsize \href{mailto:\WPemail}{\WPemail}}\\[0.15cm]
@@ -33,6 +37,7 @@
33 37
34 \vspace{0.8cm} 38 \vspace{0.8cm}
35 39
40+% --- Date & Version ---
36 {\normalsize \WPdate}\\[0.1cm] 41 {\normalsize \WPdate}\\[0.1cm]
37 {\small Version~\WPversion} 42 {\small Version~\WPversion}
38 43
@@ -42,7 +47,9 @@
42 47
43 \newpage 48 \newpage
44 49
45−% ---------------------------------------------------------------- abstract 50+% ============================================================================
51+% Abstract Page
52+% ============================================================================
46 \thispagestyle{empty} 53 \thispagestyle{empty}
47 54
48 \vspace*{1cm} 55 \vspace*{1cm}
49 56
Menu

Theme