# Editorial-board review — UQO Working Paper No. 4 **Hedonic Pricing of Short-Term Rental Properties: A Multi-Method Analysis of Airbnb Listing Prices in Quebec** Version reviewed: 1.0 (May 2026, never audited) → revised version 1.1 (October 2026). Reference state: git tag `pre-revision-20261017`, `docs/main_pre-revision-20261017.pdf` (28 pages). Companion document: `docs/CHANGELOG-REVISION.md` (audit trail of every change, references added, scripts run). ## 1. Summary verdict The v1.0 manuscript was not a publishable paper; it was a pipeline report whose text had been written around whatever the code produced. The code, run on a data set whose fields had been misdescribed, produced numbers that no referee would accept and several that were not results at all: 1. **The dependent variable was contaminated.** The displayed price field is bimodal on the log scale (modes near \$150 and \$2,500; 26.5 % of the 3,456 priced listings above \$1,000). Bedroom by bedroom, listings above \$1,000 are priced 16–19 times those below: the upper mode records the total price of multi-night stays (about 23 nights), concentrated among small Montreal rental units with few reviews. v1.0 modelled the mixture as if it were a nightly price and obtained $R^2$ of 0.05–0.27, a "has reviews" coefficient of 9.5 log points, a "bedrooms" premium of +213 % and a Winsorisation band of \$38–\$10,822 for "nightly" prices. 2. **Five regressors were fabricated or mislabelled.** The "luxury", "business travel", "family comfort", "leisure" and "remote work" amenity indices were the normalised amenity count plus Gaussian noise (σ = 0.05, `src/amenities.py`, `_proxy_indices_from_count`); the "business travel index −68.5 %" result is noise. "Entire home / private room / shared room" were relabelled property-type groups ("Rental unit" → "private room", "Other" → "shared room"); the scrape has no room type. "Multi-listing host" was a duplicated-title proxy; `host_professional_dummy` was a constant zero. 3. **Several reported analyses had not been executed as described.** The spatial section contained no estimate (spreg was absent; fallbacks ran and nothing was reported); "CatBoost" and "GAM" were sklearn fallbacks; SHAP was a permutation importance (no SHAP table or figure was ever produced); MAPE was computed on log prices (the "14.3 %" is meaningless). 4. **The decomposition table was arithmetically impossible** (mean predicted log price 3.99 vs actual 5.87, intercept 0, location and text components identically 0, residual mean 1.16 for an OLS with intercept): the feature-group keys did not match the model's blocks. 5. **The design matrix contained exact duplicates** (`is_superhost` = `superhost_flag`, `is_guest_favorite` = `guest_favorite_flag`, `log_beds` = `log_bedrooms`) and an exhaustive set of "room-type" dummies plus a constant; the quantile table's three "room-type" coefficients of ≈ 1.0 are pseudo-inverse artefacts. A K-means cluster label was used as a continuous regressor ("Spatial cluster −1.3 %"). The M8/M9 sample (N = 1,906) was selected on having a priced neighbour within 500 m. 6. **The data source was misattributed** (Inside Airbnb with amenity lists, host profiles, descriptions, calendars) and the text referred to "seasons" in a single cross-section. The paper has been rebuilt from the data up: the price-regime problem is modelled explicitly (two-regime mixture of hedonic regressions, EM), the structured card title is parsed to recover the rating, bathrooms, studios and title category, a parsimonious hedonic specification with city fixed effects is estimated with HC3 and clustered inference, quantile, SAR/SEM/SDM (with LeSage–Pace impacts) and five learners under random and spatially blocked cross-validation are run for real, and every number in the text is produced by `scripts/10_revision_reanalysis.py`. The revised paper is an honest, internally consistent hedonic study of a sparse scrape; its contribution is the Quebec evidence plus the measurement lesson. ## 2. Section-by-section diagnosis (v1.0 → v1.1) | Section | Strengths (v1.0) | Weaknesses / errors found | Action | |---|---|---|---| | Abstract | Clear structure | Claims SHAP, CatBoost, spatial models and "amenity indices" that were not estimated/not real; R² 0.052–0.274 on a contaminated variable; "comprehensive" | Rewritten around the regime diagnosis and the verified results | | 1 Introduction | Rosen–Lancaster framing; four research questions | Literature thin and partly misattributed (Gibbs amenity result cited to the dynamic-pricing paper; Chen & Xie dated 2020; Chattopadhyay & Machemehl 2006 unverifiable; Dogru & Pekin grey literature); "49 features"/"50 parameters"/60 rows in appendix; Quebec gap not established (Deboosere et al. 2019 Montreal absent) | Rewritten; literature enriched (32 verified additions, 3 removals); contribution reframed as evidence + measurement | | 2 Data | Cleaning steps listed; summary tables | Source misdescribed; bimodality not noticed although mean \$1,115 vs median \$219 and P75 \$1,139 were printed; "0–100 → 0–5 rating conversion" false; "entire home 48.1 %" false; amenity indices fabricated; 810 missing ratings treated as if all in the priced sample; text embeddings of a templated title | New §2: scrape content, title parsing, price-field diagnosis (mixture + regime table + figure), analysis sample, descriptives, data limits | | 3 Methodology | Equations for OLS, QR, SAR/SEM/SDM, Moran's I | No equation for FE or for the premium correction; reputation score formula ad hoc; Haversine/BallTree detail without purpose; "M9 identical to M8"; random train/test split; MAPE on logs; no impacts | New §3: hedonic equation with FE, Kennedy correction, inference, QR with bootstrap, W on projected km, SAR/SEM/SDM + LR test + impacts, random vs blocked CV, SHAP, mixture model | | 4 Results | — | Every table affected by items 1–5 above; decomposition impossible; spatial section without numbers; quantile table collinear; "11.1 % per 0.1 rating point" from a coefficient of 1.05 on a 0–5 scale under the contaminated sample | Entirely regenerated: 7 tables, 4 figures, all from one script | | 5 Robustness | Several dimensions considered | Property-type subsamples labelled "room type"; price-segment regressions condition on the dependent variable; "Ultra-Luxury (> \$1,000)" is the stay regime; adj. R² 0.08–0.10 on a different spec than the main model; "stable" claims without a table | New §5: regime cut-offs, price-rule samples, weighting, hotel exclusion, Montreal/outside, trimming, 60-cell FE, alternative W | | 6 Conclusion | Lists limitations | Repeats the contaminated magnitudes; admits fallbacks only in passing ("CatBoost, pygam, SHAP, PySAL were unavailable") | Rewritten | | Appendix | Full coefficient table | 60 rows for "50 covariates", duplicates, pinv artefacts | Variable definitions, regime logit, VIF | ## 3. Methodology verdicts (master prompt §3) | Point | Verdict | |---|---| | Specification justified | v1.0: no — 60 regressors incl. duplicates, noise indices, cluster label as continuous. v1.1: parsimonious semi-log with capacity in logs, title category, presentation, reputation, two location variables, city/cell FE; blocks justified in §3.1. | | Estimation assumptions explicit | v1.1 states the semi-log form, the conditional-association reading, HC3 and clustering, the mixture model's assumptions (common slopes, regime-specific variance, logistic concomitant). | | Variables correctly defined | v1.0: no (see §1). v1.1: Appendix A lists each variable and its source (field vs title). | | Fixed effects appropriate | v1.0: none (K-means label as continuous). v1.1: city FE (cities ≥ 15 listings) + 25 cells for the scattered remainder; 60-cell FE as robustness; FE share of SHAP importance reported. | | Spatial/temporal dependence | v1.0: spatial models not estimated. v1.1: Moran's I on M4/M5 residuals (k = 5, 10), SAR/SEM/SDM by ML on projected-km KNN W, LR test SDM vs SAR, direct/indirect/total impacts with simulated SEs. Temporal: none possible (single cross-section), stated. | | Standard errors | v1.0: HC3 only. v1.1: HC3 + clustered by FE group (and by 60 cells in the JSON), kernel SEs for QR, bootstrap for inter-quantile differences, simulated SEs for impacts. | | Sample construction transparent | v1.1: 5,000 → 3,456 priced → mixture classification → 2,480; every step counted; 465 bathroom and 46 bedroom repairs, 456 unrated, 37 truncated ratings documented. | | Robustness addresses genuine threats | v1.1: the regime classification (cut-offs 0.25/0.75, \$600/\$1,000 rules, weighting, full sample), composition (hotels, Montreal), outliers (trimming), FE granularity, W choice. | | Coefficient interpretation | v1.1: elasticities for logs, Kennedy-corrected premia for dummies, rating per 0.1 point, impacts for spatial models, SHAP as attribution not effect. | | Statistical vs economic significance | v1.1 distinguishes precisely estimated small premia (badges) from large ones (capacity, shared bath). | | Causal claims | None; §3.1 and §6 state the conditional-association reading explicitly. | ## 4. Literature **Removed (unverifiable or inappropriate):** Chattopadhyay & Machemehl (2006, *Transportation*) — no Crossref record for the cited article; Dogru & Pekin (2017, *Boston Hospitality Review*) — grey literature, no DOI; Apley & Zhu (2020) — not used. **Corrected:** Chen & Xie — 2017 (not 2020), IJCHM 29(9); Magno, Cassia & **Ugolini** (2018) — third author was wrong; Gibbs et al. — the amenity/hedonic result is Gibbs, Guttentag, Gretzel, Morton & Goodwill (2018), *JTTM* 35(1), DOI 10.1080/10548408.2017.1308292, not the dynamic-pricing paper (kept separately as `Gibbs2018dynamic`); Pérez-Sánchez given name (V. Raúl); Zhang first author (Zhihua). **Added (32, all Crossref-verified with DOI unless noted):** Malpezzi 2003 (10.1002/9780470690680.ch5); Sirmans, Macpherson & Zietz 2005 (10.1080/10835547.2005.12090154); Kuminoff, Parmeter & Pope 2010 (10.1016/j.jeem.2010.06.001); Bishop et al. 2020 (10.1093/reep/reaa001); Teubner, Hawlitschek & Dann 2017 (10.22381/JSME5420173); Ert, Fleischer & Magen 2016 (10.1016/j.tourman.2016.01.013); Zervas, Proserpio & Byers 2017 (10.1509/jmr.15.0204) and 2021 (10.1007/s11002-020-09546-4); Gyódi & Nawaro 2021 (10.1016/j.tourman.2021.104319); Tong & Gunter 2022 (10.1080/13683500.2020.1718619); Cai et al. 2019 (10.3727/108354219X15525055915554); Sainaghi, Abrate & Mauri 2021 (10.1016/j.ijhm.2020.102709); Voltes-Dorta & Sánchez-Medina 2020 (10.1016/j.jhtm.2020.08.015); Lorde, Jacob & Weekes 2019 (10.1016/j.tmp.2019.03.006); Dudás et al. 2017 (10.15196/RS07108); Kakar et al. 2018 (10.1016/j.jhe.2017.08.001); Ikkala & Lampinen 2015 (10.1145/2675133.2675274); Guttentag 2015 (10.1080/13683500.2013.827159); Farronato & Fradkin 2022 (10.1257/aer.20180260); Deboosere et al. 2019 (10.1080/21681376.2019.1592699); Combs, Kerrigan & Wachsmuth 2020 (10.36939/cjur/vol29no1/art274); Wachsmuth & Weisler 2018 (10.1177/0308518X18778038); Barron, Kung & Proserpio 2021 (10.1287/mksc.2020.1227); Halvorsen & Palmquist 1980 and Kennedy 1981 (AER; verified via RePEc records, no DOI); MacKinnon & White 1985 (10.1016/0304-4076(85)90158-7); Cameron & Miller 2015 (10.3368/jhr.50.2.317); Koenker & Hallock 2001 (10.1257/jep.15.4.143); Elhorst 2010 (10.1080/17421770903541772); Lundberg et al. 2020 (10.1038/s42256-019-0138-9); Roberts et al. 2017 (10.1111/ecog.02881). **Retained and re-verified (18, including the corrected Chen & Xie 2017):** Rosen 1974; Lancaster 1966; Wang & Nicolau 2017; Gibbs et al. 2018 (dynamic); Pérez-Sánchez et al. 2018; Zhang et al. 2017; Gunter & Önder 2018; Benítez-Aurioles 2018; Magno et al. 2018; Koenker & Bassett 1978; LeSage & Pace 2009; Anselin 1988; Lundberg & Lee 2017; Breiman 2001; Friedman 2001; Chen & Guestrin 2016; Zou & Hastie 2005. References: 21 (v1.0, 2 unverifiable) → 50 (v1.1, all verified). ## 5. Results: inconsistencies found in v1.0 and what replaces them - Abstract/text/README/tables agreed on N = 5,000 / 3,412 / 1,906 and R² 0.052–0.274 but disagreed on the number of regressors (49 features, 50 parameters, 60 appendix rows); the appendix contained duplicated regressors with split pseudo-inverse coefficients (`is_superhost` −0.065 vs `superhost_flag` +0.060). - "Has reviews" β = 9.511 (premium "> 1,000 %") arose because the M4+ samples required a non-missing rating, making the indicator almost collinear with the constant; the "review component" of the decomposition (mean 6.40) was this artefact. - The quantile table's "Is entire home / private room / shared room" coefficients of ≈ 1.0 at every τ were the equal split of the constant across an exhaustive dummy set. - Spatial section: text claimed "coefficients qualitatively similar … mild spatial bias" without a single number. - ML: MAPE 14.3 % was |Δ ln p| / ln p; "CatBoost" and "GAM" were sklearn fallbacks; the test set (382) came from one random split. - Robustness: "adjusted R² 0.083–0.098" referred to a 9-regressor spec, not the 50-regressor main model; price-segment regressions conditioned on the dependent variable. **Replaced by (all verified, `rev_key_numbers.json`):** nightly-regime sample N = 2,480; M1–M5 R² 0.443/0.454/0.461/0.479/0.509; M5 elasticities guests 0.331 (0.037), ln(1+bathrooms) 0.437 (0.070), bedrooms 0.160 (0.042); shared bath −0.385 (−32 % Kennedy); studio +0.147; chalet +0.099 (10.3 %), house +0.079 (8.1 %); ln photos 0.087; ln amenities 0.094; rating 0.337/point; Superhost 0.023 n.s.; Guest Favourite −0.035 n.s.; ln reviews 0.015 n.s.; ln density 0.064; ln distance −0.035 (10 %). Clustered SEs (51 groups) 20–60 % larger for capacity/location. VIF max 4.2. FE-only R² 0.13. Quantiles: pseudo-R² 0.278→0.405; bedrooms 0.014→0.187 (Δ = 0.17, p = 0.08); bathrooms 0.241→0.551; guests 0.374→0.307; ln reviews +0.042→−0.042 (Δ p < 0.001); Superhost +0.081 at τ = 0.10 only. Moran's I: ln p 0.244, M4 residuals 0.126 (z = 10.8), M5 residuals 0.072 (z = 6.2). SAR ρ̂ = 0.200 (0.022), SEM λ̂ = 0.284 (0.028), SDM ρ̂ = 0.261 (0.028); LR SDM vs SAR χ²(20) = 52.8; SAR multiplier 1.25; direct/coefficient ratio 1.006. CV (random | blocked): OLS-M5 0.473 | 0.407; XGBoost 0.559 | 0.483; MdAPE 26–30 %. SHAP shares: guests 20.9 %, bedrooms 9.8 %, density 8.9 %, FE 8.8 %, bathrooms 8.8 %, reviews 8.6 %, rating 6.6 %. ## 6. Verified results vs proposed analyses Everything reported in v1.1 was executed (`scripts/10_revision_reanalysis.py`, 172 s plus a 6-minute bootstrap cached in `rev_iq_bootstrap.json`). **Recommended but not executed:** (i) Hartigan dip test of unimodality (package not installed; the mixture and the median-ratio table make the point); (ii) a concomitant-variable mixture with city fixed effects in the regime equation; (iii) Conley HAC standard errors (the FE-cluster and 60-cell-cluster SEs are reported instead; `KEY.ols.M5_cluster_cell60` is in the JSON but not in a table); (iv) a GWR / spatially varying-coefficient model for the Montreal vs resort heterogeneity; (v) hyper-parameter tuning of the learners by nested CV (fixed, documented settings were used); (vi) SHAP interaction values; (vii) a hedonic model on the stay-regime listings with the implied stay length as an offset (not identified without stay dates). ## 7. Remaining limitations Asking prices on one day; cleaning fee, room type, host ID, amenity list, minimum stay unobserved; no stay length for the 28 % stay-regime cards (dropped, not corrected); single cross-section (no seasonality despite the v1.0 wording); scrape coverage; city FE for 54 % of listings only (the rest in 25 cells); the ≤ \$31 winsorisation floor inherited from the WP 5 cleaning affects 35 listings; Montreal sub-sample small (N = 506). ## 8. Continuity with the research programme Terminology aligned with WP 1/9/11 ("hedonic price function", "implicit price", "neighbourhood fixed effects", "out-of-sample", MdAPE); the WP 5 price-field diagnosis is cited as the companion paper (UQO WP 5) and extended (mixture of regressions instead of a \$1,000 rule, with the rule shown to bias the capacity elasticity to zero). No paragraph is reused from WP 5. ## 9. Maturity for publication - **Target journals:** *Journal of Housing Economics* (short paper), *Tourism Economics*, *International Journal of Hospitality Management*, *Journal of Real Estate Research*, *Current Issues in Tourism*; *Regional Science and Urban Economics* only if the spatial heterogeneity (Montreal vs resort) is developed further. - **Risks of rejection:** (i) data sparseness (no room type / host ID / amenity list) — a referee may ask for a re-scrape with these fields; (ii) the stay-price contamination, now modelled, will still invite the question "why not re-scrape with dates?"; (iii) a single cross-section of asking prices limits the contribution to descriptive hedonics; (iv) the ML section is a benchmark rather than a method contribution. - **Verdict:** publishable as a careful descriptive hedonic working paper with a genuine methodological lesson on scraped prices; before journal submission, a re-scrape recording search dates, stay length, room type and host ID is strongly recommended, after which the mixture model becomes a validation exercise rather than a necessity. Not yet SSRN-posted; v1.1 is suitable for posting.