stratum atlas
Model DocsLearning
M30

Forecast Ensemble Model

How several forecasts for one target combine - without averaging away the differences that matter.

Assumptions

Everything the model believes, stated before the math. If you do not buy one of these, do not buy the output.

  1. Only forecasts with identical target, horizon, and unit combine; anything else is reported as disagreement, never averaged.
  2. Weights derive only from the versioned inverse-out-of-time-Brier policy; judgment never sets a weight.
  3. Calibration is look-ahead-free: a calibration record whose cutoff does not precede the forecast's as-of disqualifies calibrated weighting, and the combination falls back to equal weights labeled uncalibrated.
  4. Dependent models sharing a base vote once; the collapse is printed per member.
  5. The combined interval is member uncertainty plus the full observed spread - a wide disagreement stays visible even when a central combination exists.
  6. A poorly calibrated model loses weight deterministically through the policy, never by discretion.

Derivation

Forecasts sharing a dependence group collapse to a single vote before anything is weighted - two models built on the same base are one opinion, not two. Combination then requires exact commensurability: same target, same horizon, same unit, or the run refuses and reports the disagreement instead.

When every voter carries a look-ahead-free calibration record, weights are inverse out-of-time Brier scores, normalized:

with B_i the model's out-of-time Brier score (lower is better). If any voter lacks a qualifying record, every weight is equal and the output is labeled uncalibrated - a diagnostic, not a calibrated forecast.

The combined interval adds the full member spread to the weighted member uncertainty:

so disagreement is never hidden inside the average: a spread above 0.15 flags WIDE, and the spread prints alongside the combination.

Identification strategy

Why the estimate supports the claimed meaning - and where the model refuses to claim more than the data carries.

  • Commensurability is the identification gate: combining forecasts of different targets would manufacture agreement between things that were never the same question, so the model refuses and prints the mismatch.
  • Inverse-Brier weighting is identified out-of-time only: the calibration cutoff must precede every forecast's as-of, so no model can earn weight from information it would not have had.
  • Dependence collapse keeps the vote count honest: correlated members cannot double-count their shared evidence into false confidence.
  • The interval construction is the honesty guarantee: member spread is added on top of member uncertainty, so a divided ensemble reads wide even when the central estimate exists.

Inputs and outputs

Reads

Member forecasts
Versioned deterministic model runs: probability with interval, as-of, and dependence group
Calibration records
Out-of-time Brier scores with calibration cutoffs, per model

Writes

  • Combined probability and interval with per-model weights and the policy label, or a refusal with the mismatch named
  • Calibrated flag - false means equal weights, labeled diagnostic
  • Disagreement report: spread, wide flag, membership by dependence group
  • Per-member accounting: counted or not, with the reason

Calibration and gate evidence

Validation design

  • The weighting policy is itself gated: a deterministically worse-calibrated model must receive strictly less weight, and a look-ahead calibration record must force the uncalibrated fallback.

Evidence on record

  • Smoke gates at seal (8 m30-specific): commensurate forecasts combine; a poorly calibrated model loses weight deterministically; the combined interval reflects disagreement; incommensurate targets refuse combination; dependent models vote once; look-ahead calibration falls back to uncalibrated; determinism (identical input hash on re-run); audit row written for every run.

Gates at seal

  • smoke: 8 m30 gates incl. refusal on incommensurate targets, one-vote dependence collapse, determinism + audit row (suite counts at seal per the build agent's seal report)
  • sealed at ee4010f on atlas-nl-shock-redesign

Failure modes

The ways this model declines, degrades or goes UNKNOWN - and what it prints when it does.

  • Incommensurate targets, horizons, or units: combination refused, disagreement reported.
  • Fewer than two independent forecasts after dependence collapse: nothing to combine, UNKNOWN.
  • Any member missing look-ahead-free calibration: equal weights, labeled uncalibrated - never silently calibrated.

Sensitivity

  • Near-tied Brier scores produce near-equal weights; the policy differentiates only what the out-of-time record actually supports.
  • A single extreme member widens the interval through the spread term even when its weight is small - disagreement is priced into the width, not just the center.

Iron rules

Never average away a structural difference. Incommensurate forecasts are reported as disagreement, not combined.

Weights come from the versioned calibration policy only - judgment never sets a weight, and a wide disagreement stays visible.

Source and audit

Written from the sealed model source. Every run is recorded - model version, frozen inputs, input hash, timestamp. There is no unrecorded model execution.