BESS revenue-assurance benchmark · shadow book (paper)
How much of the available revenue did the forecast actually capture?
An independent, measured read on battery-storage revenue performance — how much of the value each market made available a forecast-led strategy actually banked, every market, every day, including periods of underperformance.
Day-ahead mesh: 43 price-zones / 28 countries scored on regulated data · all 43 with published capture · money-weighted over a 180-day walk-forward window, rolled forward one day at a time · 4h × 1 cycle · auto-generated from the shadow-book ledger.
Revenue assurance for battery storage · why it matters
CausalGrids Lab is a revenue-assurance performance benchmark for battery energy storage — an independent, standardised measure of how much of the revenue each market actually made available a forecast-led strategy captured, scored against a persistence floor and the perfect-foresight ceiling, every market, every day.
Battery revenue is sized today by modelled projections and self-reported optimiser claims — with no common, independent yardstick. This is the missing scorekeeper: it turns the gap between the revenue a market made available and the revenue a battery realised into a measured, standardised number — so owners get an independent assurance figure on revenue performance, a basis to govern optimiser and route-to-market contracts; providers can be measured against a common benchmark; and investors, lenders and risk teams can underwrite on evidence rather than projections.
Measured from realised outcomes, not modelled projections · out-of-sample · currency-invariant · shadow book (paper), reconciled to realised market clears.
Capture · money-weighted91.8%of the perfect-foresight maximum · money-weighted over a 180-day walk-forward window, rolled forward one day at a time · 43 validated zones
vs persistence baseline85.9%+41.8% of remaining headroom
Day-ahead coverage43 · 28price-zones · countries, free data
Validation43 / 43full mesh · capture published
Consistency & conviction — does the capture hold up?
Beats persistence65.3%of market-days, the forecast beats persistence
Downside capture66.8%money-weighted capture in a weak month · 10th percentile
Deflated Sharpe> 0.99deflation-adjusted confidence the capture edge is real (0–1)
Overfitting · PBO0.08probability of backtest overfitting · below 0.5 is low
Coverage — day-ahead, intraday, reserve
Coverage spans day-ahead, intraday-auction and reserve markets across Europe and North America. The intraday and balancing value-stack legs, and markets with no free feed, are the Commercial tier; all figures refresh from the audited ledgers.
Energy arbitrage
day-ahead + intraday
Open preview · validated capture publishedIn development / wired feed connected, no capture yetCommercial tier licensed feed or no free feed — private engagement
Day-Ahead — all price-zones on regulated data
Per-zone graph: Persistence (P) · Market (M) · CausalGrids (CGL), bars zoomed 50–100% (dashed floor); true capture printed. Published where validated; scored elsewhere with capture under the full-mesh compare now running.
Market
p·m·cgl
capture
persistence
coverage
Iberia & South-East Europe
Spain
98.4%
97.8%
Open preview · validated
Portugal
97.2%
96.4%
Open preview · validated
Greece
94.7%
90.4%
Open preview · validated
Italy — 7 bidding zones
Italy — North
90.4%
78.7%
Open preview · validated
Italy — Centre-North
90.8%
79.4%
Open preview · validated
Italy — Centre-South
92.5%
82.1%
Open preview · validated
Italy — South
93.1%
84.7%
Open preview · validated
Italy — Calabria
93.0%
84.4%
Open preview · validated
Italy — Sicily
93.4%
87.2%
Open preview · validated
Italy — Sardinia
89.4%
82.3%
Open preview · validated
Central-West Europe
Germany-Luxembourg
98.9%
94.1%
Open preview · validated
France
94.6%
91.4%
Open preview · validated
Netherlands
97.3%
93.1%
Open preview · validated
Belgium
96.6%
91.7%
Open preview · validated
Austria
95.8%
93.0%
Open preview · validated
Switzerland
96.6%
93.0%
Open preview · validated
Central-East & South-East Europe
Poland
96.9%
90.9%
Open preview · validated
Czechia
96.3%
93.0%
Open preview · validated
Slovakia
95.4%
94.0%
Open preview · validated
Hungary
96.1%
95.0%
Open preview · validated
Romania
95.3%
92.0%
Open preview · validated
Bulgaria
90.2%
86.4%
Open preview · validated
Croatia
94.6%
92.8%
Open preview · validated
Slovenia
94.4%
92.6%
Open preview · validated
Nordics & Baltics
Denmark — West (DK1)
95.3%
92.5%
Open preview · validated
Denmark — East (DK2)
93.8%
91.7%
Open preview · validated
Sweden SE1 · SE2 · SE3 · SE4
85.4%
72.2%
Open preview · validated
Norway NO1 · NO2 · NO3 · NO4 · NO5
69.2%
61.6%
Open preview · validated
Finland
75.9%
55.0%
Open preview · validated
Estonia · Lithuania · Latvia
85.0%
73.4%
Open preview · validated
British Isles
Great Britain
82.0%
61.7%
Open preview · validated
Ireland (SEM)
75.3%
59.1%
Open preview · validated
North America
CAISO — SP15
85.0%
76.2%
Open preview · validated
PJM — Western Hub
91.5%
90.8%
Open preview · validated
NYISO — Zone J (NYC)
—
—
Commercial tier
ERCOT — North Hub
—
—
Commercial tier
MISO — Indiana Hub
—
—
Commercial tier
SPP — South Hub
—
—
Commercial tier
IESO — Ontario Canada
—
—
Commercial tier
AESO — Alberta Canada
—
—
Commercial tier
Not on the free feed — Commercial tier
Bosnia-Herzegovina · Ukraine · Moldova · North Macedonia
—
—
Commercial tier
Why capture varies across zones. In hydro- and thermal-balanced systems (the Nordics, Baltics, Ireland, Great Britain) the day-ahead price is smoother and the daily peak-to-trough spread narrower, so a battery has less arbitrage headroom to capture and the ratio naturally compresses — a feature of market structure, not a model failure. Wide-spread markets (Iberia, Italy, Central Europe) offer more headroom and score higher. Persistence compresses on the same axis, which is why the forecast's edge over persistence — not the raw capture level — is the like-for-like read of skill.
Intraday
Reposition = value re-optimised over the committed day-ahead book. The intraday value stack — auctions (OMIE, GME) and the continuous order book (EPEX M7 / Nord Pool) — is delivered under the Commercial tier.
Market
p·m·cgl
capture
persistence
coverage
Intraday value stack — Commercial tier
Spain OMIE continuous (IDA)
—
—
Commercial tier
Portugal OMIE continuous (IDA)
—
—
Commercial tier
Italy — 7 zones GME MI-A3>A2>A1
—
—
Commercial tier
Germany-Lux · France · Netherlands · Belgium · Austria · Switzerland EPEX M7 · Nordics Nord Pool · Great Britain
—
—
Commercial tier
Ancillary & balancing · for ancillary-led operators
Ancillary & balancing
reserve · regulated data
Capture measured against each reserve's own ceiling and persistence — never blended into arbitrage. FCR is published by the regulated operators (regelleistung.net); the aFRR / mFRR / MSD balancing legs are delivered under the Commercial tier.
Market
p·m·cgl
capture
persistence
coverage
How a day is booked — actual volume at actual prices
A worked example. Price is the market operator’s cleared curve; charge (buy) and discharge (sell) bars are the volume the strategy committed at each hour — reproduced from the committed ledger (commit → settle → verify). Nothing here is modelled or hand-entered.
Day-ahead — price & booked volume
Italy — South · settled 2026-08-27
Intraday — revised price & repositioning
same day · reposition re-optimised on the revised price
FCR — Pan-EU cooperation 8 zones · regelleistung
95.2%
93.1%
Open preview · verified 240/240
Italy — South GME MSD
—
—
Commercial tier
Italy — North GME MSD
—
—
Commercial tier
aFRR (PICASSO) ENTSO-E 17.1.F · DE-LU
—
—
Commercial tier
aFRR (PICASSO) Elia Open Data · BE
—
—
Commercial tier
aFRR (PICASSO) RTE Data Portal · FR
—
—
Commercial tier
aFRR / balancing APG Transparency · AT
—
—
Commercial tier
aFRR / balancing TenneT · NL
—
—
Commercial tier
mFRR (MARI) ENTSO-E 17.1.F
—
—
Commercial tier
RR (TERRE) ENTSO-E
—
—
Commercial tier
MSD balancing is an early, limited-window measurement delivered under the Commercial tier; on the window measured so far the balancing re-trade has at times been net-negative — giving back value versus simply holding the day-ahead book (CausalGrids beats the persistence re-trade in the South, loses in the North). Reported as-is — the assurance shows the dips, not only the wins. FCR capture is a summer-window run-rate on a standardised asset, not yet a published annual — see Methodology & Audit §11. aFRR is now measured from live activated-energy feeds — the ENTSO-E [17.1.F] item for Germany-Lux, and the national-platform route for the zones ENTSO-E doesn't publish: Elia Open Data (Belgium), the RTE Data Portal (France) and the APG Transparency API (Austria, balancing-energy price). Absolute capture is low on thin activated-energy headroom and several zones are net-negative, but in each case CausalGrids is less value-destructive than the persistence re-trade — except Austria, the one zone where persistence beat the forecast this window, published as-is. The per-zone figures in the rows above refresh from the ledger. The Netherlands (TenneT) is offered under the Commercial tier for now. mFRR is live but sparse.
FCR capacity · per cooperation zone
live · regelleistung.net
Capacity-allocation capture — did the forecast commit the standardised 1 MW / 4 h battery to the right 4-hour blocks (FCR vs energy arbitrage)? A different construct, never blended into energy-arbitrage capture. Bars: Persistence (P) · Ceiling (M) · CausalGrids (CGL), zoomed 50–100%; ceiling = perfect-foresight allocation (co-optimised FCR + arbitrage = 100%). Source regelleistung.net (four German TSOs, free), €/MW per 4-hour block. Denmark clears in the shared DK-DE block, reported inside Germany-Lux.
Zone
p·m·cgl
capture
persistence
uplift
coverage
Germany-Lux incl. DK-DE block
97.2%
92.7%
+4.5pp
Open preview · verified 30/30
France regelleistung
96.1%
91.5%
+4.6pp
Open preview · verified 30/30
Netherlands regelleistung
93.9%
91.5%
+2.4pp
Open preview · verified 30/30
Austria regelleistung
95.9%
95.0%
+0.9pp
Open preview · verified 30/30
Belgium regelleistung
94.8%
91.5%
+3.3pp
Open preview · verified 30/30
Switzerland regelleistung
93.4%
92.6%
+0.8pp
Open preview · verified 30/30
Czechia regelleistung
95.7%
93.5%
+2.1pp
Open preview · verified 30/30
Slovenia regelleistung
94.3%
96.4%
−2.2pp
Open preview · verified 30/30
Skill lives on the competing days — when all-FCR is clearly optimal, forecast and ceiling agree; the uplift over persistence is earned when arbitrage competes with an FCR block. Slovenia is the one zone where persistence beat the forecast this window — published as-is. Every day is reproduced byte-for-byte under the §5 pin. E/η/tx are on the standardised defaults, pinned to the day-ahead dispatch convention.
Read across streams with care
Each capture % is measured against its own ceiling and persistence — comparable within a stream, not across. A battery's charge sells once; Blended is the co-optimised day-ahead ⊕ intraday ⊕ reserve result, never the sum of the columns.
Free benchmark · commercial tier
Free to read. Tailored to your asset.
public good + commercial tier
Revenue assurance is what separates underwriting a battery on a forecast from underwriting it on evidence — an independent measure of how much of the revenue a market makes available is actually captured, and where it is lost. This board applies that discipline in the open, on a standardised asset, across every price-zone with a regulated feed. The commercial tier applies it to your book — and extends to the licensed feeds and asset detail the free benchmark cannot carry.
Open preview · this public benchmark
A standardised 1 MW / 4 h notional battery, one cycle a day, scored on every market with a regulated feed — 43 day-ahead price-zones across 28 countries, the free intraday auctions, and the FCR reserve — independent, reproducible, currency-invariant.
Open preview · public · no sign-up
Commercial tier · a complete revenue-assurance service
The same discipline calibrated to your asset, and extended to the feeds the free board marks Commercial tier — the continuous intraday order book (EPEX M7 / Nord Pool), markets with no free feed, plus your real duration & power, cycling strategy & warranty throughput, degradation, availability & outages, route-to-market, real transaction costs & imbalance — a private capture-and-leakage assurance on your own portfolio.
Commercial tier · private engagement · Ikenga
One subscription · escalating exhaustiveness
The Commercial subscription auto-delivers the full cadence; each frequency has a distinct job, and the assurance grade escalates in a cliff — from independent-source flash to a monthly management pack, quarterly limited assurance, and a signed annual opinion. Event-driven re-verify on a material drop.
The limited- and reasonable-assurance grades (ISRE 2410, ISAE 3000 / 3410) denote engagements performed, and any opinion signed, by an independent accredited practitioner — not by Ikenga. This free board is not itself an assurance engagement and carries no such opinion; it is an internally-reproducible measurement (see Methodology & Audit).
Basis of preparation, independence & controlsCoverage & tiers. Every day-ahead price-zone is a regulated feed; Commercial tier marks the intraday and balancing value-stack legs (auctions, continuous order book, aFRR / mFRR / MSD) and markets with no free feed, delivered under private engagement; the free public benchmark is the day-ahead capture mesh and FCR. Independence & conflicts. The benchmark is not monetised and no fee is contingent on the results reported; the inherent conflict — the same party produces and scores the strategy — is disclosed and mitigated by the controls here. Source data & provenance. All inputs are primary settlement data published by the market operator that cleared each market; no modelled, forecast or third-party estimated prices enter the reported figures. Reproducibility. Each daily figure is deterministically reproducible from version-pinned inputs — an internal reproducibility control, not independent assurance under a recognised standard (e.g. ISAE 3000). Completeness. All in-scope results are reported without exception, including periods of underperformance; markets are not added or removed to shape the aggregate. Change governance. The methodology is version-controlled under a dated change log; figures are not restated other than with disclosure of the change and its effective date. Currency & weighting. Capture is a unit-free ratio computed within each zone in its own local currency, so it is unaffected by exchange rates; the money-weighted aggregate weights each zone by the euro-equivalent revenue the market made available, converted at daily FX reference rates — FX enters the cross-zone weighting only, never a zone's capture figure. → Full basis of preparation, methodology, limitations and replication data: Methodology, Limitations & Audit.
Definitions
Key terms
how to read this board
Plain definitions of the words used above. Every capture is measured against a market's own ceiling and persistence — comparable within a stream, never across.
CausalGrids Lab An independent, standardised revenue-assurance benchmark for battery energy storage: it measures how much of the revenue each market actually made available a forecast-led strategy captured — every market, every day, on regulated data.
Capture The headline metric: revenue the forecast-led strategy achieved ÷ the perfect-foresight ceiling. 100% is the unreachable maximum; the gap to 100% is the revenue lost to forecast error. Reported per market, never blended across streams.
Market In each per-zone graph, the full revenue the market made available over the period — the value a perfectly-informed operator could have earned (the 100% bar, i.e. the perfect-foresight ceiling). Capture and persistence are measured against it.
Perfect-foresight ceiling The most revenue obtainable with perfect knowledge of prices — the theoretical maximum and the denominator of capture. Unreachable in practice; it sets the 100% reference.
Persistence The baseline the forecast must beat: a strategy that commits the battery assuming prices repeat yesterday's curve — the standard "no-forecast" reference in price forecasting. It is a genuinely competitive floor, and can go negative when blind timing destroys value.
CausalGrids The forecast-led strategy being scored: it commits the battery's schedule on an out-of-sample price forecast, then settles that schedule on the prices that actually cleared. "Achieved" is what it banks.
Day-ahead · Intraday · Reserve The three revenue streams a battery earns from — the day-ahead auction, the intraday market, and reserve/balancing (FCR, aFRR, mFRR, RR). Each is scored against its own ceiling and never summed; the co-optimised total is Blended.
Standardised asset The common yardstick: a 1 MW / 4-hour battery, one cycle per day — a deliberately conservative, comparable standard (real assets often cycle more and stack ancillaries), chosen so every market is measured on the same basis and is currency-invariant, not as a claim about any specific asset. The Commercial tier replaces this with your real duration, power, cycling and costs.
Walk-forward, don't look ahead The core discipline: the forecast only ever sees data from before the moment it commits, so a backtested figure is not fitted with hindsight. A backtest is still not a forward promise.
Deflated Sharpe (DSR) The probability (0–1) that the forecast's edge over persistence is genuinely positive once corrected for multiple testing, short samples and non-normal returns — it deflates a raw Sharpe ratio so a good-looking backtest can't pass on luck. Near 1 means the edge survives that scrutiny (after López de Prado).
PBO Probability of Backtest Overfitting — the chance that the configuration that looked best in the backtest would underperform out-of-sample (i.e. it was fitted to noise). Estimated by combinatorially-symmetric cross-validation; below 0.5 is low, and lower means the edge is structure, not curve-fitting.
Commercial tier The private engagement. The open board measures a standardised battery on the free markets; the Commercial tier measures your asset — real duration, power, cycling, degradation, availability and route-to-market — across every market it trades, including the licensed continuous intraday order book and markets with no free feed. Your asset's own capture figure: the number you underwrite, govern contracts on, and report.
Commercial tier · book a briefing
Sizing, financing, procuring or operating battery storage? The open board measures a standardised asset; the Commercial tier measures yours — your real duration, power, cycling, degradation and route-to-market, across every market it trades — the figure you underwrite, govern contracts on, and report.
CausalGrids Lab is the measured layer of the SSI ecosystem — independent measurement, from grid to asset to accounts. Beneath it, the SSI Index: a non-profit foundation project mapping ~800,000 substations and ~4.5 million km of power lines across the OECD. Above it, SSI ENN values a generation asset — coupled to the substation it connects to — for its value to owners, grid and community, across BESS, solar, wind and hybrids. It covers both sides an owner must satisfy: compliance (CSRD · ESRS · EU Taxonomy) and periodic Level-3 valuation (IPEV · IFRS / US GAAP) — reconciled on a GIPS-consistent basis, so the performance an LP sees rests on one consistent, comparable, transparent and auditable footing. GIPS® compliance, where presented, rests on independent verification and is not self-certified here.