Contract (P0) — F3-conf-04
Question. Over 40 rolling quarterly origins t = 2015Q4 … 2025Q3, does a chosen time-series model forecast Canadian quarterly CPI inflation (400·Δln of quarterly-average NSA CPI) better than the seasonal-naive forecast at h = 1, 2, 4, and is the h=4 mean squared-error loss differential significantly different from zero, using a HAC (long-run variance) SE with truncation lag ≥ 3?
Estimands. Out-of-sample RMSE and MAE per horizon for snaive and model; 1 − RMSE_model/RMSE_snaive per h; at h=4, d̄ = mean(e²_snaive − e²_model), HAC SE, DM statistic = d̄/SE, two-sided p-value. Meaningful under covariance-stationarity of the loss differential (DM assumption); with only 40 overlapping errors the asymptotic normal approximation is rough.
Outputs. out/forecasts.csv (240 rows: origin_date,target_date,horizon,forecast,actual,model); out/results.json with all keys in TASK.md table; out/report.md (Question; Data and exclusions; Method; Results; Uncertainty; Limitations and open issues); out/analysis.py (regenerates results.json + forecasts.csv deterministically from data/); out/claims.json.
Information rules. Forecast at origin t uses only quarters ≤ t (estimation, model selection, transformations: expanding window). Target = infl_annualised of t+h. snaive = value of quarter t+h−4. HAC lag ≥ 3, report lag and kernel. No real-time-validity claim.
Invalidity conditions. Using any quarter > t for a forecast at t; missing targets (last target 2026Q3 = 2025Q3+4 exists, 127 quarters to 2026Q3); data hash mismatch; negative/zero SE.