UQO Working Papers · WP04 · v1.1
Hedonic Pricing of Short-Term Rental Properties: A Multi-Method Analysis of Airbnb Listing Prices in Quebec
- Year
- 2026
- First release
- October 2026
- Latest revision
- October 2026
- Publication status
- Working paper
A quarter of scraped Airbnb prices were not nightly rates at all
A two-regime mixture of hedonic regressions isolates 976 stay-price listings; on the 2,480 nightly prices that remain, capacity, bathrooms, photos and rating are priced, Superhost and Guest Favourite badges are not, and gradient boosting lifts out-of-sample R² from 0.47 to 0.56.
Abstract
This paper estimates hedonic price functions for a province-wide cross-section of Airbnb listings in Quebec, Canada, from a scrape of 5,000 listing cards collected in early 2026 (3,456 with a displayed price). The displayed price field is bimodal: about 28% of priced listings, mostly small Montreal rental units, show the total price of a stay of roughly three weeks rather than a nightly rate. A two-regime mixture of hedonic regressions estimated by EM separates the two populations sharply and leaves 2,480 nightly prices, on which all estimation is based.
A semi-logarithmic hedonic model with city fixed effects, estimated with heteroskedasticity-robust and clustered standard errors, explains 51% of the variance of log prices. Guest capacity (elasticity 0.33), bathrooms (0.44) and bedrooms (0.16), a shared bathroom (−32%), the number of photos, the displayed rating (3.4% per tenth of a point) and local listing density are the priced attributes; the Superhost and Guest Favourite badges carry no premium conditional on capacity, type and location. Quantile regressions show that cheap listings are priced per guest and certified by reviews, whereas expensive listings are priced per room and are cheaper when heavily reviewed.
Spatial lag, error and Durbin models find moderate spatial dependence (ρ̂ ≈ 0.20, λ̂ ≈ 0.28) with direct impacts within a few percent of the OLS coefficients. Gradient-boosting models raise the out-of-sample R² from 0.47 to 0.56 under random cross-validation and from 0.41 to 0.48 when whole areas are held out, and their SHAP decomposition ranks the same attributes as the hedonic model. The paper provides the first provincial hedonic evidence for Quebec's short-term rental market and a template for detecting and handling stay-price contamination in scraped platform prices.
Key findings
5,000
Airbnb listing cards scraped, 3,456 with a price
28%
priced listings showing a stay total, not nightly
2,480
nightly-price listings used in every estimation
51%
log-price variance explained with city fixed effects
−32%
price discount for a shared bathroom
0.56 vs 0.47
out-of-sample R², XGBoost vs OLS, random folds
Scientific contributions
- Diagnosing stay-price contamination
- Log prices are bimodal and a two-regime mixture of hedonic regressions (EM, intercept shift δ̂ = 3.15 log points, about 23 nights) classifies 976 of 3,456 priced listings as stay totals; a ratio of medians by bedroom count is enough to detect the defect.
- Implicit prices of a nightly rate
- On the 2,480 nightly prices, elasticities are 0.33 for guests, 0.44 for ln(1 + bathrooms) and 0.16 for bedrooms; a shared bathroom costs 32%, the rating adds 3.4% per tenth of a point, and the Superhost and Guest Favourite badges are insignificant.
- Pricing rules differ along the distribution
- The bedroom elasticity rises from 0.01 at τ = 0.10 to 0.19 at τ = 0.90 and the review-count coefficient falls from +0.042 to −0.042: cheap listings are priced per guest and certified by reviews, expensive ones per room.
- Spatial dependence does not bias the coefficients
- SAR, SEM and SDM estimates give ρ̂ = 0.20–0.26 and λ̂ = 0.28 with a spatial multiplier of about 1.25, but LeSage–Pace direct impacts stay within a few percent of OLS.
- Machine learning refines the hedonic surface
- XGBoost reaches R² 0.559 against 0.473 for OLS under random 5-fold cross-validation and 0.483 against 0.407 under spatially blocked folds; SHAP ranks capacity first and badges last, as the hedonic model does.
- Version 1.0 results retracted in full
- Every estimate of the first version was computed on the contaminated mixture and on constructed regressors; none survives, and the corrections are documented so that the lesson transfers to other scraped platform prices.
Methodology
Methodology (5)
Price-regime mixture
A marginal normal mixture of log prices followed by a two-regime mixture of hedonic regressions estimated by EM with common slopes, a regime-specific intercept and variance and a logistic regime equation; posterior below 0.5 defines the analysis sample.
Nested semi-log hedonic OLS
Five nested specifications (M1–M5) adding structural, presentation, host-reputation and location blocks plus city or spatial-cell fixed effects, with HC3 and group-clustered standard errors, Kennedy premia, VIF and block F-tests.
Quantile regression
The M5 specification re-estimated at τ ∈ {0.10, 0.25, 0.50, 0.75, 0.90} with fixed effects; paired bootstrap (B = 100) tests of the τ = 0.90 − τ = 0.10 differences.
Spatial econometrics
k-nearest-neighbour weights (k = 5, 10) on projected coordinates, Moran's I, SAR, SEM and SDM by maximum likelihood, likelihood-ratio tests and LeSage–Pace impacts with simulated standard errors.
Machine-learning benchmarks
OLS, elastic net, random forest, gradient boosting, XGBoost and LightGBM compared under 5-fold random and spatially blocked (20 blocks) cross-validation on R², RMSE, MAE and MdAPE, with exact TreeSHAP for XGBoost and a 12-variant robustness table.
Research data
- Quebec Airbnb search-card scrape
- 5,000 Airbnb search-result cards for Quebec collected in early 2026 with 19 fields (title, city, property-type label, displayed price, rating, bedrooms, bathrooms, guests, amenity count, photos, reviews, Superhost, Guest Favourite, pets, coordinates); 1,544 cards carry no price. The committed parquet holds the 3,456 priced cards; the script parses titles to recover ratings and repair 465 bathroom and 63 bedroom counts, then classifies cards into the nightly or stay-price regime (2,480 nightly).
Reproducibility
- One script, scripts/10_revision_reanalysis.py, produces every table, figure and quoted number of v1.1 in about 10 minutes on an Apple-silicon laptop; no table is typed by hand
- Committed input data/processed/airbnb_clean_wp5.parquet (3,456 priced cards) and the generated analysis sample of 2,480 listings
- Key numbers in results/tables/rev_key_numbers.json; six regenerated figures; the v1.0 pipeline is kept unchanged for the record
- Full LaTeX source with 50 Crossref-verified references; pre-revision PDF, review report and changelog in docs/
Research artifacts
Version history
| Version | Date | Description | File |
|---|---|---|---|
| v1.1current | October 2026 | Current manuscript as published on www.spboucher.ai (revised edition after the 2026-10-17 scientific review for papers 1–17). | PDF · 39 p. |