Contract (P0) — F3-dev-01
Question. Over 36 monthly expanding-window forecast origins (2023-07-01 … 2026-06-01), does a simple autoregressive-type model forecast the US unemployment rate (FRED UNRATE, %, SA, final vintage) better than the naive no-change forecast at horizons h=1 and h=3 months?
Estimands. Per horizon h∈{1,3}: RMSE and MAE (percentage points) of (a) naive forecast, (b) one chosen model, over (origin,horizon) pairs whose target value is non-missing; and 1 − RMSE_model/RMSE_naive. Meaningful as pseudo-out-of-sample accuracy on the revised series (not real-time), over a short 3-year window (≈35 pairs per horizon, overlapping errors at h=3), so sampling uncertainty is large.
Information rules. Forecast at origin t uses only observations dated ≤ t, incl. model selection, estimation, transformations. Naive = latest non-missing obs ≤ t. Target = t+h. Missing actual → row kept in ledger with empty actual, excluded from stats; report n evaluated per horizon. No real-time claims.
Outputs. out/forecasts.csv (144 rows: origin_date,target_date,horizon,forecast,actual,model); out/results.json with keys task_id, model_name, model_description, n_origins, first_origin, last_origin, n_evaluated_h1, n_evaluated_h3, rmse/mae naive & model h1/h3, rel_improvement_rmse_h1/h3, feasibility, feasibility_reason, data_issues, n_input_rows, n_analysed, random_seed; out/report.md (Question; Data and exclusions; Method; Results; Uncertainty; Limitations and open issues); out/analysis.py; out/claims.json; plus protocol files (exclusions.csv, state/*).
Invalidity / impossibility. Using data after the origin (look-ahead), choosing the model based on test-period performance, missing input, fewer than enough targets to evaluate. Data file present and complete except one known missing month, so task is feasible.