Methods and limitations

Lineage before confidence.

The active model is whichever evaluated option clears every gate. Otherwise, the seasonal-naive baseline remains in service.

01

Acquire

Checksum archives, verify ZIP CRCs, and record source coverage privately.

02

Preserve

Load each analytical source row exactly once into immutable raw tables.

03

Contract

Build source-native tables separately from derived forecasting marts.

04

Evaluate

Run at least twelve rolling origins and gate challengers against seasonal naive.

05

Release

Export immutable artifacts; promote only by replacing current.json.

MODEL GATES

Promotion is earned.

  • At least 5% WAPE improvement at every supported horizon
  • MASE below 1
  • 75%–90% empirical coverage for the nominal 80% interval
  • No greater than 10% WAPE regression in 90% of eligible sub-ICBs

HARD LIMITS

What is not claimed.

  • No operational slots, rosters, cancellations, or actual capacity
  • No combined “total demand” across overlapping channels
  • No deprivation or patient-experience measures as forecast inputs
  • No NHS endorsement, clinical guidance, or commercial licence

LINEAGE

From publisher row to bounded release.

Private archives
SHA-256 · CRC
PostgreSQL raw
one immutable row key
dbt contracts
source-native then derived
Model gates
12+ rolling origins
R2 release
atomic current.json
Worker API
bounded, no DB credentials

BASELINE AND CHALLENGERS

The baseline earned the release.

ModelRoleQuantilesFull-snapshot result
Same-weekday seasonal naiveRequired baseline and fallbackp10 · p50 · p90Approved · 10.96% WAPE at 28 days
Elastic NetLinear benchmarkResidual intervalFailed 7-day gate
LightGBMGlobal direct-horizon challengerQuantile objectivesFailed 7-day gate
CatBoostGlobal direct-horizon challengerQuantile objectivesFailed 7-day gate

Twelve rolling origins covered 104 eligible sub-ICBs. The baseline interval captured 55.09% of observations at 28 days, below its nominal 80%; treat the band as indicative, not a calibrated probability guarantee.

ARCHITECTURE EVIDENCE

Public runtime stays small.

Typed Python and dbt run privately. R2 holds immutable release objects. The Worker streams bounded pages and scenarios; it receives no PostgreSQL credential.

PORTFOLIO EVIDENCE

Claims remain inspectable.

Decision records, source and metric contracts, evaluation status, rollback design, generated-fixture tests, Worker dry-run, responsive browser checks, and WCAG evidence are versioned with the project.