Scenarios, Ambition Levels & Parameter Bounds#
Implementation status: Partial (coverage matrix rows Scenarios,
Ambition Levels, Parameter Bounds — presets not mapped 1:1 to CASCADE
scenario values; aircraft bounds encoded DL-029)
Source: src/data/presets.ts, src/engine/constants.ts:AMBITION,
src/data/constraints.ts:CASCADE_BOUNDS,
src/state/url-state.ts + src/state/scenario-schema.ts
Test evidence: tests/cascade-parity.spec.ts (frozen presets),
tests/url-state.spec.ts, tests/bounds-electric.spec.ts
Scenario presets#
Nine presets ship in presets.ts; selecting one writes its parameters
into the scenario state. Each preset pins the frozen-baseline tracks
(offset_mode: 'percent', traffic_model: 'legacy_anchor') where
required so the parity spec stays reproducible.
Preset |
Description |
Source basis |
|---|---|---|
Moderate |
Central case — business-as-usual improvement pace |
ICAO LTAG (2022) |
Waypoint 2050 — Low SAF |
Low SAF availability |
ATAG Waypoint 2050 |
Waypoint 2050 — High SAF |
High SAF availability |
ATAG Waypoint 2050 |
Waypoint 2050 — 3rd Edition |
Revised SAF supply/demand curves |
ATAG Waypoint 2050 (3rd ed.) |
Destination 2050 |
European aviation net-zero pathway |
Destination 2050 consortium |
ReFuelEU Mandate |
EU SAF blending mandate trajectory (2 % → 70 % by 2050) |
ReFuelEU Aviation |
ICAO LTAG Integrated |
Long-term aspirational goal, all levers |
ICAO LTAG |
LH2GT WP6 |
Hydrogen research programme scenario |
Rolls-Royce/easyJet/Heathrow/UCL ATSLab |
SC Motor Optimistic |
Superconducting breakthrough + aggressive decarbonisation |
HyFlux extension |
Ambition levels#
Each pillar takes a 1–5 ambition level indexing a five-position table
(constants.ts:AMBITION):
Lever |
L1 |
L2 |
L3 |
L4 |
L5 |
|---|---|---|---|---|---|
Traffic CAGR (%/yr) |
2.4 |
2.9 |
3.4 |
3.7 |
4.0 |
Aircraft (% reduction) |
8 |
15 |
25 |
38 |
52 |
Operations (%) |
3 |
6 |
10 |
15 |
21 |
Energy (%) |
5 |
12 |
22 |
35 |
50 |
Offsets (%) |
10 |
40 |
100 |
100 |
100 |
Auxiliary tables exist for operations components (ARM 0.4–2.0, FAO 0.8–4.0, ATM 1.0–5.0, LF 82–89 %), hydrogen (electrolysis share, production and liquefaction intensities, vapor loss) and removal mixes; the aggregate reduction across the four levers is capped at 95 % in the legacy path.
Parameter bounds#
CASCADE’s published scenario bounds (allowed input ranges — not
feasibility claims) are encoded as a distinct cascade-bounds constraint
check (DL-029, April-2026 snapshot; the current online bounds page is not
held locally — a recorded provenance gap):
Future-aircraft efficiency delta: −30 % … +60 % (the module-level bound is the wider −30 % … +70 %; the discrepancy is recorded, DL-025).
EIS window: 2019–2049 (stricter side of CASCADE’s own 2049/2050 inconsistency).
Ramp up/down duration: 0–15 years.
Steady-state production maxima (aircraft/month): regional 150, single-aisle 375, widebody 120, freighter 130.
Fleet phase-out duration: 15–30 years.
HyFlux’s own feasibility constraints (UCO feedstock ceiling, LH₂ airport rollout, grid-CI sanity, biomass sustainability, removal capacity) are kept separate and flagged differently in the UI.
URL-state v2#
Scenario state serialises to a shareable URL token under schema v2 (DL-018): a named sparse diff-from-defaults over a generated 199-field runtime registry (169 numeric, 13 string, 9 point-array, 4 boolean fields plus enums — the complete parameter audit). Properties:
Deterministic: sorted keys; identical scenarios produce identical URLs.
Whitelisted: unknown keys are dropped; per-field runtime validation.
Capped arrays: 24 custom curve points, 12 CAGR periods.
Backward compatible: v1 positional decode is retained frozen for old links; v1’s field order may never be extended. New links emit v2 only.
No secrets: a codec test scans for excluded sensitive fields.
Nine codec tests cover round-trip, malformed-state rejection, determinism,
length ceilings and the v1 freeze (tests/url-state.spec.ts).
Scenario horizon (end_year, DL-044)#
The horizon selector end_year is part of the v2 registry as
enum_end_year: only 2050, 2075 and 2100 decode; any other
value is rejected and the scenario falls back to the 2050 default (the
engine additionally clamps out-of-set values for direct callers). The
default is bit-identical to the legacy engine, and the hold-not-stretch /
prefix-invariance conventions are documented at Traffic Growth.
There is no dedicated UI control — the horizon is set through URL state —
and the scenario-library presets all run to 2050.
The related CGI fields (cgi_enabled, cgi_gamma_end — clamped to
[0, 0.85], default 0.85, flat continuation of the CORSIA baseline) are
likewise URL-persisted; CGI is active in constrained offset mode only and
the frozen 'percent' track ignores it entirely (tested identical).
Boeing CMO traffic root (DL-164)#
The scenario boeing_cmo_baseline (collection Boeing) roots traffic on
the two public endpoint anchors of Cascade’s Boeing Forecast
(CMO + WACF) configuration: 1.08 Gt net CO₂e in 2019 and 2.98 Gt gross in
2050 with every abatement lever off, with passenger load factor held flat
at 81 % from 2020. The growth input (4.06 %/yr) is the effective rate
that reproduces those endpoints through this engine’s COVID dip — it is
deliberately not Boeing’s published traffic CAGR, and route-level CMO
data is proprietary: endpoint anchoring only, no data parity claimed
(tests/cmo-anchor.spec.ts locks both anchors). Cascade locks the
traffic detail and the 2019 baseline calibration while its CMO root is
loaded; the HyFlux Forecast workspace mirrors both locks. A section-by-
section consistency report against the captured Cascade CMO configuration
is maintained in the forecast app’s audit register
(hyflux-cascade/audit/cmo-parity-flags.md).
Published OEM outlook roots (DL-166)#
Two further traffic roots make the market outlook a selectable switch:
boeing_cmo_2026 applies the 4.0 %/yr world RPK growth (2025–2045) Boeing
itself publishes in its CMO 2026 forecast-data workbook, and
airbus_gmf_2026 applies 4.03 %/yr derived by summing the published
per-country trip totals in Airbus’s GMF 2026 workbook (which publishes no
world RPK figure — trips understate RPK growth where average trip length
grows, and the card says so). Both tables are transcribed programmatically
with full attribution in src/data/market-outlooks.ts; the Boeing
workbook’s 39-row region-pair RPK table values the equation-13 regional
machinery that was previously a caller input
(tests/market-outlooks.spec.ts pins table integrity, including that the
published flow rows sum to the workbook’s Grand Total). Only the freely
published summary tables are quoted — no licensed row-level Cirium/Sabre
data.
Known deviations / limitations#
Preset parameter values are HyFlux calibrations informed by the named sources, not transcriptions of CASCADE scenario tables.
Only the aircraft bounds section is encoded; traffic/ops/energy/offsets bounds sections remain open.
The frozen-baseline pins mean preset outputs intentionally reproduce legacy behaviour even where defaults have since been corrected (Introduction, two-track baselines).