SPB Git

spb/wp29_uqo

Public

# Verification checks (P4)

  • Clean re-run: deleted results.json/forecasts.csv/table1.csv/figure1.png, re-ran analysis.py; results.json byte-identical, CSVs identical: PASS
  • 80 rows, unique (origin,horizon,model): PASS
  • vintage_used <= origin_date: PASS (all rows use the vintage dated at the origin). origin_date < target_date: FAIL for the 40 h=1 rows — NOT a leakage: by the TASK.md definition target = last(V)+1 and target_date is the first day of that month, which always lies before (or in the month of) the month-end origin because RSAFS is published with a 1–2 month lag. The correct real-time condition, target month > last(V) (target not yet published in vintage V), holds for all 80 rows. This is a conflict between the gate's generic rule and the task's own definition; kept as specified, reported in report.md.
  • actuals match first_release: PASS
  • all RMSE>0 and RMSE>=MAE: PASS
  • rel improvement identity: PASS
  • DM LRV positive: PASS
  • DM sign consistent with RMSE ordering: PASS
  • p-value in [0,1] and code consistent: PASS
  • exclusion ledger: 20-0=n_analysed: PASS
  • sanity: naive h=1 forecast at origin 2025-10-31 (4.878354) equals the first-release YoY of 2025-08, released in that vintage: PASS
  • first_origin<last_origin: PASS
  • n_input_rows matches README counts: PASS
  • magnitudes plausible: RMSEs between 0.3 and 3 pp: PASS
  • independent DM recompute h=1 and h=3 from forecasts.csv: first attempt FAIL due to a pandas index-alignment bug in the check code itself; corrected recompute agrees to |diff|<1e-6 (residual from 6-decimal rounding in forecasts.csv): PASS
  • Availability: RSAFS_current.csv read only after all forecasts (revision block); forecast functions receive only the vintage-V RSAFS series: PASS (code inspection)
  • exclusion ledger: first version unreadable by gate (unquoted comma in rule text); fixed by quoting: PASS after fix
  • Magnitudes vs baseline: model RMSE h1 0.55 vs naive 1.00, h3 1.14 vs 1.42; all in same order of magnitude: PASS
  • target month > last(V) for all 80 rows (real-time condition): PASS
Files · main
Menu

Theme