SPB Git

spb/wp36_uqo

Public

This looks like a research repository (LaTeX, bibliography, figures). Preview Research Mode· enable it with research: true on the API.

History
NameLast commitUpdated
data WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
docs WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
figures WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
literature WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
paper WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
reports WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
research WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
results WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
scripts WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
src WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
tests WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
.gitignore WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
CLAIMS_LEDGER.csv WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
DECISIONS.md WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
EXPERIMENTS.md WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
Makefile WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
pyproject.toml WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
README.md WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
REPRODUCE.md WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
requirements-lock.txt WP36: audit, preregistration, pipeline, models A–F, AMLI, validation,...
STATUS.md WP36 v1.0: robustness suite, E-016 fix (first_cut NULL), final end-to-end rerun,...
README.md source

# The Hidden Dynamics of Used-Car Markets: Price Discovery, Inventory Liquidity, and Strategic Dealer Behavior

UQO Working Paper No. 36 — Evidence from a Daily Panel of 273,265 Quebec Listings

Paper Python Data Reproducible UQO Author

# TL;DR

  • Daily panel of every used-vehicle listing on 131 Quebec dealer websites, 2 full-inventory portals and 5 dealer groups, 12 Aug–1 Nov 2026 (273,265 listings, 428,484 price-log rows, 586 crawl cycles), from the aggregator Auto-Ka.
  • Depreciation of asking prices is strongly nonlinear in age and mileage (H1 supported); regional quality-adjusted premia are within ±4 % of Montréal and jointly insignificant with trim FE (p = 0.53), significant but still small with make–model FE (p = 0.004).
  • 20 % of listings get a sustained markdown (median 2.8 %); the markdown hazard rises over three weeks; overpriced vehicles are cut sooner and more deeply.
  • Competitor price cuts co-move the same day (+0.9 pp vs a 1.4 % base rate) with no lagged response; placebo null — association, not causation.
  • Listing exit ≠ sale: 94 % of exits coincide across two sources within a week, but ≥ 10 % are followed by a relisting.
  • A five-component Automobile Market Liquidity Index (AMLI) explains 56 % of common variation and its non-exit components predict next-week exits; deep markdowns load as illiquidity. No external forecasting claim.

# Status

Version 1.0, November 2026. Not yet submitted (SSRN: not yet submitted). Preregistered plan: research/analysis_plan.md (amendments in DECISIONS.md).

# What this paper does

Audits an aggregator database, builds a reproducible listing-day panel with auditable exclusions, estimates hedonic, hazard, event-study and prediction models under a preregistered plan, validates listing exit as a sale proxy, and constructs and internally validates a market-level liquidity index.

# Headline results

Hypothesis Result Evidence
H1 nonlinear depreciation Supported (χ²(12)=664; CV RMSE −2.8 %) results/hedonic/
H2 markdown hazard ↑ listing age Supported (χ²(8)=157); relative price (hedonic residual, price vs competitors) raises the hazard; competitor density unstable results/hazards/
H3 competitor response Same-day co-movement only; no lagged response; placebo null results/competition/
H4 regional premia Small (all premia
H5 relative price → exit Not supported (p = 0.42/0.54); exit validated across sources (94 % within 7 d) results/hazards/, results/validation/
H6 AMLI PCA 56 %; held-out slope 0.97 pp [0.69, 1.24] (z-scores; weaker with ranks); no external test possible results/amli/

# Repository layout

text
paper/            main.tex, sections/, appendix/, tables/, figures/, references.bib, main.pdf
src/ucml/         ingest, pricepaths, cleaning, features, hedonic, hazards, competition, prediction, amli, validation, robustness, descriptives, figures, tables, plotstyle, synthetic
scripts/          01_ingest … 13_tables (numbered pipeline)
tests/            pytest suite (synthetic fixture, no restricted data)
research/         questions.md, analysis_plan.md (preregistration)
literature/       references.bib (172 verified), evidence_matrix.csv, novelty_memo.md, search_protocol.md
reports/          data_access_audit.md, external_benchmarks_inventory.md
data/             raw/ (restricted, not committed), interim/, processed/, synthetic/
results/          machine-readable outputs per model
STATUS.md DECISIONS.md EXPERIMENTS.md CLAIMS_LEDGER.csv REPRODUCE.md

# Quick start

bash
make env && make test
make all            # data → models → tables → figures → paper  (≈45 min; needs the restricted snapshot)
cd paper && make    # PDF only

# Data

Owner-authorised read-only snapshot of the Auto-Ka production database (SQLite, 1.35 GB, SHA-256 in data/raw/*.sha256), user table dropped before transfer; VINs, URLs, free text and exact coordinates restricted to data/raw and data/interim. Not redistributed. See reports/data_access_audit.md.

# Methodology

Hedonic splines with make–model(–trim) and dealer FE (pyfixest); discrete-time cloglog and Cox hazards with dealer-clustered SEs (statsmodels, lifelines); linear-probability event study with market×week and model-year×week FE and a within-make–model placebo; LightGBM/logistic prediction with chronological, dealer and region holdouts; five-component AMLI with equal/PCA/supervised weights, dealer block bootstrap and held-out-component validation.

# Figures & tables inventory

Figures 1–10 (figures/, vector PDF + PNG): coverage, depreciation surface, durations/cuts, price paths, hazards, event study, regional map, AMLI series, AMLI validation, prediction. Tables 1–9 (paper/tables/): sources, sample construction, descriptives, hedonic (+tests), hazards, competition (+region premia), AMLI, prediction, robustness.

# Limitations

Asking prices, not transactions; exit = observed disappearance (≥ 10 % relistings); 81-day window; registry is not a random sample of dealers; H3 is association only; AMLI validated internally only.

# Citation

bibtex
@techreport{boucher2026usedcars,
  author = {Boucher, Simon-Pierre},
  title  = {The Hidden Dynamics of Used-Car Markets: Price Discovery, Inventory Liquidity, and Strategic Dealer Behavior},
  institution = {Université du Québec en Outaouais, Département des sciences administratives},
  type   = {UQO Working Paper},
  number = {36},
  year   = {2026},
  month  = {November}
}

# Author & contact

Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca

# Notes

Built under the autonomous research protocol of 2026-11-01 (mandate in docs/MANDATE.md); all substantive claims are traced in CLAIMS_LEDGER.csv.

Clone wp36_uqo

Anonymous clone and fetch. Pushing requires the owner's personal access token.

ZIP tar.gz snapshot of main
Files · main
Menu

Theme