Storage

How we model 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 fixed power limits unrelated to state of charge, 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
C‑rate tapering Grid‑scale batteries Fleets are most agile at mid‑SoC, less so at extremes
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 C‑rate taper; 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). Subject to C‑rate tapering and heterogeneous cycling costs 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 is no C‑rate taper or 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 becomes a single modelled unit with rated power \(P^{\max}_s\) (MW), energy capacity \(E^{\max}_s\) (MWh) and round‑trip efficiency \(\eta_s\).
  • 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 and C‑rate taper.
  • 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.

C‑rate tapering: 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 introduce C‑rate tapering: the maximum power depends on state of charge (SoC). Intuitively:

  • when the fleet is almost empty, it cannot discharge at full power for long;
  • when it is almost full, it cannot absorb at full power indefinitely;
  • the mid‑SoC region is where the fleet is most nimble.

Three SoC segments

For each fleet unit \(s\) and time \(t\), we partition the state of charge into three segments:

\[E_{s,t} = E^{\text{low}}_{s,t} + E^{\text{mid}}_{s,t} + E^{\text{high}}_{s,t},\]

with caps

\[E^{\text{low}}_{s,t} \leq f_{\text{low}} E^{\max}_s, \quad E^{\text{mid}}_{s,t} \leq f_{\text{mid}} E^{\max}_s, \quad E^{\text{high}}_{s,t} \leq f_{\text{high}} E^{\max}_s,\]

and \(f_{\text{low}} + f_{\text{mid}} + f_{\text{high}} = 1\).

We also define the headroom \(H_{s,t} = E^{\max}_s - E_{s,t}\), partitioned similarly into:

\[H_{s,t} = H^{\text{low}}_{s,t} + H^{\text{mid}}_{s,t} + H^{\text{high}}_{s,t},\]

with caps mirroring the SoC segments. These segments are continuous variables; there are no additional binaries, so the system remains a linear programme.

Tapered discharge and charge limits

We define a rated C‑rate:

\[C_s = \frac{P^{\max}_s}{E^{\max}_s} \quad [\text{h}^{-1}],\]

and assign taper factors \(r_{\text{low}}\), \(r_{\text{mid}}\), \(r_{\text{high}}\) to the three segments. The discharge and charge constraints become:

  • Discharge taper
\[P^{\text{exp}}_{s,t} \;\leq\; C_s \left( r_{\text{low}} E^{\text{low}}_{s,t} + r_{\text{mid}} E^{\text{mid}}_{s,t} + r_{\text{high}} E^{\text{high}}_{s,t} \right).\]
  • Charge taper
\[P^{\text{imp}}_{s,t} \;\leq\; C_s \left( r_{\text{low}} H^{\text{low}}_{s,t} + r_{\text{mid}} H^{\text{mid}}_{s,t} + r_{\text{high}} H^{\text{high}}_{s,t} \right).\]

The taper factors are chosen so that:

  • the mid‑SoC segment is the most flexible;
  • near‑empty and near‑full segments are more constrained;
  • the overall fleet can still deliver rated power for realistic durations, but not as a perfectly flat block across all hours.

Behavioural interpretation

At fleet level, tapering means:

  • The first MWhs of discharge come from the most flexible mid‑segment.
  • As the fleet empties, remaining energy is less able to move quickly, so prices do not collapse to the same degree.
  • Similarly, when charging from empty, early MWhs can be absorbed quickly, but it becomes harder to keep charging at full power as the fleet fills up.

This structure is one of the main reasons the model avoids unrealistic “all batteries attack the same hour at maximum power” solutions.

Cycling costs and competition within the fleet

To capture the idea that not all batteries are identical, we introduce asset‑ and time‑varying cycling costs. In the objective, the storage cycling term becomes:

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

where \(\lambda_{s,t}^{\text{cycle}}\) varies smoothly across assets and time.

In practice, older assets or those with higher degradation rates tend to have higher cycling costs than newer installations. This means newer, cheaper-to-cycle fleets dispatch first, while older or more constrained assets only cycle when spreads are wide enough to justify it. The model avoids perfectly flat marginal costs for storage, which would otherwise lead to knife‑edge price responses.

This heterogeneity 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 SoC‑dependent power limits and cycling costs 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 C‑rate tapering (SoC‑dependent) Coordination cap \(\alpha_t\)
SoC limit None Minimum backup SoC
Cycling cost Asset‑ and time‑varying 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:

  • SoC vs max power curve – stylised plot comparing a flat C‑rate limit with the tapered limit used in the model, highlighting the low/mid/high segments
  • Dispatch example for a single fleet – stacked area chart of \(E^{\text{low}}, E^{\text{mid}}, E^{\text{high}}\) over a week, overlaid with charge/discharge power, showing how the mid segment does most of the work
  • Price impact of tapering – comparison of two runs on the same day (tapering on vs off) to show how tapering avoids square‑wave prices and reduces extreme ramping
  • Cycling cost heterogeneity – histogram or violin plot of \(\lambda_{s,t}^{\text{cycle}}\) across fleets for a representative hour, illustrating that some fleets 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