Voltstack · Benchmarks

German battery storage revenue index

A monthly EUR/MW/month revenue index for a reference German battery, computed from real market data: ENTSO-E day-ahead prices, regelleistung.net capacity-market clearing prices, and netztransparenz.de's imbalance estimator. Every number below is derived from the same database rows the app itself reads — nothing here is illustrative.

Reference battery: 1 MW / 2 MWh

Power rating
1 MW

Matches the 1 MW minimum bid size for FCR, aFRR, and mFRR capacity auctions on regelleistung.net.

Energy capacity
2 MWh (2-hour duration)

Clears the storage-specific minimum energy requirements for both FCR (15 minutes at rated power) and aFRR/mFRR (60 minutes) with headroom for a combined strategy.

Round-trip efficiency
90%

A commonly used assumption for grid-scale lithium-ion BESS technoeconomic models, not a DE market rule. Applied once, on the discharge side.

Cycling cap
1.5 equivalent full cycles/day

A conservative assumption consistent with typical multi-year augmentation planning for daily-cycling arbitrage, not a DE market rule.

Day-ahead arbitrage
Perfect foresight, exact SoC-constrained optimal dispatch

A dynamic program over each day’s real entsoe-dayahead (DE_LU) prices, respecting power rating, energy capacity, and the daily cycling cap exactly. Labeled an upper bound because no forecast error, transaction cost, or degradation is modeled - the standard convention for this kind of benchmark.

Capacity revenue
aFRR/mFRR at the marginal clearing price; FCR at its uniform clearing price

Assumes the full 1 MW is committed to that single product for every 4-hour block of the day it is counted - a battery cannot commit to a capacity product and run full arbitrage on the same MW at the same time.

aFRR/mFRR direction stacking
Positive and negative reserve products both counted on the same MW

A battery held at mid state of charge can offer upward and downward reserve simultaneously, which is standard battery bidding practice in the German aFRR and mFRR merit orders. FCR needs no such assumption: it is a single symmetric product by construction.

Combined strategy
Whole-day binary choice: arbitrage or best-of capacity, whichever pays more that day

Not a per-hour blend. A day either runs full arbitrage or commits full capacity to whichever of aFRR/mFRR/FCR pays the most that day.

Imbalance / reBAP
Context only, not a modeled revenue stack

Actively settling a position against reBAP is a trading strategy, not a benchmark assumption - shown as the netztransparenz AEP estimator’s monthly average for reference only.

Full methodology, derivations, and a hand-checked worked example: docs/enterprise-platform/BESS-DE-METHODOLOGY.md in the repository.

Monthly revenue index

Loading…

Bars sum the standalone revenue of each stack (arbitrage, aFRR, mFRR, FCR) — not what a single battery could physically earn simultaneously. See the combined-strategy row below and the assumption table above for what a battery can actually do with one MW at a time.

Imbalance / reBAP (context only)

The German reBAP settlement price context, shown for reference only. Actively trading a position against reBAP is a distinct strategy this index does not model in this version — see the scope note in the methodology doc.

No AEP estimator data in the requested window yet.

Data provenance

  • Day-ahead prices: ENTSO-E Transparency Platform, day-ahead auction (A44), DE_LU bidding zone.
  • aFRR / mFRR capacity prices: regelleistung.net Datacenter, anonymised per-bid capacity-market results, marginal clearing price.
  • FCR capacity prices: regelleistung.net Datacenter, same endpoint, uniform (pay-as-cleared) clearing price.
  • Imbalance context: netztransparenz.de AEP estimator (a near-real-time proxy for the final, settled reBAP price).
loading…

See /status for live feed health, or /docs for how this platform handles data honesty generally.