Methodology Parity#
Source: phase0-discovery/cascade-coverage-matrix.csv,
phase0-discovery/claim-register.csv,
phase0-discovery/ENGINEERING_DECISION_LOG.md
Test evidence: the whole tests/ suite (summary below)
This page consolidates the parity programme: the coverage matrix, the deviations register, the engineering decision log highlights, the test suite, and the standing security note.
Status vocabulary: Exact — equation-level parity benchmarked against the published CASCADE formulation; Equivalent — same mathematics on a documented simplified base; Simplified — implemented with reduced resolution; Extended — HyFlux capability beyond CASCADE’s published method; Partial — a documented subset; Missing — not implemented; Fixed — a confirmed defect repaired under a two-track baseline.
Coverage matrix#
Rendered from cascade-coverage-matrix.csv (2026-07-18), abbreviated
columns. This is the historical Phase-0 snapshot: it is kept verbatim
as provenance, and many of its Missing / Simplified verdicts have since
been closed. The matrix was regenerated per-source-file against the July
2026 CASCADE corpus under DL-131/DL-132 (docs/rst-coverage-matrix.md /
.csv / .json, 2026-07-31 — 256 distinct governing equations,
163 mapped at DL-132, 186 at DL-134), and the register refresh below
records the verified state as of 2026-08-02. Where this snapshot and the
refresh differ, the refresh is authoritative.
CASCADE section |
HyFlux module |
Status |
Parity tests |
Notes |
|---|---|---|---|---|
Glossary |
n/a |
Missing |
None |
Not in either local RST folder — download in Phase 1 |
Introduction/Nomenclature |
n/a |
Missing |
None |
Upper/lower-case fleet-vs-route nomenclature not represented in HyFlux (global aggregation only) |
Air Traffic Dataset |
src/data/cirium-mock.ts (56 lines) |
Simplified |
None |
Cirium route data proprietary; HyFlux uses mock + global CAGR — no route resolution |
Payload Capacities |
none |
Missing |
None |
— |
Fuel Burn Energy Emissions |
src/engine/cascade.ts (partial) |
Simplified |
Partial (legacy v3.3 parity spec only) |
Parity test compares TS port to own legacy JS, not to CASCADE |
Fleet Size Estimation |
none |
Missing |
None |
— |
Traffic Growth |
cascade.ts:310-313 (CAGR+COVID) |
Simplified |
None |
Single global CAGR; no route/regional differentiation |
Fleet Renewal |
src/engine/curves.ts fleetRenewalFraction |
Equivalent (curve family verified; route-level Missing) |
Benchmarked (tests/fleet-renewal-parity.spec.ts 2026-07-18) |
Equation-level parity: piecewise branches, a & m closed forms EXACT; slope continuity verified; T’out pre-start shortening rule implemented (DL-028, inert for endProd>=2019). RST-INTERNAL FINDING F3: published intercept b omits “+1” and fails continuity with its own piecewise definition by exactly 1 (HyFlux continuity-derived b is correct). Route-level flight substitution / seat-cargo capacity corrections remain Missing (need route model) |
Future Aircraft |
AircraftModal + ambition scalar |
Simplified — all 5 §26 review actions done (opt-in) |
Reviewed + machinery benchmarked (fleet-insertion.spec.ts) |
Reference range-energy tables Boeing-proprietary — exact value parity NOT achievable (§30). DL-026/028/029: EIS gating, insertion machinery (r_ss/t_sat/truncation), size-class segmentation, battery multiplier APPLIED via regional-class electric wedge (el_ceiling opt-in), CASCADE bounds in constraints.ts. Remaining structural gaps need route resolution: eligibility plane, market-saturation freeze, traffic conservation, per-type flight counts |
Operations (incl pulse curve) |
cascade.ts ops wedge |
Partial (LF wired DL-010; pulse implemented DL-020) |
Benchmarked (load-factor.spec.ts; pulse-curve.spec.ts) |
LF: RPTK-conservation aggregate form implemented + 7 tests. Pulse: exact RST formulation in curves.ts pulseAt() + 11 tests (UI exposure pending). ARM/FAO/ATM additive eq. 121 present; per-route resolution absent |
Electricity |
grid CI params in cascade.ts |
Simplified |
None |
— |
Hydrogen |
cascade.ts h2/liq/vap/bor params + h2ElysShareAt |
Partial: LH2,del EXACT; CI_GH2 mix linked (DL-026) |
Benchmarked (tests/hydrogen-pathways.spec.ts 2026-07-18) |
LH2 delivered CI reproduces RST closed form exactly. ciGh2At() blends elys+SMR by shared smr_share; PtL CI now sensitive to full H2 production mix. Residual: time-varying h2_elec_share curve not yet wired into ciGh2At (static smr_share used, consistent with LH2 chain) |
Methane |
src/engine/saf.ts methaneBlend + cascade.ts wedge |
Simplified |
Benchmarked (tests/methane-parity.spec.ts 2026-07-18) |
§25: fossil CI 68 & bio CI 22 CONDITIONALLY VALIDATED (inside RST-equation envelopes; implied f_loss/CI_liq undisclosed); 2-term mixing EQUIVALENT to eq. methane_aggregate_ci; MISSING: PtG e-methane; NEC/DW/WW split; editable f_loss; grid-linked CI_liq(t)=eps_liq*CI_elec(t); vapor-loss compounding. RST-INTERNAL FINDINGS: F1 558 vs 596 (GWP 29.8 implies 596; 558 implies GWP 27.9 — 6.4% doc inconsistency); F2 f_loss appears in CI_loss definition AND as multiplier (notational double-count) |
Jet Fuel |
implicit baseline CI |
Simplified |
None |
— |
Energy Demand |
none |
Missing |
None |
Needed as foundation for airport infrastructure workstream |
Offsets & Removals |
src/engine/removals.ts + cascade.ts |
Fixed (DL-012): capacity-constrained net default |
Benchmarked (removal-capacity.spec.ts; two-track baselines) |
DEFECT FIXED DL-012 + BASE CORRECTED DL-027: constrained mode applies min(demand,capacity) removals to RESIDUAL emissions per RST; sigma(t) shown vacuous under HyFlux parameterisation (net>=0 without clamp); legacy percent mode frozen. Remaining vs RST: per-route resolution only |
CORSIA |
cascade.ts:281-299 SEB/SGF/offsetRequired |
Partial (sectoral subset Equivalent; operator/CGI Missing) |
Benchmarked (tests/corsia-parity.spec.ts 2026-07-18) |
Equation map: corsia-equation-map.csv (21 eqs). SEB factor/SGF/deltaG Equivalent on simplified base (total gross, no routes_CORSIA filter). Missing: operator accounting, w(t) schedule (CASCADE itself deviates: route-homogeneous), auto-offset wiring 2024-2035, sigma normalization, CGI to 2100. Deviation pinned: offsets demand base = gross vs CASCADE residual |
Cost |
removal costs only |
Mostly missing |
None |
NEW docs section (not in old Rst folder). Fuel-cost model absent from HyFlux |
Scenarios (Boeing/IEA/D2050/LTAG/ReFuelEU/Waypoint) |
src/data/presets.ts |
Simplified |
None |
IEA, Destination2050, ReFuelEU are new vs April snapshot |
Ambition Levels |
src/engine/constants.ts AMBITION |
Partial |
None |
offsets ambition [10,40,100,100,100] amplifies removal defect |
Parameter Bounds |
src/data/constraints.ts |
Implemented (aircraft section, DL-029) |
Benchmarked (bounds-electric.spec.ts) |
CASCADE_BOUNDS in constraints.ts as a distinct cascade-bounds check (scenario bounds vs feasibility kept separate per §26.8): eff -30/+60, EIS 2019-2049 (stricter of RST 2049/2050 inconsistency), ramp 0-15, prod maxima 150/375/120/130, fleetOut 15-30. Source: Apr-2026 bounds snapshot — current online page not held locally (provenance gap). Traffic/ops/energy/offsets bounds sections still open |
Context Metrics |
none |
Missing |
None |
— |
References |
src/data/references.ts |
Partial |
None |
— |
Regional Scenarios |
none |
Intentionally excluded? |
None |
Present in April snapshot only — appears removed from current docs; classify Older-but-useful |
SAF (standalone page) |
src/engine/saf.ts |
Partial |
Partial |
Old saf.rst superseded by jetFuel/methane/hydrogen restructure; saf.ts implements PtL CI eq. 112 |
Gap-register refresh (2026-08-02)#
Every row below was re-verified against the current engine and a green
test this pass (vitest run: 1,820 tests across 112 spec
files, all passing — 1,816/111 at the 2026-08-02 refresh, plus DL-167’s
spec file, which landed after the refresh). A claim flips to Implemented only when both the
implementing module and its test exist; Implemented (standalone) /
(shadow) means the equations exist and pass tests but are not wired
into ``computeLCA`` — the controlled-integration registry
(src/engine/integration.ts, DL-138, enforced by
tests/suite-o-integration-governance.spec.ts) records each module’s
stage, and no production default has changed.
Former register claim |
Current status |
Module |
Test evidence |
|---|---|---|---|
Glossary (Missing) |
Closed (docs) |
n/a (documentation page) |
|
Introduction/Nomenclature — fleet-vs-route case distinction (Missing) |
Closed (docs) / Partial (engine) |
Introduction (nomenclature section);
|
|
Payload Capacities (Missing) |
Implemented — Exact, 17/17 equations (DL-132) |
|
|
Fleet Size Estimation (Missing) |
Implemented — Exact, 5/5 equations + both τ_avg bucket tables (DL-132); CASCADE’s own β_NEC placeholders carried as published, so independent validity stays Unverified |
|
|
Energy Demand (Missing) |
Implemented — two layers: aggregate roll-up in production (2026-07-18) plus all 29 governing equations standalone (DL-136, Stage-1 shadow) |
|
|
Context Metrics (Missing) |
Implemented — 6/6 equations (DL-134), incl. the Breguet electric range with its 19 % on-page self-disagreement reported, not hidden |
|
|
Cost model (Mostly missing) |
Implemented — all 22 equations incl. MAC and per-payload-distance
costs (DL-134); standalone — the production path still emits the
legacy absolute series; currency year unstated by CASCADE
( |
|
|
CORSIA operator accounting + w(t) (Missing) |
Implemented (standalone) — OEB/OGF/w(t) schedule and CGI operator
analogues (DL-045/046), plus the eq. 16/17/19/24/31 aggregation
identities and the printed-vs-floored SGF divergence made
measurable (DL-137). Not wired into |
|
|
CGI to 2100 (Missing) |
Implemented (DL-044) — auto-offset wiring 2024–2035 + linear CGI
baseline to |
|
|
Route-level flight substitution & seat/cargo capacity corrections (Missing) |
Implemented (shadow) — the full fleetRenewal.rst route chain: substitution, freighter/passenger payload corrections, the seven-step RCTK conservation proof, belly-cargo mapping (DL-136) |
|
|
Per-type flight counts / traffic conservation (Missing) |
Implemented (standalone) — the ac × rt flight tensor and its six
folds + eq. 4 production-rate → r_ss (DL-137). The existing-aircraft
axis is lumped ( |
|
|
Eligibility plane (Missing) |
Implemented — route eligibility = size-class eligibility ∧ distance ≤ usable range (0.8 × design range, documented assumption) |
|
|
Market-saturation freeze (Missing) |
Still open — adjudicated deviation: pro-rata normalisation instead of CASCADE’s freeze-at-\(t_{marketSat}\) \(x^*(rt,t)\); the three-step \(t_{marketSat}\) interpolation is not implemented |
deviation registered (Aircraft — Fleet Renewal & Future Aircraft) |
|
Per-route resolution (Missing) |
Partial — opt-in |
|
|
PtG e-methane (Missing) |
Implemented (DL-032; PtG electricity/H₂ demand closed by DL-136) |
|
|
NEC/DW/WW bio-methane split (Missing) |
Implemented (DL-048) |
|
|
Editable fuel loss \(f_{loss}\) (Missing) |
Implemented (DL-081) — year-trajectory |
|
|
Grid-linked liquefaction CI (Missing) |
Implemented (DL-162 §4) — \(CI_{liq}(t) = \varepsilon_{liq}
\cdot CI_{elec}(t)\) in the shared methane loss machinery
( |
|
|
Vapour-loss compounding (Missing) |
Implemented (DL-134) — stagewise \(1-\prod_i(1-f_i)\), with the naive sum alongside so the drift is measurable |
|
|
SMR in the electricity roll-up / liquefaction electricity in energy demand (Missing) |
Implemented in the full module (DL-136, shadow) — htype decomposition, PtG + liquefaction + removals electricity, product slate \(P_{PtL}\), α_eFuel allocation. The production roll-up keeps the documented simplified treatment (bit-identical default) |
|
|
Regional Scenarios (Missing / “intentionally excluded?”) |
Withdrawn — the page is absent from the July-2026 CASCADE corpus (27 files, DL-131/132); there is no current source to cover |
n/a |
|
Air-traffic dataset “mock + global CAGR” (Simplified) |
Partly stale as claimed — |
|
|
Traffic growth “single global CAGR” (Simplified) |
Partial — multi-segment |
|
|
Route-level traffic baseline (Simplified — “mock only”) |
Implemented (standalone, licence-gated) — versioned offline Cirium snapshot schema with coverage validation and export refusal until licence retention is confirmed (DL-133 §11); governed live corridor snapshot loader, gitignored, mock fallback (DL-153) |
|
|
Future-aircraft structural gaps (Simplified) |
Partial — EIS-gated class adoption exported as a single factory so
UI and engine share one implementation (DL-160); chained
|
|
|
Operations per-route (Simplified) |
Implemented (shadow) — the printed three separate linear ramps, the multiplicative \(e^* = (1-\Delta\eta)e_{in}\) form and the eq. 5 flight-count recomputation (DL-137); the three end-values are never valued in the corpus (required caller arguments). Production wedge unchanged (subtractive, S-curve — divergence documented) |
|
|
Electricity grid CI (Simplified) |
Partial — low-carbon CI is now a user input per the RST
( |
|
|
Jet-fuel baseline CI (Simplified) |
Partial — anchors remain fixed (WTW 89 / TTW 74 / WtT 15
gCO₂e/MJ) with |
|
|
Supplementary coverage (landed after the CSV snapshot)#
The CSV above is the 2026-07-18 snapshot and is authoritative for the rows it carries; the following engine work landed after the snapshot and is recorded here rather than by editing the CSV (each item is documented at the linked page):
Item |
Status |
Test evidence |
Note |
|---|---|---|---|
Carrier conservation (DL-033, in-code label) |
Fixed |
|
SAF + CH₄ shares scaled pro-rata when their sum exceeds 1 — CASCADE’s aggregate-mix \(\sum X = 1\) constraint; bit-identical within budget (Energy Carriers). In-code DL-033 label; the decision log assigns DL-033 to Workstream B (numbering collision). |
Horizon 2050/2075/2100 + CGI (DL-044) |
Extended |
|
|
Contrail avoidance lever |
Extended (app parity) |
|
The RST set publishes no contrail formulation (grep-verified); knowledge factors 0/0.6/1.0 and \(R_{CO_2eq} = 2/3\) are documented fallbacks; pure module, not yet in the sweep (Operations). |
CORSIA routes filter + operator accounting (DL-045/046) |
Closed |
|
Closes the CORSIA matrix row’s “operator/CGI Missing”: edition-listed participation (ICAO Ed. 6/7), fuel-weighted eligible fraction, per-operator accounting with homogeneity-reduction proof (CASCADE’s route-homogeneous form is the exact special case). |
Baseline renewal, multi-generation, methane split, display gaps (DL-047…DL-050) |
Closed (V3.0 gap register) |
|
Opt-in conventional-generation baseline renewal (chained phase-out curves, one-entry chain provably ≡ single step); NEC/DW/WW bio-methane split; named ops presets; CI-by-end-use display decomposition. |
Deviations register (summary)#
Registered implementation decisions that diverge from the published CASCADE formulation, each documented at the point of use:
Market-share cap: pro-rata normalisation instead of CASCADE’s freeze-at-\(t_{marketSat}\) (Aircraft — Fleet Renewal & Future Aircraft).
Insertion-rate constraint: module-level specs are rejected (
RangeError) when \(r_{ss} > 1/T_{ramp}\) rather than truncated (Aircraft — Fleet Renewal & Future Aircraft); the truncating helper exists for the aggregate engine.Usable range = 0.8 × design range — HyFlux assumption the RST does not specify (Aircraft — Fleet Renewal & Future Aircraft).
Offsets wedge base: constrained mode applies removals to residual emissions; the legacy percent mode keeps the gross base frozen (DL-027).
σ(t) normalisation shown vacuous under HyFlux’s parameterisation (Carbon Offsets & Removals).
PtL CI without artificial floor on the stoichiometric track (Energy Carriers).
Energy-demand roll-up (production): aggregate partition instead of per-route resolution; SMR ignored in the electricity roll-up; no liquefaction electricity; \(P_{PtL} = 1\) (Energy Demand). All four are closed in the standalone 29-equation module (
energy-demand-full.ts, DL-136, shadow); the production default is unchanged.Methane: Boeing’s published 558 adopted over the derived 596 in the frozen parity track (F1); single-multiplier reading of \(f_{loss}\) (F2) (Energy Carriers). DL-130 made this two-track: the
CURRENT_EVIDENCEbasis modules default to the derived 596 (and to the Sabatier floor 1.20636 over the published \(\varepsilon_{H_2,PtG} = 1.14\)), with the published values reproducible underCASCADE_PARITY(src/engine/basis.ts).Fleet renewal: continuity-derived intercept \(b\) used where CASCADE’s published closed form omits “+1” (F3) (Aircraft — Fleet Renewal & Future Aircraft).
Decision-log highlights#
From ENGINEERING_DECISION_LOG.md (all entries 2026-07-18):
DL-006 — Two-track regression baselines approved: frozen legacy-defect spec plus corrected spec with documented deltas.
DL-012 — Removal-capacity defect fixed: constrained mode (default) uses
min(demand, capacity)removals; legacy percent mode pinned by the frozen parity spec. Headline net at defaults 0.14 → 0.00 Gt (cause: arbitrary 95 % aggregate cap removed; capacity not binding at defaults).DL-016 — All remaining
as anycasts removed; scenario writes go through the statically validatingsetScenarioField<K>.DL-017 — Load factor wired as a physics change (RPTK conservation, freighters exempt), neutral at defaults; 7 validation tests.
DL-018 — URL-state v2: named sparse diff over the generated 199-field registry; v1 decode frozen for old links.
DL-019 — All six strict TypeScript flags enabled, 0 errors.
DL-020 — Pulse curve implemented from the RST formulation; 11 tests.
DL-021 — Concurrent methane feature preserved; benchmark made a gate for any parity claim.
DL-022 — Two-track traffic model: headline ≡ series by construction; methane benchmark complete with findings F1/F2 recorded.
DL-023 — CORSIA equation map (21 equations) + sectoral-subset benchmark; deviation pinned and later closed by DL-027.
DL-024 — LH₂ delivered CI reproduces the CASCADE closed form exactly (first Exact classification); PtL moved to the stoichiometric formulation two-track.
Later entries (DL-026…DL-050) closed the §26 Future-Aircraft actions, Workstreams A/B/D/F, the airport-map scaffold, the Cirium Sky client (DL-040), the Monte-Carlo cost engine (DL-039), the Phase-6 decision map (DL-038), the horizon-2100 + CGI wave (DL-044), the CORSIA equation map (DL-045/046), the remaining CASCADE V3.0 engine and display gaps (DL-047…DL-050), and drafted the Boeing evidence-gap letter (A1–A5 documentation inconsistencies, B1–B6 undisclosed assumptions — not sent, awaiting review).
The July/August 2026 correction-and-parity programme (DL-129…DL-164)
regenerated the coverage matrix against the July-2026 CASCADE corpus
(DL-131/132), fixed the grid-CI input and methane two-track defects
(DL-129/130), wrote the six source-page closure modules — cost, context
metrics, energy demand, fleet-renewal route chain, traffic-growth Hermite
family, operations, flight tensor, CORSIA aggregation (DL-134/136/137) —
under an explicit integration-stage registry that keeps them out of the
production path (DL-138, integration.ts), adjudicated the named
traffic bases (DL-139), audited control liveness (DL-140/141), corrected
the DL-140 LH₂ ledger term (DL-142), added the governed Cirium snapshots
(DL-133 §11 / DL-153), the Stage-2 route-aware sequential shadow (DL-154),
the shared EIS-gated adoption factory (DL-160), curve-shape selection for
grid/SAF adoption (DL-161), per-carrier lifecycle boundaries (DL-162,
Lifecycle boundaries) and the Boeing-CMO traffic root
(DL-164, Scenarios, Ambition Levels & Parameter Bounds). See docs/dl131-programme-report.md through
docs/dl142-lh2-ledger-correction.md and the refresh table above.
Test suite#
The vitest suite is the parity evidence. Current state: 1,820 tests
across 112 spec files, all passing (vitest run; 1,816/111 at the
2026-08-02 refresh — DL-167’s spec landed after it). Historical anchors: 536/536 across 42 files at the 2026-07-18
snapshot; 226/226 across 16 files at the Phase-4 Workstream-A report.
Type checking: tsc 0 errors under all six strict flags. The table
below lists the foundational specs by name (counts as of 2026-07-18); the
post-snapshot work is covered by the lettered suites
tests/suite-a…suite-q (HyFlux correctness, cascade parity, physics
evidence, divergence regression, payload/fleet, gap closure, Cirium
baseline, cost/context, unvalued partials, energy-demand full,
fleet-renewal route, traffic-growth full, operations/fuel-burn,
CORSIA/tensor, integration governance, adjudication, liveness) plus the
DL-numbered and v5 specs — the refresh table above names the relevant
spec for every closed row.
Spec file |
Tests |
Evidence for |
|---|---|---|
|
19 |
Airport demand-driven sizing (DL-035) |
|
6 |
Baseline fleet-renewal toggle (DL-047) |
|
11 |
CASCADE bounds + electric wedge (DL-029) |
|
17 |
Workstreams F & D, Q7–Q10 (DL-037) |
|
4 |
Frozen legacy baseline (±0.5 %) |
|
10 |
Carrier conservation + PtG pathway (DL-033/032) |
|
11 |
Cirium Sky API client, mocked fetch (DL-040) |
|
20 |
Contrail-avoidance lever (app parity) |
|
14 |
Per-operator CORSIA accounting (DL-046) |
|
8 |
CORSIA sectoral subset (DL-023/027) |
|
4 |
Custom-settings badges |
|
11 |
Phase 6 decision map (DL-038) |
|
9 |
Display gaps G8/G11/G12 (DL-050) |
|
20 |
Energy-demand roll-up |
|
21 |
|
|
13 |
Insertion machinery (DL-028) |
|
6 |
Fleet renewal equation parity + F3 |
|
9 |
Workstream B cost stacks (DL-033) |
|
36 |
Future Aircraft module |
|
15 |
AircraftModal lever wiring (DL-026/028) |
|
16 |
Geodesic map math (DL-031) |
|
14 |
Horizon 2100 + CGI acceptance (DL-044) |
|
6 |
LH₂/GH₂ distinction (DL-024) |
|
8 |
Load-factor physics (DL-017) |
|
9 |
Monte Carlo + SC thermal debits (DL-039) |
|
13 |
Methane benchmark + F1/F2 (DL-022/032) |
|
7 |
NEC/DW/WW bio-methane split (DL-048) |
|
13 |
Chained generation machinery (DL-049) |
|
5 |
Named ops presets (DL-048) |
|
15 |
Battery multiplier, EIS gating, CI_GH2 (DL-026) |
|
5 |
Scenario-library collections (drift guard) |
|
11 |
PtL stoichiometry (DL-024) |
|
11 |
Pulse curve (DL-020) |
|
12 |
Constrained offsets (DL-012) |
|
14 |
routes_CORSIA eligibility (DL-045) |
|
14 |
Route/class display filter |
|
19 |
Part B route-model scaffold |
|
14 |
S-batch + cost-tab engine layer (DL-043) |
|
21 |
RNG supply, non-CO₂, aircraft mass |
|
8 |
Two-track traffic (DL-022) |
|
9 |
URL codec v1/v2 (DL-018) |
|
11 |
Workstream A reproduction (DL-030) |
Measured CASCADE LH₂ wedge accounting (2026-08-01 live-API capture)#
Source: data/evidence/cascade-measured-lh2-2050.json (captured
orchestrationLayerInterface payloads and full 2050 netEmissions
decompositions); fable-addendum-lh2-measured.md (repository root)
Test evidence: tests/cascade-measured-lh2.spec.ts (20 tests:
fixture consistency + parity governance)
A live-API experiment (Waypoint 2050 Scenario 0 — Baseline, Low SAF; year 2050; five runs A–F varying the hydrogen-aircraft lever, H₂ production route and per-carrier hydrogen scope) resolved the wedge-allocation question this register previously carried as its highest-value open clarification. Measured behaviour:
LH₂ aircraft abatement books wholly in the Aircraft wedge, under
netEmissions.futureAircraft.byAircraftClass.hydrogen, with delivered-LH₂ CI applied inside the Aircraft module (\(W = E_{\mathrm{H2}}\,(CI_{\mathrm{jet}} - CI_{\mathrm{LH2,del}})\), measured \(E_{\mathrm{H2}} \approx 5.887\times10^{12}\) MJ recovered identically from a CI change and from a scope change).Anti-double-counting is sequential activity removal: hydrogen aircraft shrink the residual Jet-A pool (\(15.083 \to 10.342 \times 10^{12}\) MJ, None → High) and the SAF streams scale with that pool at unchanged blend shares. There is no explicit de-duplication subtraction and no Energy-wedge LH₂ term.
Per-carrier emission scope acts inside the Aircraft module (H₂ SMR WTW → TTW: −43.04 → −580.99 Mt) while the Energy wedge stays bit-identical; the parity request encodes scopes as a positional four-value string (jet fuel, hydrogen, electricity, methane; 1 = WTW, 2 = TTW).
Carriers are distinct: gaseous H₂ for e-fuels vs delivered LH₂ for aircraft, related by \(CI_{\mathrm{LH2,del}} = CI_{\mathrm{GH2}} + \varepsilon_{\mathrm{liq}}\,CI_{\mathrm{elec}}\) (measured 4.432 = 0.2 × 22.16 gCO₂e/MJ), and e-SAF follows \(CI_{\mathrm{PtL}} = 1.4\,CI_{\mathrm{GH2}} + 1.11\) against a fixed 89 gCO₂e/MJ WTW comparator — the e-fuel wedge legitimately changes sign (−25.84 Mt benefit under electrolysis, +19.00 Mt penalty under SMR).
Consequences recorded in this register:
Sequential wedge architecture is now the highest-value structural gap. The HyFlux engine computes wedges independently against gross; CASCADE propagates stage state (Traffic → Aircraft → Operations → Energy → Offsets), so downstream wedge magnitudes diverge whenever hydrogen aircraft are active even at perfect CI parity (measured Operations −128.63 → −102.56 Mt, Energy/SAF −305.10 → −209.20 Mt, A → B). The
CASCADE_SEQUENTIALaccounting mode is now implemented at two stages, both shadow-only: the Stage-1 aggregate chain (sequential-shadow.ts,tests/sequential-shadow.spec.ts) and the Stage-2 route-aware shrinking pool with range-eligible LH₂ switching (sequential-shadow-stage2.ts, DL-154,tests/sequential-shadow-stage2.spec.ts).computeLCAmust never import either (gate asserted by test against the production source); the productionLEGACY_INDEPENDENT_PERCENTmode stays bit-identical and must not be labelled CASCADE parity.Parity governance:
lh2_ci_driven(aliaslh2_ledger) is a HyFlux-only accounting view;computeLCAthrows when it is combined withevidence_basis: 'CASCADE_PARITY', and no library preset enables it (see HyFlux Extensions).Offset saturation: in the measured scenario offsets are endogenous and net 2050 saturates at zero in every run, so net emissions carry no independent evidence about the hydrogen pathway; comparisons must use gross, pre-offset emissions and offset demand.
Open reconciliation (deliberately unresolved): the wedge-implied effective e-SAF energy over the reported
energyQuantity.safEnergy.eFuelis ≈ 561.5/675.3 ≈ 0.831; registered as the e-SAF effective-volume reconciliation gap and locked by test as unresolved — no invented factor may close it. The A→B wedge reconciliation likewise leaves a recorded ≈ +8.1 Mt residual once the endogenous offsets response is included.
The fixtures are measured responses for one scenario, one year and one captured configuration — they anchor the parity adapter and are never treated as universal defaults, and the engine does not claim to reproduce them (synthetic data; no route-level orchestration).
Security note SEC-2026-07-18-01#
During the Phase-0 audit (2026-07-18), live Cloudflare deployment credentials (an API token and account ID) were found pasted inline in a prompt file inside the working tree. The file is untracked: exhaustive scans of the full git history and the rest of the tree found no other exposure, and the value has never been reproduced in any report, log, artefact, URL state or deployed bundle (and is not reproduced here).
Resolution and standing rules:
The owner declined token rotation and accepted the residual risk; the token must be treated as permanently exposed.
The credential must never enter git history, any artefact, log, report, URL state or deployed bundle; the prompt file stays untracked and is excluded from any commit or archive (scrubbing before any such commit remains recommended).
Agents working on this repository never use the credential for any operation.
Deploys use environment-variable credentials supplied at deploy time, preview branch only; production promotion requires explicit owner approval each time.
(Incident record: Phase0-Report-2026-07-18.md §3; resolution recorded
in DL-002 and the completion report.)