Research Working Papers

UQO Working Papers · WP04 · v1.1

Hedonic Pricing of Short-Term Rental Properties: A Multi-Method Analysis of Airbnb Listing Prices in Quebec

Simon-Pierre Boucher

Year
2026
First release
October 2026
Latest revision
October 2026
Publication status
Working paper
PDF · 39 pages

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).

Datasets: Airbnb listings, Quebec

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

VersionDateDescriptionFile
v1.1currentOctober 2026Current manuscript as published on www.spboucher.ai (revised edition after the 2026-10-17 scientific review for papers 1–17).PDF · 39 p.