# Data windows and splits. Dates are chosen from the actual coverage of the Vrai Prix snapshot # (registered sales 2021-01-04 .. 2026-10-07, snapshot taken 2026-10-21) — see data/raw/README.md. snapshot: source: "WP22 processed layer of vraiprix-20261021.db (sha256 2816d8dd… pinned in the WP22 repo)" transactions_parquet: "data/raw/wp22_clean_transactions.parquet" units_stock_parquet: "data/raw/wp22_raw_units_stock.parquet" market_index_parquet: "data/raw/wp22_raw_market_index.parquet" sample: property_classes: [house, condo, plex] # headline residential classes price_min: 50000 price_max: 5000000 require_roll_match: true require_coordinates: true splits: train: {start: "2021-01-01", end: "2024-06-30"} validation: {start: "2024-07-01", end: "2025-03-31"} test: {start: "2025-04-01", end: "2025-12-31"} holdout: {start: "2026-01-01", end: "2026-10-07"} # final untouched temporal holdout, evaluated once prospective: {note: "sales registered in the live DB after the protocol freeze (fetched by scripts/60_fetch_prospective.py); ids absent from the snapshot"} spatial_holdout: # entire regions withheld from training in the spatial-generalisation experiment regions: ["Outaouais", "Abitibi-Témiscamingue", "Bas-Saint-Laurent"] comparables: radius_km: [1.0, 3.0, 10.0] # expanding search lookback_days: 540 max_comps: 12 min_comps: 3 same_class_required: true llm_eval_subsample: # LLM arms are evaluated on stratified random subsamples (cost); baselines on the full partitions validation_n: 240 test_n: 600 holdout_n: 300 strata: [region_group, property_class, price_tercile] seed: 20261027