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).