1# Contract — F3-conf-022**Question.** How accurately could US quarterly real GDP growth (A191RL1Q225SBEA, % q/q SAAR) be forecast 1 and 2 quarters ahead in real time (using only the vintage published at each origin), and does a simple time-series model beat the naive (last value) forecast?34**Estimands.** Over 8 origins (vintage dates 2024-01-31 … 2025-12-31) and h ∈ {1,2}: RMSE and MAE of naive and of one model, vs first-release actuals; 1 − RMSE_model/RMSE_naive per h; mean |current − first release| over the 8 h=1 target quarters. Meaningful under: vintage files are faithful real-time snapshots; first release = advance estimate as at month-end; with only 8 errors per horizon, these are descriptive statistics with large sampling uncertainty.56**Outputs.** out/forecasts.csv (32 rows: origin_date,target_date,horizon,forecast,actual,model,vintage_date,train_last_date,train_last_value,n_train); out/results.json (task_id, model_name, model_description, n_origins, first_origin, last_origin, rmse/mae naive & model h1/h2, rel_improvement_rmse_h1/h2, mean_abs_revision_h1_targets, 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 state files, exclusions.csv.78**Information rules.** At origin d only the vintage file dated d is used (all values as in that file). current_vintage.csv only for revision statistic/discussion. Targets = last quarter in file + h. Actuals = first_release.csv. Naive = last value in vintage file.910**Invalidity/impossibility.** Missing vintage or first-release actual for a target; using current vintage for estimation; model choice tuned on evaluation outcomes (avoid: model fixed a priori before computing errors).11