1{2 "task_id": "T1-forecast",3 "model_name": "rw_drift_base_effect",4 "model_description": "Random walk with drift for the log level of RSAFS, translated into YoY growth so that the known 'base effects' (the monthly changes that drop out of the 12-month window) are used. At origin V, with x_m = ln L_m from the RSAFS vintage dated V and l = last(V): drift d = (x_l - x_{l-12})/12 (mean monthly log change over the last 12 published months, i.e. a rolling 12-month estimation window); forecast of the log level x_{l+h} = x_l + h*d; forecast YoY g_{l+h} = 100*(x_l + h*d - x_{l+h-12}), where x_{l+h-12} (h<=3) is already published in vintage V. Uses only the RSAFS vintage dated V; PAYEMS and UMCSENT are not used. The specification (including the 12-month drift window) was fixed before any forecast error was computed; no parameter was tuned on the evaluation targets.",5 "n_origins": 10,6 "first_origin": "2025-10-31",7 "last_origin": "2026-07-31",8 "rmse_naive_h1": 0.9968743518607954,9 "mae_naive_h1": 0.848722188000456,10 "rmse_naive_h3": 1.4200403737520462,11 "mae_naive_h3": 1.200448633787668,12 "rmse_snaive_h1": 1.6745428991342943,13 "mae_snaive_h1": 1.3066698762543274,14 "rmse_snaive_h3": 1.3160788989552372,15 "mae_snaive_h3": 1.0658686914791946,16 "rmse_ar1_h1": 0.9405244111185227,17 "mae_ar1_h1": 0.7976510573253066,18 "rmse_ar1_h3": 1.1871178147422958,19 "mae_ar1_h3": 0.952689596144294,20 "rmse_model_h1": 0.5502977033274435,21 "mae_model_h1": 0.4863319392755308,22 "rmse_model_h3": 1.1422197516272885,23 "mae_model_h3": 0.9339774440853781,24 "rel_improvement_rmse_h1": 0.44797686659282443,25 "dm_stat_h1": 2.4289778515909086,26 "dm_pvalue_h1": 0.015141457282753734,27 "conclusion_code_h1": "model_better_significant",28 "rel_improvement_rmse_h3": 0.19564276288194327,29 "dm_stat_h3": 1.5465768014315027,30 "dm_pvalue_h3": 0.12196532729732468,31 "conclusion_code_h3": "model_better_not_significant",32 "mean_abs_revision_h1_targets": 0.5482198028389015,33 "feasibility": "complete",34 "feasibility_reason": null,35 "data_issues": [36 {37 "issue": "Irregular RSAFS publication timing: last(V) is 2 months before the origin month for origins 2025-10-31, 2025-11-30, 2025-12-31, 2026-01-31, 2026-02-28, 2026-03-31 and 1 month before it for the others; the 2026-04-30 vintage added two months at once.",38 "handling": "Targets defined as last(V)+h exactly as TASK.md requires; each forecast uses only the vintage dated V (vintage_used = origin_date)."39 },40 {41 "issue": "First-release dating is at month-end granularity: 2025-09 first appears in the 2025-11-30 vintage, and 2026-02 and 2026-03 both first appear in the 2026-04-30 vintage (so the 2026-02 'first release' need not be the advance estimate).",42 "handling": "first_release.csv used as provided (task definition of the actual); documented in the report."43 },44 {45 "issue": "Large level revision: RSAFS levels in the current vintage are about 4.7-4.9% below those of the 2026-07-31 vintage for 2025-2026 months (first_release rows for 2026-08/09 already use the revised level base).",46 "handling": "YoY growth is always computed within a single vintage (levels never mixed across vintages); the revision enters only estimand (d)."47 },48 {49 "issue": "UMCSENT has 210 empty values, all before 1978 (quarterly survey era).",50 "handling": "UMCSENT is not used by the model; no imputation needed."51 },52 {53 "issue": "RSAFS_current.csv contains information not available at any forecast origin.",54 "handling": "Read only in the revision block for estimand (d), after all forecasts are produced."55 }56 ],57 "n_input_rows": {58 "RSAFS_current.csv": 417,59 "UMCSENT.csv": 887,60 "first_release.csv": 28,61 "vintages/PAYEMS_vintage_2025-10-31.csv": 1040,62 "vintages/PAYEMS_vintage_2025-11-30.csv": 1041,63 "vintages/PAYEMS_vintage_2025-12-31.csv": 1043,64 "vintages/PAYEMS_vintage_2026-01-31.csv": 1044,65 "vintages/PAYEMS_vintage_2026-02-28.csv": 1045,66 "vintages/PAYEMS_vintage_2026-03-31.csv": 1046,67 "vintages/PAYEMS_vintage_2026-04-30.csv": 1047,68 "vintages/PAYEMS_vintage_2026-05-31.csv": 1048,69 "vintages/PAYEMS_vintage_2026-06-30.csv": 1049,70 "vintages/PAYEMS_vintage_2026-07-31.csv": 1050,71 "vintages/RSAFS_vintage_2025-10-31.csv": 404,72 "vintages/RSAFS_vintage_2025-11-30.csv": 405,73 "vintages/RSAFS_vintage_2025-12-31.csv": 406,74 "vintages/RSAFS_vintage_2026-01-31.csv": 407,75 "vintages/RSAFS_vintage_2026-02-28.csv": 408,76 "vintages/RSAFS_vintage_2026-03-31.csv": 409,77 "vintages/RSAFS_vintage_2026-04-30.csv": 411,78 "vintages/RSAFS_vintage_2026-05-31.csv": 412,79 "vintages/RSAFS_vintage_2026-06-30.csv": 413,80 "vintages/RSAFS_vintage_2026-07-31.csv": 41481 },82 "n_analysed": 20,83 "random_seed": null84}