Back to Insights

 ·  Rui Bento

Intraday Price Arbitrage for Battery Operators: The Fundamentals

European intraday electricity prices may move 40 euros per MWh in one afternoon. A battery charging low and selling high can capture a margin that once went unseen.

Intraday Price Arbitrage for Battery Operators: The Fundamentals

Intraday price arbitrage is the core revenue model for grid-connected battery storage. The idea is simple: charge when electricity is cheap, discharge when it is expensive, and earn the spread. The calculation is straightforward. Executing it precisely at scale is not.

This article explains how intraday arbitrage operates in European electricity markets, with particular attention to the Iberian Peninsula, where MIBEL's session-auction structure determines when price signals arrive. Operators benefit from understanding these fundamentals before designing a dispatch strategy.

The daily price curve and what drives its shape

Across most European electricity markets, intraday prices follow a familiar pattern shaped by generation mix and demand. Overnight prices are usually low because demand is limited and baseload generation covers it. Where overnight wind generation is substantial, prices can approach zero in certain hours.

Prices rise with morning demand. In solar-heavy markets such as MIBEL, they fall again around midday as photovoltaic output peaks. The Iberian Peninsula shows a pronounced duck curve: a midday trough followed by a sharp evening ramp when solar output declines and demand grows. For battery operators in southern Europe, much of the arbitrage value lies in this ramp.

The available spread changes from one day to the next. Cloud cover can weaken the solar midday dip and narrow the spread. High wind and solar output can push midday prices near or below zero in several markets at once. Weekly spread availability responds to weather, demand, cross-border interconnector flows, and the operating status of large generation assets. A dispatch strategy based on one fixed expected spread will repeatedly disappoint.

How intraday session pricing differs from day-ahead

In MIBEL, intraday trading consists of six discrete auctions, not continuous bilateral trading. Each session covers defined delivery hours still remaining that day. Day-ahead prices are published at approximately 13:00 CET for the next day's 24 hours. Intraday sessions revise those signals as conditions change, including reduced midday solar from a cloud bank, an unexpected industrial demand spike, or a transmission constraint that separates a price zone.

The difference between day-ahead prices and intraday clearing prices can be substantial. A battery planned solely around day-ahead prices may see its target hours clear 20 to 40 EUR/MWh higher or lower than expected. Relying only on day-ahead prices means trading against yesterday's forecast instead of today's conditions.

Session timing makes manual dispatch particularly difficult. Every session opens and clears at a defined time. If session 3 reveals higher-than-expected late-afternoon prices, the dispatch system must reassess every site's charge position against the new signal. Repeating that process manually after each session is not a reasonable task for a multi-site fleet.

The mechanics of a realistic arbitrage cycle

Take a typical summer day in the MIBEL Portugal zone. Day-ahead prices published at 13:00 show 32 EUR/MWh from 02:00 to 06:00, a midday trough of 18 EUR/MWh from 11:00 to 15:00, and an evening peak of 105 EUR/MWh from 19:00 to 21:00. A 10 kWh battery charges during the trough and discharges during the evening peak.

With 90% round-trip efficiency, 10 kWh of charging produces 9 kWh for export. At a 105 EUR/MWh discharge price and an 18 EUR/MWh charge cost, (9 x 0.105) minus (10 x 0.018) equals approximately 0.77 EUR gross per cycle. Three hundred comparable cycles per year in a 15 kWh battery produce roughly 345 EUR in annual gross arbitrage revenue per site, before platform costs and battery degradation.

For a 40-site fleet averaging 15 kWh per site, the same spread produces approximately 13,800 EUR per year in gross arbitrage revenue. The result for a particular fleet depends on battery capacity, the real spread captured versus the theoretical spread, and how reliably dispatch places batteries in high-value windows.

What compresses the actual spread captured

The spread captured in operation is always below the theoretical maximum shown in day-ahead prices. Several forces narrow it, so understanding them is more useful than planning around ideal conditions.

Intraday session prices can depart from day-ahead prices. A battery targeting an 87 EUR/MWh day-ahead spread may find session 4 clearing at 65 EUR/MWh for those hours. If dispatch is not revised session by session, that difference accumulates materially over a year.

Round-trip losses cannot be avoided. Modern lithium iron phosphate chemistries deliver 90 to 95% round-trip efficiency, so the resulting 5 to 10% loss comes directly from the margin. Without accounting for those losses, a strategy targeting spreads below 20 EUR/MWh is often unprofitable per cycle.

State-of-charge errors are harder to see but just as expensive. If a battery reaches the evening high-price window at 40% SoC after discharging during a modest midday spike, it has exchanged the primary opportunity for a secondary one. The opportunity cost remains real even when no cash changes hands.

What a dispatch system needs to do reliably

Successful intraday arbitrage depends on consistent execution at every fleet site. The dispatch system must ingest day-ahead prices when published and establish initial charge targets for the following day. As intraday sessions clear, it must revise each site's dispatch parameters when session prices materially diverge from the previous day-ahead expectation. It must also track each site's SoC trajectory so batteries reach high-value windows with enough charge.

The final requirement is the most difficult across a distributed fleet. Sites differ in battery capacity, recent discharge history, and local tariff structure, which affects whether local consumption should take priority over grid export. A single fleet-wide rule misses the site-level optimization that determines whether each battery captures or misses its available spread.

Fleet-level rules still have a useful role. They provide a baseline that avoids major misses on straightforward days. Site-level optimization matters most on complicated days, including intraday session divergence, uneven effects from partial cloud cover, or different SoC states as sites enter a high-value window.

Building toward predictable arbitrage revenue

Operators developing a battery portfolio for arbitrage should expect yield per site to vary significantly with season, market conditions, and battery size. Setting a specific annual EUR yield per site without modelling seasonal changes in spread availability creates planning errors.

A distribution is the more useful way to think about returns. In high-spread months, a well-dispatched battery earns more per cycle. In compressed-spread months, revenue falls. The dispatch system should capture as much of the available spread as possible in each period, rather than promise a fixed number.

Compared with their previous manual dispatch baseline, our early-access operators have shown that automated dispatch consistently captures a larger share of the available spread in both high and low spread periods. Gains are modest on ordinary days. The difference grows on days with intraday session divergence or those requiring mid-cycle SoC corrections.

Dispatch your fleet

Ready to automate dispatch?

The pilot is open to operators managing distributed solar and battery assets in European electricity markets. Connect your fleet and capture intraday price opportunities.