Dunkelflaute Calculator

How much battery storage does Germany need to survive periods of low wind and solar?

What is a Dunkelflaute?

Dunkelflaute (German: "dark doldrums") describes extended periods when both wind and solar generation are very low - typically during cold, cloudy, windless winter days. During these events, renewable energy cannot meet electricity demand, requiring backup power from fossil plants, imports, or stored energy.

Learn more...

The model uses real generation and load data from the ENTSO-E Transparency Platform and runs a PyPSA power system optimization. Dunkelflaute hours = hours where backup fossil plants must run even after all battery, import, and V2G capacity is exhausted.

Hours vs. days: Batteries and EVs bridge short gaps well. But a 30 GWh V2G fleet covers ~25% of a 24-hour deficit and only ~8% of a 72-hour event. Multi-day events need interconnectors, dispatchable generation, and long-duration storage.

Did you know? In 2025, new BEVs added ~35 GWh of battery capacity to Germany's roads - 5× more than all new stationary grid batteries combined (6.6 GWh).

Attribution: This calculator is based on the ECO STOR Dunkelflaute Dashboard and its open-source model, extended with imports, V2G, cost estimation, and multi-year ENTSO-E data. © Original model by ECO STOR GmbH.

Parameters

Load a Scenario

Select a pre-calculated scenario or adjust parameters below.

Weather Year & Load

Installed Renewables

Short-duration batteries (Li-ion, 2-4h)

Short-duration: 100 GWh

Long-duration storage (8h+)

Long-duration: 0 GWh
Total storage: 100 GWh

Imports

Effective import depends on whether neighbors also have low RE. Set based on your assumption.

Electric Vehicles (V2G)

V2G total: 0.7 GW / 1.8 GWh

Cost Estimation

Results

Adjust parameters and click Calculate to see results.

Detailed Analysis

Weather Year Context

Energy Balance

EV Fleet Context

Import Analysis

Germany's Current Energy Infrastructure (Reference)

Total electricity demand (2024)470 TWh
Peak demand (winter)~80 GW
Installed RE capacity (2024)~176 GW
RE share of generation (2024)~60%
Grid-scale battery storage (H1 2026)3.4 GW / 5.7 GWh
Home battery storage (2025)~20 GWh
Pumped hydro storage~6.4 GW / ~40 GWh
BEV fleet (Jan 2026)2,034,260
BEV annual sales (2025)545,142 (19.1%)
Total passenger cars49,500,000
Gas power plant capacity~34 GW
Battery cell cost (2025)~100 EUR/kWh
Battery system cost (installed, Europe)165-240 EUR/kWh
Battery system cost (projected 2030)~80-120 EUR/kWh

Sources: BNetzA, Fraunhofer ISE, KBA, BNEF, Modo Energy, SMARD

Storage Products on the Market (2026)

Short-duration BESS (Li-ion, C0.5, 2-4h)

ProductCapacityCost
CATL TENER6.25 MWh/unitn/a
Tesla Megapack 2 XL3.9 MWh/unit~266 USD/kWh
BYD MC Cube-T6.4 MWh/unitn/a (15yr warranty)
Fluence Gridstack Pro5.6 MWh/unitn/a (87% RTE)

Long-duration storage (8h+)

TechnologyDurationCostRTE
Vanadium flow (Invinity, CellCube)4-24h300-500 EUR/kWh~75%
Iron-air (Form Energy)100h30-80 USD/kWh (proj.)40-50%
Compressed air (Hydrostor)8-24h150-300 USD/kWh60-65%
Gravity (Energy Vault)4-12h200-400 USD/kWh75-80%

V2G vehicles in Germany

VehicleBatteryV2G powerPrice
BMW iX3 (Neue Klasse)108 kWh11 kWfrom EUR 63,400
VW ID.3/4/5/7 (via Elli)52-86 kWhTBDfrom EUR 35,000

German BESS projects under construction

Klostermansfeld (BW ESS)1,000 MW / 5,700 MWhCOD 2028
LEAG GigaBattery Janschwalde1,000 MW / 4,000 MWhplanned
LEAG GigaBattery Boxberg400 MW / 1,600 MWh2026
RWE Hambach236 MW / 470 MWhCOD 2027

Sources: CATL, Tesla, BYD, Fluence, Form Energy, Invinity, Hydrostor, BMW, VW, ESS News

Methodology & Assumptions ▼ click to expand

How the Model Works

This calculator uses PyPSA (Python for Power System Analysis), an open-source power system optimization framework. For each hour of the selected year, the model determines the least-cost dispatch of all available generation, storage, and import resources to meet electricity demand.

The optimizer minimizes total system cost by dispatching cheap renewables first, then batteries, imports, and finally backup power plants. Dunkelflaute hours are the hours where even after using all available renewables, batteries, imports, and V2G, the system still needs backup fossil/hydrogen power plants.

Data Sources

Generation profilesENTSO-E Transparency Platform - actual hourly generation by source for Germany (DE-LU bidding zone), 2020-2024
Load profilesENTSO-E - actual hourly electricity demand, 2020-2024
Installed capacityBNetzA Marktstammdatenregister, Fraunhofer ISE Energy Charts
EV statisticsKraftfahrt-Bundesamt (KBA) - fleet size, registrations
InterconnectorsENTSO-E TYNDP, BNetzA - total ~30 GW physical line capacity across 11 neighboring countries
Battery costsBloombergNEF, IRENA, Fraunhofer ISE - 2025/2026 market data

Key Assumptions

Profile scalingHistorical generation profiles are normalized to installed capacity, then scaled to user-selected capacity. This assumes the same capacity factor distribution as the historical year.
Marginal costsRenewables: 0.1 EUR/MWh (near-zero). Imports: 50 EUR/MWh. Backup plants: 100 EUR/MWh marginal + 1,000 EUR/MW capital cost. The optimizer dispatches cheapest sources first.
Battery storageCyclic state-of-charge (SOC at year end = SOC at year start). Standing loss: 0.01%/hour. User-configurable charge/discharge efficiency (default 90%/100%).
ImportsModeled as a flat-capacity generator available at all hours. In reality, import capacity varies hourly with neighboring countries' own supply/demand balance. The user sets the assumed maximum. Default 21 GW = ~30 GW physical capacity minus ~30% for congestion, reliability margins, and the likelihood that neighbors also experience low RE during a Dunkelflaute.
Germany's cross-border interconnectors (~30 GW total)
CountryCapacityType
Austria (AT)~5,000 MWAC lines
Netherlands (NL)~5,000 MWAC lines
France (FR)~4,600 MWAC lines
Switzerland (CH)~4,200 MWAC lines
Poland (PL)~3,000 MWAC + phase shifters
Czech Republic (CZ)~2,500 MWAC + phase shifters
Denmark (DK1+DK2)~2,500 MWAC (Jutland) + HVDC (Kontek, Kriegers Flak)
Norway (NO)1,400 MWHVDC subsea (NordLink, 2021)
Luxembourg (LU)~1,200 MWAC lines
Belgium (BE)1,000 MWHVDC underground (ALEGrO, 2020)
Sweden (SE)600 MWHVDC subsea (Baltic Cable, 1994)
Total~31,000 MW

Planned: NeuConnect (DE-UK, 1,400 MW, 2028), SuedLink/SuedOstLink (internal HVDC, 6,000 MW, 2027-28) will increase effective cross-border capacity by reducing internal congestion. Sources: ENTSO-E TYNDP, BNetzA, Clean Energy Wire.

V2G (Vehicle-to-Grid)Modeled as a separate storage unit. Charge efficiency 88%, discharge 92%, standing loss 0.1%/h. Usable capacity = EV count × participation × battery size × usable share. Cyclic constraint applies.
Single nodeGermany modeled as a single bus (copperplate). No internal grid congestion. In reality, north-south bottlenecks can create regional Dunkelflaute even with national surplus.
No demand responseDemand is treated as fixed (inelastic). Industrial demand response and smart EV charging (V1G) are not modeled. Both would reduce Dunkelflaute severity.

Limitations

  • Weather years are not forecasts. Results depend heavily on the selected weather year. 2021 had notably low wind; 2023 had high solar. A bad wind year produces more Dunkelflaute.
  • No spatial resolution. Germany is one node. Real-world grid constraints, especially north-south transmission limits, are not captured.
  • Import availability is a flat assumption. During a pan-European Dunkelflaute, all neighbors may have low RE simultaneously, reducing actual import availability below the set maximum.
  • No long-duration storage beyond batteries. Hydrogen storage, pumped hydro, and compressed air are not modeled. These are critical for multi-week seasonal storage.
  • Perfect foresight. The optimizer has perfect knowledge of the full year. Real system operators face forecast uncertainty, requiring additional reserves.
  • V2G availability is idealized. In practice, V2G participation depends on time of day, driving patterns, and willingness to participate. Not all participating cars are plugged in at all times.

Default Values & References

ParameterDefaultReference (Germany)Source
Annual load500 TWh470 TWh (2024)SMARD/BNetzA
Solar PV215 GW97 GW (2024)BNetzA MaStR
Wind onshore115 GW62 GW (2024)BNetzA MaStR
Wind offshore30 GW9 GW (2024)BNetzA MaStR
Battery storage25 GW / 4h3.4 GW / 5.7 GWh (H1 2026)Modo Energy
Max import21 GW~30 GW total line capacity (all borders)ENTSO-E TYNDP
BEV fleet2,000,0002,034,260 (Jan 2026)KBA
Total cars (DE)49,500,00049,486,487 (Jan 2026)KBA/Destatis
Avg BEV battery60 kWh~63 kWh (sales-weighted)VW/Skoda/BMW specs
Battery system cost200 EUR/kWh165-240 EUR/kWh (installed, Europe)BNEF, IRENA
Grid connection100 EUR/kW~1,500 EUR/MW deposit + constructionBNetzA

Open Source

This calculator is based on the ECO STOR Dunkelflaute model, extended with imports, V2G, cost estimation, and real ENTSO-E data. The optimization engine is PyPSA with the HiGHS solver. Source code: Backend | Frontend.