{
  "task_id": "T1-forecast",
  "model_name": "rw_drift_loglevel_12m",
  "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.",
  "n_origins": 10,
  "first_origin": "2025-10-31",
  "last_origin": "2026-07-31",
  "rmse_naive_h1": 0.9968743518607954,
  "mae_naive_h1": 0.848722188000456,
  "rmse_naive_h3": 1.4200403737520462,
  "mae_naive_h3": 1.200448633787668,
  "rmse_snaive_h1": 1.6745428991342943,
  "mae_snaive_h1": 1.3066698762543274,
  "rmse_snaive_h3": 1.3160788989552372,
  "mae_snaive_h3": 1.0658686914791946,
  "rmse_ar1_h1": 0.9405244111185227,
  "mae_ar1_h1": 0.7976510573253066,
  "rmse_ar1_h3": 1.1871178147422958,
  "mae_ar1_h3": 0.952689596144294,
  "rmse_model_h1": 0.5502977033274435,
  "mae_model_h1": 0.4863319392755308,
  "rmse_model_h3": 1.1422197516272885,
  "mae_model_h3": 0.9339774440853781,
  "rel_improvement_rmse_h1": 0.44797686659282443,
  "dm_stat_h1": 2.4289778515909086,
  "dm_pvalue_h1": 0.015141457282753734,
  "conclusion_code_h1": "model_better_significant",
  "rel_improvement_rmse_h3": 0.19564276288194327,
  "dm_stat_h3": 1.5465768014315027,
  "dm_pvalue_h3": 0.12196532729732468,
  "conclusion_code_h3": "model_better_not_significant",
  "mean_abs_revision_h1_targets": 0.5482198028389015,
  "feasibility": "complete",
  "feasibility_reason": null,
  "data_issues": [
    {
      "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",
      "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)."
    },
    {
      "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).",
      "handling": "Used as given in first_release.csv (first month-end vintage containing the month)."
    },
    {
      "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.",
      "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)."
    },
    {
      "issue": "UMCSENT has 210 empty fields (pre-1978 months without survey).",
      "handling": "UMCSENT not used by the model; read only for row counts/audit."
    },
    {
      "issue": "PAYEMS vintages also show irregular timing (2025-12-31 vintage adds two months; ends 2025-11).",
      "handling": "PAYEMS not used by the model; read only for audit."
    }
  ],
  "n_input_rows": {
    "first_release.csv": 28,
    "RSAFS_current.csv": 417,
    "UMCSENT.csv": 887,
    "vintages/RSAFS_vintage_2025-10-31.csv": 404,
    "vintages/PAYEMS_vintage_2025-10-31.csv": 1040,
    "vintages/RSAFS_vintage_2025-11-30.csv": 405,
    "vintages/PAYEMS_vintage_2025-11-30.csv": 1041,
    "vintages/RSAFS_vintage_2025-12-31.csv": 406,
    "vintages/PAYEMS_vintage_2025-12-31.csv": 1043,
    "vintages/RSAFS_vintage_2026-01-31.csv": 407,
    "vintages/PAYEMS_vintage_2026-01-31.csv": 1044,
    "vintages/RSAFS_vintage_2026-02-28.csv": 408,
    "vintages/PAYEMS_vintage_2026-02-28.csv": 1045,
    "vintages/RSAFS_vintage_2026-03-31.csv": 409,
    "vintages/PAYEMS_vintage_2026-03-31.csv": 1046,
    "vintages/RSAFS_vintage_2026-04-30.csv": 411,
    "vintages/PAYEMS_vintage_2026-04-30.csv": 1047,
    "vintages/RSAFS_vintage_2026-05-31.csv": 412,
    "vintages/PAYEMS_vintage_2026-05-31.csv": 1048,
    "vintages/RSAFS_vintage_2026-06-30.csv": 413,
    "vintages/PAYEMS_vintage_2026-06-30.csv": 1049,
    "vintages/RSAFS_vintage_2026-07-31.csv": 414,
    "vintages/PAYEMS_vintage_2026-07-31.csv": 1050
  },
  "n_analysed": 20,
  "random_seed": null,
  "publication_delays": [
    {
      "origin": "2025-10-31",
      "last_month": "2025-08",
      "months_behind_origin": 2
    },
    {
      "origin": "2025-11-30",
      "last_month": "2025-09",
      "months_behind_origin": 2
    },
    {
      "origin": "2025-12-31",
      "last_month": "2025-10",
      "months_behind_origin": 2
    },
    {
      "origin": "2026-01-31",
      "last_month": "2025-11",
      "months_behind_origin": 2
    },
    {
      "origin": "2026-02-28",
      "last_month": "2025-12",
      "months_behind_origin": 2
    },
    {
      "origin": "2026-03-31",
      "last_month": "2026-01",
      "months_behind_origin": 2
    },
    {
      "origin": "2026-04-30",
      "last_month": "2026-03",
      "months_behind_origin": 1
    },
    {
      "origin": "2026-05-31",
      "last_month": "2026-04",
      "months_behind_origin": 1
    },
    {
      "origin": "2026-06-30",
      "last_month": "2026-05",
      "months_behind_origin": 1
    },
    {
      "origin": "2026-07-31",
      "last_month": "2026-06",
      "months_behind_origin": 1
    }
  ],
  "dm_lrv_h1": 0.8091371398245399,
  "n_model_better_sq_h1": 8,
  "dm_lrv_h3": 2.1185192376081026,
  "n_model_better_sq_h3": 6,
  "revision_h1_targets": {
    "2025-09-01": -0.5502167925401169,
    "2025-10-01": -0.6641763167215546,
    "2025-11-01": -0.43891998227811113,
    "2025-12-01": -0.32862681655441595,
    "2026-01-01": -0.9756759757612712,
    "2026-02-01": -0.4099556308938235,
    "2026-04-01": -0.7481728291013168,
    "2026-05-01": -0.16533992600872516,
    "2026-06-01": -0.7440888135517616,
    "2026-07-01": -0.4570249449779187
  }
}