1{2 "task_id": "T1-forecast",3 "model_name": "rw_drift_loglevel_12m",4 "model_description": "Random walk with drift on the log level of RSAFS from vintage V only: ln L_{last+h} = ln L_last + h*mu, mu = mean monthly log growth over the last 12 months in vintage V (= g_last/12). The YoY forecast is 100*(ln L_{last+h} - ln L_{T-12}) with L_{T-12} taken from vintage V, so known base effects (the year-ago months) enter the forecast, unlike the naive. No estimated parameters beyond mu; no PAYEMS/UMCSENT used. Specification fixed a priori (not tuned on evaluation actuals); every input is in the vintage dated V.",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: in the six vintages 2025-10-31..2026-03-31 the last published month is two months before the origin month (e.g. 2025-10-31 ends 2025-08), versus one month in 2026-04-30..2026-07-31; the 2026-04-30 vintage adds two months (2026-02 and 2026-03) at once",38 "handling": "Targets defined as last(V)+h per TASK.md: h=1 targets are 2025-09..2026-02 and 2026-04..2026-07 (2026-03 is never an h=1 target); h=3 targets 2025-11..2026-04 and 2026-06..2026-09 (2026-05 skipped). All baselines and the model use the same last(V)."39 },40 {41 "issue": "First releases of 2025-09 (vintage 2025-11-30) and 2026-02/2026-03 (both first in 2026-04-30) were delayed relative to the normal calendar (government shutdown / disrupted schedule).",42 "handling": "Used as given in first_release.csv (first month-end vintage containing the month)."43 },44 {45 "issue": "Large level revision between first release and current vintage (e.g. 2026-07 first released at 763602, current 729915; levels of 2025 also lowered), indicating a benchmark/annual revision around 2026-08/09.",46 "handling": "YoY growth is computed within a single vintage for both numerator and denominator, so level shifts largely cancel; reported via estimand (d). RSAFS_current used only for (d)."47 },48 {49 "issue": "UMCSENT has 210 empty fields (pre-1978 months without survey).",50 "handling": "UMCSENT not used by the model; read only for row counts/audit."51 },52 {53 "issue": "PAYEMS vintages also show irregular timing (2025-12-31 vintage adds two months; ends 2025-11).",54 "handling": "PAYEMS not used by the model; read only for audit."55 }56 ],57 "n_input_rows": {58 "first_release.csv": 28,59 "RSAFS_current.csv": 417,60 "UMCSENT.csv": 887,61 "vintages/RSAFS_vintage_2025-10-31.csv": 404,62 "vintages/PAYEMS_vintage_2025-10-31.csv": 1040,63 "vintages/RSAFS_vintage_2025-11-30.csv": 405,64 "vintages/PAYEMS_vintage_2025-11-30.csv": 1041,65 "vintages/RSAFS_vintage_2025-12-31.csv": 406,66 "vintages/PAYEMS_vintage_2025-12-31.csv": 1043,67 "vintages/RSAFS_vintage_2026-01-31.csv": 407,68 "vintages/PAYEMS_vintage_2026-01-31.csv": 1044,69 "vintages/RSAFS_vintage_2026-02-28.csv": 408,70 "vintages/PAYEMS_vintage_2026-02-28.csv": 1045,71 "vintages/RSAFS_vintage_2026-03-31.csv": 409,72 "vintages/PAYEMS_vintage_2026-03-31.csv": 1046,73 "vintages/RSAFS_vintage_2026-04-30.csv": 411,74 "vintages/PAYEMS_vintage_2026-04-30.csv": 1047,75 "vintages/RSAFS_vintage_2026-05-31.csv": 412,76 "vintages/PAYEMS_vintage_2026-05-31.csv": 1048,77 "vintages/RSAFS_vintage_2026-06-30.csv": 413,78 "vintages/PAYEMS_vintage_2026-06-30.csv": 1049,79 "vintages/RSAFS_vintage_2026-07-31.csv": 414,80 "vintages/PAYEMS_vintage_2026-07-31.csv": 105081 },82 "n_analysed": 20,83 "random_seed": null,84 "publication_delays": [85 {86 "origin": "2025-10-31",87 "last_month": "2025-08",88 "months_behind_origin": 289 },90 {91 "origin": "2025-11-30",92 "last_month": "2025-09",93 "months_behind_origin": 294 },95 {96 "origin": "2025-12-31",97 "last_month": "2025-10",98 "months_behind_origin": 299 },100 {101 "origin": "2026-01-31",102 "last_month": "2025-11",103 "months_behind_origin": 2104 },105 {106 "origin": "2026-02-28",107 "last_month": "2025-12",108 "months_behind_origin": 2109 },110 {111 "origin": "2026-03-31",112 "last_month": "2026-01",113 "months_behind_origin": 2114 },115 {116 "origin": "2026-04-30",117 "last_month": "2026-03",118 "months_behind_origin": 1119 },120 {121 "origin": "2026-05-31",122 "last_month": "2026-04",123 "months_behind_origin": 1124 },125 {126 "origin": "2026-06-30",127 "last_month": "2026-05",128 "months_behind_origin": 1129 },130 {131 "origin": "2026-07-31",132 "last_month": "2026-06",133 "months_behind_origin": 1134 }135 ],136 "dm_lrv_h1": 0.8091371398245399,137 "n_model_better_sq_h1": 8,138 "dm_lrv_h3": 2.1185192376081026,139 "n_model_better_sq_h3": 6,140 "revision_h1_targets": {141 "2025-09-01": -0.5502167925401169,142 "2025-10-01": -0.6641763167215546,143 "2025-11-01": -0.43891998227811113,144 "2025-12-01": -0.32862681655441595,145 "2026-01-01": -0.9756759757612712,146 "2026-02-01": -0.4099556308938235,147 "2026-04-01": -0.7481728291013168,148 "2026-05-01": -0.16533992600872516,149 "2026-06-01": -0.7440888135517616,150 "2026-07-01": -0.4570249449779187151 }152}