{
  "implementation_version": "local_models_20261017_v1",
  "scope": "97 previously reviewed national NCD chains plus 105 officially recast demographic chains; not arbitrary joins of raw source series_id",
  "models": [
    "last_value",
    "holt_damped",
    "ar1_stationary"
  ],
  "outer_minimum_training": 8,
  "outer_horizons": [
    1,
    3,
    5
  ],
  "inner_minimum_training": 6,
  "inner_required_completed_folds": 4,
  "selection": "Use training-only one-step inner rolling MAE. A complex model replaces last_value only with >=4 completed inner folds and >=10% lower MAE; otherwise last_value. This engineering rule is fixed, not a significance claim.",
  "holt_grid": {
    "alpha": [
      0.2,
      0.5,
      0.8
    ],
    "beta": [
      0.1,
      0.3
    ],
    "phi": [
      0.8,
      0.95
    ]
  },
  "holt_grid_selection": "training innovation SSE only, fixed initial level y0 and initial trend y1-y0; score after first two training observations",
  "ar1": "OLS intercept and lag coefficient in transformed space; phi constrained to [-0.98,0.98]; intercept re-estimated after constraint",
  "support": "Strictly positive NCD rates, birth/death flows and population stocks use log, signed migration uses identity. Counts NCD may be backtested, but future case counts are withheld without matching exposure.",
  "intervals": "Nominal 80/95% conditional model-based intervals from Gaussian training innovations with fixed fitted parameters; naive random walk, AR(1) recursion, or Holt innovations-state recursion. Parameter, regime, demographic and source-vintage uncertainty are not fully covered. Not calibrated 2050 intervals.",
  "simulation_paths_outer": 512,
  "simulation_paths_future": 2048,
  "seed": "deterministic SHA256(chain_id,origin,model,purpose)",
  "source_vintage": "Current-vintage pseudo-OOS. No claim to reconstruct real-time availability.",
  "source_bridge_sensitivity": "NCD source transition at 2020/2021 and targets2020/2021 flagged; current model results do not prove continuity.",
  "country_reconciliation": "Only additive demographic flows/stocks; independent source country is compared with regional sum before reconciliation. Internal migration net set to zero pathwise and correction allocated by observed January2026 regional populations. National future derived by bottom-up pathwise sums. Rates never summed.",
  "population_balance": "January1 2026 observed stock + births - deaths + external + internal net flows. Flow-year2026 ends January1 2027. Source unexplained historical residuals are not assigned to migration.",
  "preference_rule": "NULL or !=0 retained in source audit; these inputs come from reviewed registries with explicit provenance, not blind preferred=1 filtering.",
  "references": [
    "https://otexts.com/fpp3/toolbox.html",
    "https://otexts.com/fpp3/exponential-smoothing.html",
    "https://otexts.com/fpp3/arima.html",
    "https://otexts.com/fpp3/hierarchical-forecasting.html"
  ],
  "input_sha256": "76b4bc3f9e000a91d867d04e0c06b4056700ef26249dad4b3ed5cbccb14fbfd3",
  "initial_protocol_written_utc": "2026-10-17T05:06:38.966312+00:00",
  "preregistered_study": false,
  "reproducibility_amendment_utc": "2026-10-17T05:19:02.378817+00:00",
  "coherent_joint_innovations": "Training-only contemporaneous innovation correlation, 50% shrinkage toward identity, Gaussian innovations. No discarded negative population paths: affected population intervals withheld.",
  "numpy_version_used": "2.3.5",
  "regional_input_sha256": "d1347d2b93f52b932359831feb2ad7a01ee5987d2478f230faa6cbe53d6c0b9b"
}