{
  "id": "palimpsest-news:forecast-ledger",
  "slug": "forecast-ledger",
  "url": "https://palimpsest.info/news/forecast-ledger/",
  "signal_id": "forecast-ledger",
  "headline": "Forecast bands covered 84.4% of 1,606 scored readings",
  "dek": "Prequential scoring shows whether the observatory's uncertainty bands remain calibrated over time.",
  "section": "command",
  "order": 4,
  "type": "methodology",
  "priority": "standard",
  "status": "live",
  "published_at": "2026-08-24T15:55:45Z",
  "modified_at": "2026-08-24T15:55:45Z",
  "claim_fingerprint": "sha256:d5d1947e597c598efee43ff304845c9f3e7c41dd2436ce8b654e31a3f1d4bb7d",
  "metric": {
    "label": "empirical coverage",
    "value": 0.844,
    "unit": "ratio",
    "denominator": {
      "label": "forecasts",
      "value": 1606
    }
  },
  "claims": [
    {
      "type": "method",
      "statement": "Empirical forecast coverage is 84.4% across 1,606 scored forecasts."
    }
  ],
  "evidence": {
    "url": "https://palimpsest.info/readings/forecast-ledger-latest.json",
    "input": {
      "filename": "forecast-ledger-latest.json",
      "sha256": "bdbf40111f14a05fbb3cbf2d4473dcf0421897e96023385ab77ea7a9970d2802",
      "bytes": 13968
    },
    "source_timestamp": "2026-08-24T15:55:45Z"
  },
  "method": {
    "summary": "strictly prequential (Dawid 1984): each reading is forecast from only its own past, never refit with hindsight. Point forecast = previous value (random walk). Band = adaptive conformal quantile of past absolute one-step changes, updated by alpha_{t+1} = alpha_t + gamma_t*(alpha - err_t) with decaying gamma (ACI, arXiv:2106.00170; decaying steps, arXiv:2402.01139), valid under arbitrary distribution shift. Scored by the Weighted Interval Score (arXiv:2005.12881), a proper rule, against the same forecast using a fixed quantile. Lower WIS is better.",
    "version": null
  },
  "limitations": [
    "Calibration describes aggregate historical coverage and does not guarantee that any one next reading falls inside its band."
  ],
  "related_signal_ids": [
    "event-flags",
    "cross-layer"
  ]
}
