Kinetic Alpha

Energy · Futures · Risk decomposition

ICE energy futures contract decomposition

Energy portfolios live or die by how their positions are decomposed. A calendar spread isn't one exposure — it's a pair of dated legs whose basis can dominate the P&L. A power Cal-strip doesn't scale evenly across months because peak-hour counts differ. A 3:2:1 crack's constituents move on different ICE codes. If your risk system papers over any of that, every downstream report carries an invisible error.

This project is a decomposition library — ice_energy_decomp — that expands every contract type into dated factor legs with per-leg ICE codes, then ships a browser dashboard whose calculation engine is checked cell-for-cell against the Python reference.

What the library covers

  • Complexes: WTI & Brent crude, US & EU natural gas (Henry Hub, TTF, NBP, THE, PEG, PSV, ZTP), US ISO power and EU power (DE, FR, UK, ES, IT), refined products, NGLs, API2/API4 coal, NWE fuel oil / VLSFO / naphtha, EUA / UKA emissions.
  • Structures: outrights, basis, strips (CAL27, 2026Q3, WIN26, custom ranges), calendar spreads, CSOs, bullet options (Black-76 delta or delta_override), and cracks.
  • Power MW→MWh: a NERC- and EU-aware calendar that counts on-peak / off-peak / base hours per delivery month — verified against independent sources (PJM peak July'26 = 368h, Christmas-Friday correctly drops a peak day, peak + off-peak ties to total).

Verification

Decomposition: 108 factors, 107 contracts. Phase 1 tests: 24/24. Phase 2 tests: 23/23. Python ↔ browser engine parity: 32/32 (factor, month) cells match exactly — the dashboard isn't a separate, drift-prone reimplementation, it shares the same logic checked against the Python source.

Drive it yourself

The dashboard below is the same engine in your browser — change the CSV to add or edit positions, paste marks to get a $-PnL overlay, switch options between delta and full-notional, and browse the searchable reference table. Hit "Load sample" for a mixed portfolio (NG basis, TTF Cal strip, Brent cal spread, German peak, NBP, coal, a TTF option, a 3:2:1 crack).

Loading dashboard…