Storage (technical)

Modelling the complex operations of the storage fleet


Key principles

Storage assets are a small part of today’s power systems but grow quickly in our long‑term outlook. That future fleet will play a major role in setting prices, so we need a modelling approach that can stand up to scrutiny before it arrives at scale.

This page explains how storage is represented in the market model, what behaviours emerge from that representation, and why we believe this is a robust way to capture the impact of growing storage fleets on prices and revenues.

Energy arbitrage and price formation

The fundamentals model clears the wholesale market (e.g. the day-ahead market) by solving a system cost minimisation problem. For storage, this acts as a reasonable proxy for profit-maximising energy arbitrage.

When the model charges a battery, it does so because prices are low – buying energy is cheap. When it discharges, prices are high – selling is valuable. The zonal prices that emerge from this market-clearing process reflect the collective effect of storage alongside all other generation and demand.

In a competitive market, there is a well-known relationship between system-level optimisation and individual behaviour:

  • System cost minimisation finds a dispatch that serves load at low total cost.
  • Individual profit maximisation leads each asset to buy low and sell high.
  • At equilibrium, these perspectives tend to align – the prices that clear the market are also the prices that would guide profit-seeking behaviour.

Our modelling approach draws on this relationship. By solving the market-clearing problem with storage included, we capture the effect of batteries doing energy arbitrage and shaping wholesale prices. The resulting price forecasts reflect a world where storage operators respond to spreads in much the same way they would in a competitive market.

For asset-specific dispatch optimisation and detailed revenue modelling, see the Battery Dispatch Model section.

Avoiding unrealistic “square‑wave” behaviour

Storage has simple physics but strong system‑wide effects. When fleets get large, small modelling choices can meaningfully change:

  • when batteries move energy across time,
  • how much they compress price spreads, and
  • how often they displace fossil or renewable plant.

If you give a large battery fleet perfect foresight, no cycling penalties, and one perfectly coordinated block of capacity, the cost‑minimising solution tends to charge flat‑out below a threshold price and discharge flat‑out above it. At high penetrations this produces near‑square‑wave price shapes – valleys filled in, peaks shaved, prices almost bi‑modal. Real markets are messier: operators have different expectations and constraints, not all batteries see the same signals, and grid limits constrain how aggressively they can move.

Our goal is to let storage move prices in a realistic way, without turning it into an all‑knowing, perfectly coordinated trader. We do this by keeping the mathematics clean and transparent, and adding a small number of behavioural frictions:

Friction Applies to Effect
Cycling cost tranches Grid‑scale batteries Each fleet is split into tranches with their own state of charge and cycling cost, so only part of the fleet cycles on a typical day
Fleet power caps Grid‑scale batteries Charge and discharge at each bidding zone are capped at 80% of fleet power
Cycling costs All storage Storage seeks a minimum arbitrage value to protect limited lifetime of cycles
Coordination limits Prosumer batteries Only a fraction of behind‑the‑meter capacity responds in a coordinated way

Together these produce storage actions and price shifts that are smoother and more heterogeneous, much closer to what we observe in high‑penetration storage markets.

Technologies covered

We distinguish three storage types, each with its own operational rules:

  • Pumped hydro – Long‑duration, large‑scale assets that behave like reversible hydro plants. Typically a small number of big units with durations of ~10 hours. No tranches; treated as well‑managed assets with simple operational limits.

  • Grid‑scale batteries – Aggregated fleets of grid‑connected batteries, grouped by bidding zone and duration (2h, 4h, 6h, 8h). Split into cycling cost tranches with separate state of charge, to prevent unrealistic, perfectly coordinated ramps.

  • Prosumer batteries – Aggregated home and commercial/industrial batteries behind the meter. These behave differently from grid‑scale fleets: they keep a minimum state of charge for backup and only a time‑varying fraction of the fleet can act in a coordinated way at any point in time.

Pumped hydro

Pumped hydro is modelled as a classic energy‑limited reservoir with round‑trip efficiency:

  • Each plant has a power capacity \(P^{\max}\) (MW) and a usable energy reservoir \(E^{\max}\) (MWh).
  • We assume a round‑trip efficiency \(\eta_{\text{PH}} \lesssim 1\), applied on the charging side.
  • Plants can both import (pumping) and export (generating), but remain bound by reservoir limits and power limits.

For each pumped hydro unit \(s\) and time step \(t\) with step length \(\Delta t\) (hours), the state of charge evolves as:

\[E_{s,t} = E_{s,t-1} + \eta_{\text{PH}}\, P^{\text{imp}}_{s,t-1}\,\Delta t - P^{\text{exp}}_{s,t-1}\,\Delta t,\]

with bounds

\[0 \leq E_{s,t} \leq E^{\max}_s \quad\text{and}\quad 0 \leq P^{\text{imp}}_{s,t},\, P^{\text{exp}}_{s,t} \leq P^{\max}_s.\]

In plain language:

  • Pumped hydro stores energy when prices are low (pumping) and releases energy when prices are high (generating).
  • The model tracks the water level (SoC) over time and ensures it never exceeds the reservoir size or goes negative.
  • There are no tranches and no prosumer behaviour here; pumped hydro is treated as a set of large, well‑managed assets with relatively simple operational limits.

Grid‑scale batteries

Grid‑scale batteries are one of the fastest‑growing storage technologies. As gigawatts of capacity arrive, they start to shape prices, not just follow them. Our model captures this behaviour in a way that is:

  • rich enough to represent competition between storage and other technologies,
  • nuanced enough to avoid unrealistic “perfect trader” behaviour, and
  • simple enough to remain transparent and explainable.

Fleet representation and aggregation

Rather than modelling every individual site, we represent batteries as aggregated storage units:

  • Capacity is grouped by bidding zone, technology (“Battery Storage”) and duration (e.g. 2h, 4h, 6h, 8h).
  • Each group has rated power \(P^{\max}_s\) (MW), energy capacity \(E^{\max}_s\) (MWh) and round‑trip efficiency \(\eta_s\).
  • Each group is then split into tranches of up to 500 MW (see Cycling cost tranches).
  • Installed capacity paths are interpolated across the forecast horizon so that growth is reflected smoothly over time.

In each bidding zone, the combination of different durations gives the system a portfolio of “fast but shallow” and “slower but deeper” storage. This mirrors how real markets build a mix of 2‑hour, 4‑hour and longer‑duration assets to balance intraday spreads and multi‑day events.

Each fleet unit can charge (\(P^{\text{imp}}_{s,t}\)), discharge (\(P^{\text{exp}}_{s,t}\)), and hold energy (\(E_{s,t}\)), subject to the constraints below.

Emergent arbitrage rather than hard‑coded bidding

Grid‑scale batteries participate in the same system cost minimisation as other technologies:

  • They pay a cycling cost per MWh charged/discharged.
  • They are limited by power and energy capacity, round‑trip efficiency, state‑of‑charge limits and fleet power caps.
  • They interact with network constraints and transmission limits through zonal balances.

The contribution of fleet \(s\) to the objective over all times \(t\) is:

\[\sum_t \lambda_{s,t}^{\text{cycle}} \bigl(P^{\text{imp}}_{s,t} + P^{\text{exp}}_{s,t}\bigr),\]

with \(\lambda_{s,t}^{\text{cycle}}\) a time‑ and asset‑varying cycling cost discussed below.

The dual variables of the power balance constraints are the zonal prices. These prices are not imposed externally; they emerge from the interaction of:

  • thermal generation bids,
  • renewable curtailment penalties,
  • loss‑of‑load penalties,
  • network congestion, and
  • storage decisions.

Because the optimisation is global, battery behaviour emerges as a by‑product of minimising total system cost. Storage imports when the model “thinks” energy is cheap relative to its future value; it exports when it can displace more expensive generation. When discharging, storage effectively sets the price by undercutting the next thermal unit in the merit order, bidding just below what that plant would offer, given where demand sits on the supply stack.

Cycling cost tranches: preventing unrealistically coordinated fleets

A naive representation would give each fleet a constant charge/discharge limit:

\[0 \leq P^{\text{imp}}_{s,t},\, P^{\text{exp}}_{s,t} \leq P^{\max}_s,\]

independent of how full the battery is. With perfect foresight, a large fleet under these rules:

  • charges flat‑out whenever prices are below some threshold,
  • discharges flat‑out when prices are above it, and
  • if the fleet is big, it can transform the price shape into something close to a square wave.

To avoid this, we split each utility‑scale fleet into tranches. Each tranche is a separate storage unit with its own state of charge and its own cycling cost.

Tranche size

  • Each fleet is split into tranches of up to 500 MW.
  • A fleet has at least 2 and at most 20 tranches. Fleets above 10 GW therefore have 20 tranches larger than 500 MW.
  • Each tranche gets an equal share of the fleet’s power and energy capacity.

Cycling costs

Each tranche \(k\) pays a cycling cost \(\lambda_{k,t}^{\text{cycle}}\) per MWh charged and discharged. In the objective, the storage cycling term becomes:

\[\sum_{k,t} \lambda_{k,t}^{\text{cycle}} \bigl(P^{\text{imp}}_{k,t} + P^{\text{exp}}_{k,t}\bigr).\]
  • Costs are spread on a geometric scale from €10/MWh to €200/MWh across the tranches of a fleet.
  • A small time‑of‑day modulation is added, so tranches with similar costs do not act in exactly the same hour.
  • The range was calibrated against observed GB battery behaviour (Elexon physical notifications and day‑ahead plus intraday positions, 2023–2025).

These are not physical wear costs. They spread day‑ahead participation across the fleet. The highest costs reflect that part of the fleet keeps headroom in day‑ahead, so it can cycle in other markets later, such as intraday and the Balancing Mechanism in GB.

State‑of‑charge limits

Each tranche runs between 5% and 95% of its energy capacity:

\[0.05\,E^{\max}_k \leq E_{k,t} \leq 0.95\,E^{\max}_k.\]

Fleet power caps

Total charge and total discharge of all tranches at a bidding zone are each capped at 80% of fleet power:

\[\sum_k P^{\text{exp}}_{k,t} \leq 0.8\,P^{\max}_s, \quad \sum_k P^{\text{imp}}_{k,t} \leq 0.8\,P^{\max}_s.\]

Behavioural interpretation

At fleet level, tranches mean:

  • Low‑cost tranches trade on small spreads. High‑cost tranches wait for wider ones.
  • Different parts of the fleet sit at different charge levels and cycle on different days.
  • On a typical day only part of the fleet cycles, as in high‑penetration markets such as CAISO.

This structure models competition within the storage fleet, different owners face different economics, without requiring explicit bidding strategies for each.

Why this is a good proxy for high‑penetration storage markets

Real markets with large storage fleets show several common patterns:

  • Batteries increasingly set prices during ramps and scarcity events.
  • Price shapes change, but they rarely become perfectly flat plateaus.
  • Different parts of the fleet behave differently depending on contracts, risk appetite and operational constraints.

Our representation captures these features by:

  • Allowing fleets to materially shift prices through energy arbitrage and reserves.
  • Enforcing tranche‑level cycling costs, state‑of‑charge limits and fleet power caps that prevent unrealistically coordinated behaviour.
  • Embedding storage into a global system cost minimisation where behaviour is emergent rather than hand‑coded.

This makes the model a strong tool for exploring questions such as:

  • How quickly do additional GW of 4‑hour batteries erode peak prices?
  • How do spreads evolve as storage penetration increases?
  • What is the relative value of adding more duration vs more power in a given bidding zone?

Prosumer batteries

Prosumer batteries represent behind‑the‑meter storage installed by households and small/medium businesses. They increase self‑consumption of solar, provide backup during outages and, increasingly, participate in flexibility markets.

From a system‑modelling perspective, they are very different from a single merchant battery connected directly to the transmission system. Aggregators, network operators and end‑users all influence how much of this capacity actually shows up in the wholesale market at any given time.

What counts as a prosumer battery?

In the input data we distinguish:

  • Grid‑scale batteries: grid‑connected assets designed primarily for wholesale markets.
  • Prosumer batteries: home and commercial/industrial batteries (“resi‑battery”) located behind the meter.

For modelling purposes:

  • Prosumer batteries are aggregated into fleets by country and duration, so the optimisation sees a small number of representative units rather than millions of installations.
  • These fleets share many of the same physical characteristics as grid‑scale batteries (power capacity, duration, round‑trip efficiency) but they are subject to different operational rules.

Design goals

When modelling prosumer batteries, our goals are to:

  • Capture their contribution to system flexibility and price formation.
  • Reflect that a large share of the capacity is not available for wholesale arbitrage all the time – some is used for backup, some for self‑consumption, some is idle.
  • Avoid treating the entire prosumer fleet as a perfectly coordinated trader with the same capabilities as a large grid‑scale battery.

To achieve this, we focus on two key constraints:

  1. A minimum state of charge to preserve backup capability.
  2. A limit on how much of the fleet can act in a coordinated way at once, which evolves over time.

Minimum state of charge for backup

Prosumer batteries are often installed and operated with resilience in mind. Even when they participate in markets, users typically want some energy left for outages or local reliability.

We represent this by enforcing a minimum state of charge:

\[E_{s,t} \geq \underline{\text{SoC}}_{\text{prosumer}} \cdot E^{\max}_s,\]

for each prosumer fleet \(s\) and time \(t\), where \(\underline{\text{SoC}}_{\text{prosumer}}\) is a fixed fraction of the energy capacity (for example, 25%).

Interpretation:

  • The bottom slice of the battery is reserved for backup and local needs.
  • Only the remaining portion is available to take wholesale price signals.
  • The model can still cycle this asset, but it will never fully drain it in the optimisation.

This assumption better reflects the way many prosumers actually use their batteries today.

Limited simultaneous fleet operation

An important feature of the prosumer representation is that only part of the fleet can act together like a merchant trader at any given time.

We introduce a time‑varying simultaneous operation fraction \(\alpha_t \in [0,1]\) that specifies what share of the prosumer fleet can be actively coordinated in year \(t\). This captures several realities:

  • Not all prosumers sign up to aggregation contracts.
  • Aggregators have different levels of sophistication and different portfolios.
  • Distribution network constraints and tariffs limit how aggressively fleets can be used.

In the model, we cap both charging and discharging of a prosumer fleet:

\[P^{\text{imp}}_{s,t} \leq \alpha_t P^{\max}_s, \quad P^{\text{exp}}_{s,t} \leq \alpha_t P^{\max}_s,\]

with \(\alpha_t\) evolving over time according to a schedule derived from deployment and aggregation scenarios:

Year \(\alpha_t\) Interpretation
2026 0.30 Early stage – only ~30% of prosumer capacity actively coordinated
2035 0.60 Mid-term – virtual power plants and aggregation mature
2050 1.00 Long-run – most prosumer batteries can be coordinated when needed

Values are linearly interpolated between these anchor points.

This simple constraint has powerful implications:

  • It prevents the prosumer fleet from instantly arbitraging every spread it sees.
  • It naturally limits the impact of prosumers on wholesale prices in the near term, while allowing a bigger role later in the horizon.
  • It creates a smooth transition from today’s fragmented landscape to a future with highly coordinated prosumer flexibility.

Interaction with grid‑scale batteries

Prosumer batteries share the same zonal power balance as grid‑scale batteries and generators. When they charge, they add to zonal demand; when they discharge, they offset load or compete with other generation.

However, there are important differences:

  Grid‑scale Prosumer
Power limit Fleet cap at 80% of rated power Coordination cap \(\alpha_t\)
SoC limit 5% to 95% per tranche Minimum backup SoC
Cycling cost €10/MWh to €200/MWh across tranches Asset‑ and time‑varying
Price role Tend to lead in shaping peaks Quietly reshape demand profile

The combined effect is that:

  • Grid‑scale batteries tend to lead in shaping peaks.
  • Prosumer batteries quietly reshape the demand profile, reducing net load during some hours and increasing it during others, without dominating price formation on their own.

Prosumer economics in the system‑cost framework

Even though we do not encode explicit retail tariffs or bill savings in the objective, prosumer batteries still behave in an economically meaningful way.

Within the system‑cost minimisation:

  • Prosumer fleets charge when it is cheap for the system to do so, subject to the minimum SoC constraint, the simultaneous operation cap, and the interaction with other generation and storage.
  • They discharge when they can displace expensive marginal generation or help avoid loss of load.

As a result:

  • The model treats prosumer storage as part of the broader flexibility stack, even though the micro‑economics at the household level sit outside the model.
  • The implied zonal prices include the effect of prosumer behaviour in the same way they include the effect of utility‑scale storage and generation.

Why this representation is useful

This prosumer design strikes a balance between:

  • Realism – acknowledging that most behind‑the‑meter batteries are not fully available to the wholesale market all the time.
  • Simplicity – avoiding the need to model millions of individual customers or detailed retail contracts.
  • Flexibility – allowing different future paths by adjusting the minimum SoC and simultaneous operation schedule.

It is particularly useful for questions such as:

  • How much do prosumer batteries reduce peak net load over time?
  • How do they interact with big battery fleets in shaping evening ramps?
  • How sensitive are long‑term price and revenue projections to assumptions about aggregation and coordination?

Planned figures

We plan to add figures to make these concepts more tangible:

Grid‑scale battery figures:

  • Dispatch example for a tranched fleet – state of charge by tranche over a week, showing that only part of the fleet cycles each day
  • Price impact of tranches – comparison of two runs on the same day (tranches on vs off) to show how tranches avoid square‑wave prices and reduce extreme ramping
  • Cycling cost heterogeneity – histogram of \(\lambda_{k,t}^{\text{cycle}}\) across tranches for a representative hour, illustrating that some tranches are cheaper to cycle than others

Prosumer battery figures:

  • Simultaneous operation fraction over time – line chart of \(\alpha_t\) by year, showing how the coordinated share of the fleet grows from today’s levels towards full participation
  • Impact on net load – comparison of hourly net load profiles with and without prosumer batteries for a representative winter and summer week, highlighting how prosumers reshape demand
  • Prosumer vs utility‑scale contribution – stacked area chart showing the relative contribution of prosumer batteries and big battery fleets to total storage exports during a high‑price event
  • Backup buffer illustration – schematic showing the minimum SoC band reserved for backup versus the actively traded portion of the prosumer battery

System‑level figures:

  • Example day – prices alongside net storage position by fleet type, highlighting how storage smooths peaks without creating a perfect square wave