Contract (P0)
Question: At end of month t (48 origins 2022-05..2026-04), how accurately can Canadian monthly real GDP YoY growth for months t+1 and t+3 be forecast using only data published by then; does a model adding LFS employment YoY growth beat the naive forecast? Estimands: out-of-sample RMSE and MAE (pp) per horizon h∈{1,3} over the 48 origins for (a) naive = gdp_yoy(t−2), (b) one chosen model; relative improvement 1−RMSE_model/RMSE_naive per h. Meaningful only as pseudo-real-time (publication timing simulated on current-vintage data; not real-time validity), with 48 overlapping-error origins (small sample, autocorrelated errors for h=3). Information rules: at origin t, gdp_* usable only for months ≤ t−2, emp_* only for months ≤ t−1, for estimation, selection, transformations and plug-in values; training targets must be observed at origin. Outputs: out/forecasts.csv (192 rows; origin_date,target_date,horizon,forecast,actual,model,last_target_date_used,last_predictor_date_used); out/results.json (task_id, model_name, model_description, n_origins, first_origin, last_origin, last_target_date_available, last_predictor_date_available, 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; out/exclusions.csv; out/state/*. Invalid/impossible if: any forecast uses gdp > t−2 or emp > t−1; target months missing actuals (last target 2026-07 = 2026-04+3, available); model selection using test-period outcomes.