CausalGrids Lab Walk forward, don't look ahead.

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 published In development / wired feed connected, no capture yet Commercial 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.
Marketp·m·cglcapturepersistencecoverage
Iberia & South-East Europe
Spain98.4%97.8%Open preview · validated
Portugal97.2%96.4%Open preview · validated
Greece94.7%90.4%Open preview · validated
Italy — 7 bidding zones
Italy — North90.4%78.7%Open preview · validated
Italy — Centre-North90.8%79.4%Open preview · validated
Italy — Centre-South92.5%82.1%Open preview · validated
Italy — South93.1%84.7%Open preview · validated
Italy — Calabria93.0%84.4%Open preview · validated
Italy — Sicily93.4%87.2%Open preview · validated
Italy — Sardinia89.4%82.3%Open preview · validated
Central-West Europe
Germany-Luxembourg98.9%94.1%Open preview · validated
France94.6%91.4%Open preview · validated
Netherlands97.3%93.1%Open preview · validated
Belgium96.6%91.7%Open preview · validated
Austria95.8%93.0%Open preview · validated
Switzerland96.6%93.0%Open preview · validated
Central-East & South-East Europe
Poland96.9%90.9%Open preview · validated
Czechia96.3%93.0%Open preview · validated
Slovakia95.4%94.0%Open preview · validated
Hungary96.1%95.0%Open preview · validated
Romania95.3%92.0%Open preview · validated
Bulgaria90.2%86.4%Open preview · validated
Croatia94.6%92.8%Open preview · validated
Slovenia94.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 · SE485.4%72.2%Open preview · validated
Norway NO1 · NO2 · NO3 · NO4 · NO569.2%61.6%Open preview · validated
Finland75.9%55.0%Open preview · validated
Estonia · Lithuania · Latvia85.0%73.4%Open preview · validated
British Isles
Great Britain82.0%61.7%Open preview · validated
Ireland (SEM)75.3%59.1%Open preview · validated
North America
CAISO — SP1585.0%76.2%Open preview · validated
PJM — Western Hub91.5%90.8%Open preview · validated
NYISO — Zone J (NYC)Commercial tier
ERCOT — North HubCommercial tier
MISO — Indiana HubCommercial tier
SPP — South HubCommercial tier
IESO — Ontario CanadaCommercial tier
AESO — Alberta CanadaCommercial tier
Not on the free feed — Commercial tier
Bosnia-Herzegovina · Ukraine · Moldova · North MacedoniaCommercial 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.
Marketp·m·cglcapturepersistencecoverage
Intraday value stack — Commercial tier
Spain OMIE continuous (IDA)Commercial tier
Portugal OMIE continuous (IDA)Commercial tier
Italy — 7 zones GME MI-A3>A2>A1Commercial tier
Germany-Lux · France · Netherlands · Belgium · Austria · Switzerland EPEX M7 · Nordics Nord Pool · Great BritainCommercial 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.
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
MW€/MWh000408121620
Intraday — revised price & repositioning
same day · reposition re-optimised on the revised price
MW€/MWh000408121620
Marketp·m·cglcapturepersistencecoverage
FCR — Pan-EU cooperation 8 zones · regelleistung95.2%93.1%Open preview · verified 240/240
Italy — South GME MSDCommercial tier
Italy — North GME MSDCommercial tier
aFRR (PICASSO) ENTSO-E 17.1.F · DE-LUCommercial tier
aFRR (PICASSO) Elia Open Data · BECommercial tier
aFRR (PICASSO) RTE Data Portal · FRCommercial tier
aFRR / balancing APG Transparency · ATCommercial tier
aFRR / balancing TenneT · NLCommercial tier
mFRR (MARI) ENTSO-E 17.1.FCommercial tier
RR (TERRE) ENTSO-ECommercial 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.
Zonep·m·cglcapturepersistenceupliftcoverage
Germany-Lux incl. DK-DE block97.2%92.7%+4.5ppOpen preview · verified 30/30
France regelleistung96.1%91.5%+4.6ppOpen preview · verified 30/30
Netherlands regelleistung93.9%91.5%+2.4ppOpen preview · verified 30/30
Austria regelleistung95.9%95.0%+0.9ppOpen preview · verified 30/30
Belgium regelleistung94.8%91.5%+3.3ppOpen preview · verified 30/30
Switzerland regelleistung93.4%92.6%+0.8ppOpen preview · verified 30/30
Czechia regelleistung95.7%93.5%+2.1ppOpen preview · verified 30/30
Slovenia regelleistung94.3%96.4%−2.2ppOpen 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
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).
Dailyoperational flashindependent-sourceWeeklytrend flashindependent-sourceMonthlymanagement packprepared in accordanceQuarterlygovernance / fair valueISRE 2410 · ISAE 3000 (limited)Annualsigned flagshipISAE 3000 / 3410 · reasonableassurance grade escalates in a cliff, not a ramp — one subscription auto-delivers the full cadence; event-driven re-verify on a material drop.
Basis of preparation, independence & controls Coverage & 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.

To arrange a conversation, write to ssi_index@ikenga.eu.