Gas storage, as the curve stands

This runs on a simulated European curve and one filed US pipeline tariff, because neither carries a licence a reader has to take on trust. A different hub, your own forward marks, your facility’s own rate sheet, or a contract structure this does not cover — that is the work, and it starts with a conversation. [email protected]

A storage year opened in Aug 2026, valued on the simulated curve for that month and charged NGPL's filed Rate Schedule NSS. Twelve months from the newest curve, which is deliberately not a contracted storage year: European capacity is auctioned 1 April to 1 April, and the calculator defaults to April for that reason. This page answers a different question — what the curve says today — and the price of that is a window nobody is sold. Euros per MWh of working gas, on a SIMULATED curve. Every forward here is a real Henry Hub curve multiplied by 7.142 to sit at a European price level — nothing else was done to it, so the shape is American: over one matched winter the two agree in direction (+0.67) and Henry Hub’s seasonal swing is about six times larger than the European example’s. Storage value comes out of that swing, so what follows overstates a real TTF curve. The charges are NGPL’s filed US tariff, unscaled, and against a price level seven times higher a dollar rent barely weighs. 1 MWh = 3.412 MMBtu is exact; EURUSD 1.16523 is a market price and is dated 28 August 2026.

The schedule
€10.308
fixed today, hedgeable today
With the right to re-optimise
€15.100
needs a model of how price moves
What flexibility adds
€4.792
the difference between the two

How far the price can be from this curve

€57.09 €80.39 €103.69 A S O N D J F M A M J J Aug 2026 twelve months ahead forward curve, and the 10th-to-90th percentile around it

The black line is the market’s forward curve and nothing here moves it: every simulated path is anchored so that its expectation is that curve, so no part of this picture is a view on the level of gas. The only claim being made is the width.

And the two widths are different shapes, which is the point. The amber zone is the model’s: it treats each month’s price as a stationary deviation from that month’s own forward, so it is a tube — as wide at twelve months as at one. The grey zone is what the archive actually produced: the spread of the front-month price that printed against the forward quoted for it 12 months earlier. That one is a cone.

months aheadmodel σrealised σ ratioobs
115.4%14.4%0.94×165
315.6%22.8%1.46×163
615.6%29.2%1.87×160
915.6%33.3%2.13×157
1215.6%36.4%2.33×154

The model is right at one month and about 2.4× too narrow at twelve. That is a property of the process, not a calibration slip: with each month tied to its own forward the variance converges after the first step instead of accumulating. What it does to the storage valuation has not been measured — the effect runs both ways, since reversion to the curve makes a spread easier to capture while a narrow band makes far-dated optionality look smaller — so it is recorded here as an open question rather than a correction. The observation counts are overlapping windows on one archive, so read the shape and not a p-value.

The plan this curve implies

forward curve, €57.97 to €85.60 across the year inject withdraw months ahead → A 2026 S O N D J 2027 F M A M J J inventory, peaks at 50% of capacity

Twelve monthly decisions from Aug 2026 to Jul 2027. The bars are the optimal schedule priced on the curve visible today — it can be hedged with the same forwards it was computed from, so it is a trade rather than a view. There is no price axis on the curve above on purpose: what matters to a storage schedule is the shape, where the cheap months sit relative to the dear ones, and a price scale invites reading a level off a picture that does not depend on one.

What this is not

Nothing here forecasts a gas price. Every simulated path is anchored so its expectation is the observed forward; the model supplies dispersion around the curve and never a view on where the curve goes. Anything else would be a house view wearing a valuation's clothes.

Of the three figures above, two need no model at all. The schedule and its value are arithmetic on quoted prices. Only the third — what the right to deviate from the schedule is worth — depends on an assumption about how price moves, and that assumption is a monthly volatility of 15.5% calibrated on the roll-adjusted return rather than on the price series, because the price series' apparent mean reversion is largely the futures roll. That figure is the mean over 20,000 simulated years and carries the Monte Carlo error of one.

Against the record

This year's schedule €10.308 richer than 78% of the 167 storage years the archive covers
Before any charge€12.005 what the seasonal spread alone is worth
Capacity reservation−€1.1900 NGPL NSS recourse rate, over twelve months, per MWh of working gas
Everything else the deck charges −€0.5068 fuel, at 0.92% of the gas injected — the filed tariff has no commodity charge at all

The rent is a constant, so it cannot touch the flexibility premium at all — it is subtracted from both valuations alike and cancels in their difference. That is arithmetic, not a finding, and it is why the third headline figure above does not move when the tariff does.

Change the assumptions

Every number here is one setting of a cost deck. The calculator lets you vary the tariff, the fuel, the injection and withdrawal rights and the European fill mandate — and its Copy link carries those settings here: arrive with them and this page re-values itself against them. The curves and the model live on the server; the archive is simulated rather than licensed, which is the whole reason it can be served at all, and what travels is your settings.

The page you are reading is a static file either way. With no settings in the address it is exactly what was rendered at build time, served from disk and cached at the edge, and it costs the server nothing — which matters, because a landing page is fetched by crawlers and link previews that never interact, and making each of those pay for a least-squares Monte Carlo is the cheapest denial of service there is. With settings in the address the same document asks for the numbers after it has loaded.