SPB Git

spb/wp36_uqo

Public
5.4 KB

# DECISIONS — methodological decisions and rejected alternatives (WP36)

ID Date Decision Alternatives rejected Rationale / evidence
D-001 2026-11-01 Use an owner-authorised read-only .backup of the production SQLite DB as the single raw source; no scraping, no public-API use. Re-crawling dealer sites; calling /api/* Direct authorised export is strictly richer (price_log, sync_log) and lawful; robots.txt disallows /api/.
D-002 2026-11-01 Drop the users table on the production node before transfer; treat VIN, URL, images, description, exact GPS as restricted (never committed/released). Keep full copy Personal-information minimisation (Phase 0 §6 governance).
D-003 2026-11-01 Dynamic analyses (H2, H3, H5, AMLI) use the dynamic sample = direct dealer sites + full-inventory portals (otogo, autousagee) + banners, excluding sampled portals (autotrader, cargurus), the private-seller marketplace (kijiji), flickering/failed connectors (leprixdugros, albioccasion, baiecomeaugm, septilesgm, stjeromeautodepot, excelmoto) and uid classeauto:-98. Use all sources Sampled portals create spurious exits (78 % of cargurus exits < 1 day); flicker shares 0.52–0.94 for excluded connectors (audit §5).
D-004 2026-11-01 Listing exit = last observation followed by ≥ 7 days of absence before the snapshot (else right-censored at last_seen). Exit is labelled "observed disappearance", never "sale". 2-miss rule of the platform (≈ 7 h) Reactivation share up to 0.44 on otogo; a 7-day confirmation window makes flicker negligible; sale is unobserved.
D-005 2026-11-01 Sustained price paths: a price level lasting < 48 h that reverts to the immediately preceding price is removed (A→B→A transient); uids with ≥ 3 such reversions are flagged "oscillating" and excluded from markdown analyses (kept in hedonics with first sustained price). Use raw price_log Oscillation artefacts (e.g. otogo:1694844 alternating twice a day) would be counted as markdowns and rises.
D-006 2026-11-01 H3 is estimated as an association (event-study / distributed lags with market×time and product×time controls) and explicitly not causal. Causal claims via IV No credible exogenous variation in competitor repricing; reflection problem.
D-007 2026-11-01 H6: AMLI is constructed and validated internally (component coherence, leave-one-component-out predictive checks, bootstrap CIs, regional cross-sections) ; external forecasting tests are declared infeasible for a 81-day panel. Regress AMLI on monthly StatCan series ≤ 3 monthly overlapping points; any "forecasting power" claim would be unsupported.
D-008 2026-11-01 Left-censored stock (listings already active at the first crawl, 2026-08-12) is excluded from duration-based hazards (unknown entry date) but kept for hedonics; sensitivity: include with entry = first_seen (lower bound). Treat first_seen as entry for all Day-1 stock (≈ 46 k) has unknown listing age.
D-009 2026-11-01 Vehicle age measured in years as (listing date − (model year − 1, Sept 1)) ... see analysis plan; mileage in 10 000 km; splines for both. Model year dummies only Continuous age needed for the depreciation surface.
D-010 2026-11-01 Hedonic quality fixed effects are make×model (A2) and make×model×trim (A4), not make×model×model-year: with an 81-day window, model-year FE would absorb vehicle age (age varies only with entry date within a model-year cell). Age is identified across model years. make-model-year cohort FE as written in the plan Collinearity of age and model-year FE in a short panel (hedonic.py docstring). Amendment to analysis_plan §3 Model A.
D-011 2026-11-01 Model D (competitor response) is estimated as a linear probability model with market×week and make-model-year×week fixed effects (pyfixest), SEs clustered by dealer (primary) and region (secondary); cloglog with coarse FE as robustness. cloglog with high-dimensional FE Nonlinear models with ~10⁴ FE cells on 2.9 M listing-days are not estimable with available tools (incidental-parameter and compute); daily base rate ≈ 1 % so LPM is a reasonable local approximation.
D-012 2026-11-01 Anonymised identifiers use 10-hex-character SHA-1 prefixes (listings) and 8 (dealers) after a collision was detected at 7 characters (139 expected collisions among 273 k uids). 7-character ids Birthday-bound collisions produced duplicate listing rows in the risk set (E-005).
D-014 2026-11-01 Left-censoring is defined per source: a listing is left-censored if it entered before 2026-08-13 00:00 UTC or within 24 h of its source's first non-empty crawl (otogo started on day 6 with 24 565 listings that day, autousagee on day 11 with 11 925). Global day-1 cut-off only (plan v1.0) Descriptives agent found 33 224 start-up listings (29 % of S2) whose "entry" was the connector start date; durations and hazards would be biased. Amendment to analysis_plan §1 (S2).
D-015 2026-11-01 AMLI market-week panel starts at panel week 2 (days 14–76): weeks 0–1 are contaminated by the portal start-ups (otogo day 6, autousagee day 11). Supervised weights fitted on weeks 2–5, evaluated on weeks 6–10. Coordinates outside the Quebec bounding box (lat 44–63, lng −80 to −56) are treated as missing. Keep weeks 0–1 Province components in week 0 are outliers (start-up stock composition), see figure 8 draft.
Files · f9bf466deda3bcf4729bb4dc6e4078483843c761
Menu

Theme