UQO Working Paper No. 2· v2.0· November 2026· 80 pages
Decoding Real Estate Descriptions: Semantic Embeddings and Hedonic Pricing of Residential Properties in Quebec
Twenty named text features add 0.030 of R² [0.026, 0.035] to a hedonic model of Quebec asking prices as a block, but they do not deliver twenty stable implicit prices: only Luxury meets the pre-stated stability criterion, and no dimension survives random rephrasings of the references.
Sentence embeddings of 16,553 single-family listings are projected onto twenty researcher-written reference descriptions and audited over a grid of specifications, encoders and 200 rephrasings. With French references in a bilingual corpus the features measure language before content: language explains 86% of the variance of the mean similarity with the baseline encoder. All coefficients are conditional associations in a single cross-section of asking prices, not causal effects of wording.
Simon-Pierre Boucher — contact@spboucher.ai
0.030 [0.026, 0.035]
R² added by the twenty similarities in the preferred specification (language indicators, 414 FSA fixed effects, corrected lot area, full-text multilingual encoder); area-cluster bootstrap 95% interval, block F(20, 413) = 48.2
+0.030 / +0.026 / +0.015 / −0.041
out-of-sample R² gain of the block under random folds, held-out forward sortation areas, held-out administrative regions, and distance-blocked folds with a 10 km buffer (Clark–West p = 0.308 for the last, where the fixed-effects models themselves collapse)
86%
share of the variance of the mean similarity explained by the language of the listing alone, with French references and the English-trained baseline encoder
+8.4% [5.8, 11.1]
English-versus-French asking-price contrast in the preferred specification; it is +44.3% conditional on structure, length and the baseline features, and +19.9% within areas with the baseline encoder
1 of 20
named dimensions meeting the pre-stated criterion (baseline sign and Holm significance in at least 90% of grid cells): Luxury, 93% of cells (91% under Romano–Wolf)
0 of 20
dimensions meeting the criterion over both the specification grid and 200 random rephrasings of the references; Luxury survives in 56% of the draws under the preferred specification
AUC 0.47–0.65
discrimination of the raw baseline similarities for their own dimension against a 300-listing sample coded by a large language model (not human-coded); centred multilingual scores reach 0.77–0.86
Abstract
Broker-written listing descriptions record housing quality that structured fields omit. We project sentence embeddings of 16,553 single-family asking-price listings from Quebec (Realtor.ca snapshot, 7–11 January 2026) onto twenty researcher-written reference descriptions and enter the cosine similarities in a semi-logarithmic hedonic model with language indicators, 414 forward-sortation-area fixed effects and unit-corrected lot area. The block adds 0.030 of R² [0.026, 0.035] in sample, +0.026 to +0.030 out of sample with held-out listings or areas, +0.015 with held-out regions, and −0.041 under distance-blocked folds (Clark–West p = 0.308). In a bilingual corpus the features measure language before content: with monolingual references, language explains 86% of their variance, and English listings are priced +8.4% higher within areas (preferred specification). One named coefficient (Luxury) meets a pre-stated stability criterion across specifications and encoders; none meets it over both that grid and 200 random rephrasings of the references. Anchor-based semantic projection yields block-level information, not twenty implicit prices.
JEL: R31, C45, C21, R21
Key Results
An audit of anchor-based semantic projection for hedonic inference
The construction itself is known (semantic projection, relative representations); the paper quantifies what fixed, named anchors deliver in a housing application: a block of information that survives language controls, area fixed effects, corrected size variables and area-grouped cross-validation, but not twenty stable implicit prices.
The language confound of monolingual anchors in a bilingual corpus
59% of the descriptions are French and 41% English, and the references are French. Language explains 86% of the variance of the mean similarity with the baseline encoder, and the English contrast, re-estimated with the indicator entered unscaled, falls from +44.3% to +8.4% [5.8, 11.1] in the preferred specification.
Truncation as a second confound in the encoder comparison
The multilingual encoder cuts 61.0% of French and 60.6% of English descriptions at 128 word-pieces on the first-version sample, symmetrically; full texts are therefore encoded by chunk-and-pool in every preferred specification.
A pre-specified survival analysis instead of a robustness table
The twenty coefficients are estimated over eleven specifications and five encoder variants (55 cells) with Holm and Romano–Wolf adjustment, then over 200 random rephrasings of the references; the block's R² gain is stable (standard deviation at most 0.0044 across rephrasings) while the individual coefficients are not.
Why named coefficients move: span invariance
Fitted values depend only on the span of the reference embeddings, so any invertible recombination of the references leaves the fit unchanged (verified numerically to 1 × 10⁻¹⁶ in R²) and reparametrises the coefficients; each coefficient prices the part of one reference orthogonal to the other nineteen.
Out-of-sample designs ranked by distance to the training data
The gain is +0.030 with random folds, +0.026 with held-out areas, +0.015 with held-out regions and −0.041 with a 10 km distance buffer, so the claim of generalisation holds for held-out areas and regions, not for areas with no nearby training listing.
Peer review
This paper went through a multi-referee review: 6 referee reports and 86 review items. The version presented on this page is the revised manuscript. Scores are on a 0–100 scale and are a diagnostic of the manuscript, not an acceptance probability.
Score after revision
68.9/100
56.4 before review · +12.5
Review dated November 4, 2026
- Review decision
- major revision
- Scientific integrity
- PASS
- Reproducibility
- R1reproduced from documented analysis data
- Maturity
- Bone revision cycle from submission
- Referee reports
- 6
- Review items
- 86
Scores by dimension
Before reviewAfter revision
- Originality & contribution55.3 → 58.0
- Scientific rigor56.2 → 72.0
- Identification & methodology55.8 → 62.0
- Data & reproducibility54.2 → 74.0
- Robustness & validation55.5 → 75.0
- Writing69.5 → 75.0
- Figures & tables62.2 → 80.0
- Literature positioning52.5 → 72.0
Revised manuscript80 pages16 figures32 tables13 equations87 references31,092 words
What the review changed
Peer review turned the paper from a claim about twenty interpretable implicit prices into an audit of the method. The headline is now the block-level gain in a specification with language, area fixed effects and corrected lot area; the English-premium figures were re-estimated per unit of the indicator, and the claim of five robust dimensions was withdrawn.
- Headline fit: adjusted R² 0.452 → 0.511 from the semantic block → 0.030 of R² [0.026, 0.035] added in the preferred specification, on a main sample of 16,553 listings instead of 17,087 (534 records without a real description excluded)
- English premium: “+19.5%” and “+9.1%” (per standard deviation of a z-scored indicator) → per-unit contrasts of +44.3% and +19.9% with the baseline encoder, and +8.4% [5.8, 11.1] in the preferred specification
- Five dimensions robust across all specifications and both encoders → one (Luxury) meets a pre-stated 90% multiplicity-adjusted criterion, and none over both the specification grid and 200 random rephrasings
- Out-of-sample evidence: one cross-validation split → four designs with repetitions: +0.030 random, +0.026 held-out areas, +0.015 held-out regions, −0.041 distance-blocked (Clark–West p = 0.308)
- Motivated Seller discount of −8.5% → −2.9% [−7.0, +1.3] with language controlled and 0.0% [−2.8, +2.8] in the preferred specification; the data do not establish a discount
- Data described as a single-day extraction → a snapshot of active Realtor.ca listings extracted 7–11 January 2026, with prices stated as asking prices in the abstract
Limitations stated in the paper
- Prices are asking prices from a stock of active listings in one cross-section (January 2026); transaction-based coefficients could differ, and the stock over-represents slow-selling listings.
- The coefficients are conditional associations: text and price are jointly determined by the broker, and the design cannot separate information, positioning and omitted-location channels.
- The validation labels were coded by a large language model, not by human coders; a human two-coder replication was not carried out.
- The out-of-sample gain does not extend to areas with no training listing within 10 km (−0.041), and the persistent deposit of the text-free data and code was still pending.
Data
Quebec single-family asking-price listings
16,553 listings with usable descriptions (9,817 French, 6,733 English, 3 mixed) in 414 forward sortation areas, 1,061 municipalities and 17 administrative regions, extracted from the public pages of Realtor.ca between 7 and 11 January 2026. It is a snapshot of active listings: prices are asking prices, with no sale price or listing date.
Sample audit
The first-version sample of 17,087 listings is kept for reproduction; the main sample excludes 534 records with no real description (placeholders or fewer than 100 characters). 363 listings share coordinates and price with another listing; a de-duplicated sample of 16,375 listings and a floor-area subsample of 6,069 listings are used as checks.
Reference descriptions and encoders
Twenty French reference texts, one per qualitative dimension, embedded with all-MiniLM-L6-v2 (256 word-piece limit) and paraphrase-multilingual-MiniLM-L12-v2 (128 word-piece limit), the latter applied to full texts by chunk-and-pool; model revisions are pinned.
Validation samples coded by a language model
A 300-listing language sample and a 300-listing dimension sample were coded by two independent passes of a large language model; they are labelled as LLM-coded throughout and a human two-coder replication was not carried out.
Methodology
Reference-based cosine projection
Each listing embedding is compared by cosine similarity with the embeddings of twenty reference descriptions; the twenty similarities enter a semi-logarithmic hedonic model of asking price as named regressors, with coefficients read per 0.10 of cosine.
Preferred specification
Language indicators entered unscaled, 414 forward-sortation-area fixed effects, unit-corrected lot area, missing-value indicators, full-text multilingual embeddings, and standard errors clustered by area; block tests use F(q, G−1) and an area-cluster bootstrap interval for the R² gain.
Multiplicity-adjusted survival over specifications, encoders and phrasings
A criterion written before the run (baseline sign and Holm significance in at least 90% of cells) is applied over the specification-by-encoder grid and over 200 random rephrasings of the references, with Romano–Wolf adjustment as a second standard.
Four cross-validation designs
Random five-fold and area-grouped folds (twenty repetitions each), leave-one-region-out and distance-blocked folds with a 10 km buffer, with fixed effects estimated on training folds and Clark–West tests of the block's increment.
Language decomposition and remaining checks
Per-unit English contrasts across specifications and encoders, an order-free decomposition of R² (language 9.6% and the similarities 12.3% in the first-version specification), spatial diagnostics of the residuals (Moran's I, Conley standard errors), reparametrisations of the references and a principal-components benchmark.
Reproducibility
- The replication package contains the code under an MIT licence, the pinned encoder revisions and the checksums of every input; every number in the paper is produced by the scripts from the raw database.
- The first-version baseline (Models A–E) is reproduced in an appendix so that every number of the first version can be regenerated and compared with the revised design.
- A data availability statement lists the text-free analysis data (identifiers, prices, structural fields, geography, description length, language labels, the similarities under every encoder variant, the reference embeddings) from which every table can be regenerated; these files (about 42 MB) are generated by the scripts and are not in the committed repository.
- The listing texts, their embeddings and the raw database are not redistributed, under the terms of use of the platform.
- A persistent deposit of the text-free data and code with a DOI was pending at the time of writing; until then a third party needs the author's copy of the analysis files to reproduce the paper.
Cite this paper
Boucher, S.-P. (2026). Decoding Real Estate Descriptions: Semantic Embeddings and Hedonic Pricing of Residential Properties in Quebec. UQO Working Paper No. 2, Université du Québec en Outaouais.
@techreport{boucher2026wp2,
author = {Simon-Pierre Boucher},
title = {Decoding Real Estate Descriptions: Semantic Embeddings and Hedonic Pricing of Residential Properties in Quebec},
institution = {Université du Québec en Outaouais, Département des sciences administratives},
number = {2},
type = {UQO Working Paper},
year = {2026},
month = {nov},
url = {https://www.spboucher.ai/research/wp2},
}More in Real Estate & Urban Economics