Series: Why Batteries Matter - And How They Make Money | Article 3 of 6
About This Series
Why Batteries Matter - And How They Make Money is a 6-part series covering battery energy storage systems (BESS) from first principles to full project economics.
- Article 1: Why the grid needs batteries
- Article 2: What a battery actually does on the grid
- Article 3 (this one): How a battery makes money - energy arbitrage
- Article 4: How a battery makes money - ancillary services
- Article 5: The hidden cost - degradation
- Article 6: The full picture - does it actually work?
All examples use a Li-Ion BESS operating as a merchant in the ERCOT grid. The economics and principles apply broadly to any BESS in any market. This series does not cover battery chemistry, construction, or raw materials.
Next we take a look at the first revenue function a battery performs, energy arbitrage - what it is, how it works, and the market mechanics that govern dispatch. Energy revenue is the baseline every BESS project is built on.
Spread the Prices, Earn the Difference
Arbitrage is the act of buying a thing when it is cheap and selling it when it is expensive. In energy markets, the asset is electricity and the vehicle is time - a battery stores energy during low-price hours and releases it during high-price hours. The difference between the sell price and the buy price is called the spread and capturing that spread is the entirety of the energy arbitrage opportunity.
Electricity prices vary by the hour because supply and demand vary by the hour. At a daily level, the cheap windows are predictable: midday, when solar generation floods the grid and suppresses prices, sometimes to zero or below; and overnight, when demand is low and wind generation is high. The expensive windows are equally predictable: evenings, when solar drops off and demand peaks as people return home, forcing gas-fired plants to the margin and pushing prices up.
The spread between those two windows is what the battery monetises. The duck curve from Article 1 is the shape that describes this - but it is the spread in dollars per megawatt-hour ($/MWh) that the shape creates, and not the shape in MWh it represents, that matters here. Deeper solar penetration makes the midday troughs cheaper, and steep evening ramps make the peak more expensive, causing the spread to widen as more and more renewables come online.
Why Simple Spread Capture Fails
The simplest dispatch strategy is to sort all 24 hourly prices from lowest to highest, charge in the bottom N hours, and discharge in the top N hours, where N is set by the battery's duration. For a 2-hour battery, charge in the 2 cheapest hours, discharge in the 2 most expensive. This is known as a Top-Bottom Spread or a Top-Bottom Analysis in energy markets.
This strategy, although simple, overstates achievable revenue. Three main physical constraints make this strategy impractical:
- Round-trip efficiency: A battery does not deliver back what it consumed. Efficiency losses - heat dissipated in the charge and discharge process - mean the battery sells less energy than it bought.
- State of Charge: Charge and discharge decisions are not independent. Each hour's available energy depends on what previous hours left in the battery. This running balance is the state of charge, and it constrains every dispatch decision.
- Sequential decisions: A battery cannot charge and discharge in the same interval. Top-bottom arithmetic ignores this and produces physically impossible schedules on days where cheap and expensive hours overlap.
Accounting for all three constraints requires an optimiser - a tool that takes prices, physical limits, and efficiency parameters as inputs and finds the schedule that maximises revenue across the full operating window simultaneously. The best implementations use linear programming to solve for the globally optimal 24-hour schedule.
Day-Ahead and Real-Time Markets Explained
Most organised wholesale electricity markets run two sequential markets for each physical delivery hour - the Day-Ahead Market and the Real-Time Market. The structure is standard across US ISOs: ERCOT, PJM, MISO, CAISO, SPP, and NYISO all operate this way. It is not universal - bilateral and single-settlement markets exist - but it covers the markets where most utility-scale BESS capacity operates today.
Day-Ahead Market (DAM): The evening before the operating day, participants submit bids and offers, the market clears, and hourly prices are published. A battery commits its charge-discharge schedule here. Those positions settle financially at DA prices regardless of what happens in real time the following day.
Real-Time Market (RTM): On the operating day, the market settles actual physical delivery in 5 or 15-minute intervals. Any deviation from the DA schedule settles at real-time prices for that interval, and the difference is the profit or loss for that interval for any asset. RT prices are often more volatile than DA prices - they reflect actual grid conditions, not the prior evening's forecast.
This structure creates two revenue layers. DA revenue comes from the committed schedule settling at the more predictable hourly price. RT revenue - or loss - comes from deviations settling at the more volatile 15-minute price. A battery that responds quickly to real-time conditions earns additional revenue when RT prices diverge from what the DA market priced in the night before.
For a full walkthrough of the two-stage LP model and complete Q1 2025 ERCOT results, see Modelling Battery Dispatch in Energy Markets using Python.
Efficiency and State of Charge: Fundamental Constraints
Round-trip efficiency
A lithium-ion BESS has a one-way efficiency of approximately 0.9220 in both the charge and discharge direction. Round-trip efficiency (RTE) is the product of the two: 0.9220 × 0.9220 = 0.85.[1] This is the NREL ATB standard value for utility-scale lithium-ion storage and the figure used throughout this series.
In plain terms: charge 2 MWh from the grid, and 1.70 MWh comes back out on discharge. The remaining 0.30 MWh is dissipated as heat. The battery does not sell what it bought - it sells 85% of it. Every cycle of a LFP battery must suffer this loss before actual profits are realised.
State of charge
The battery's state of charge at the start of any interval is the result of everything that preceded it. It determines what the battery can do next:
SOC[t] = SOC[t−1] + c[t] × η_c − d[t] / η_d
A battery at 0% SOC cannot discharge, regardless of price. A battery at 100% SOC cannot charge, regardless of price. The optimiser that solves the full 24-hour schedule simultaneously - rather than deciding each hour independently - respects this constraint at every step, and this is what separates it from the top-bottom approach we discussed in the previous section.
A single cycle, worked through
Battery: 1 MW / 2 MWh. Charge price: $20/MWh. Discharge price: $80/MWh. η_c = η_d = 0.9220. RTE = 0.85.
- Charge: 2 MWh drawn from the grid. Cost = 2 × $20 = $40
- Stored: 2 × 0.9220 = 1.844 MWh
- Delivered on discharge: 1.844 × 0.9220 = 1.700 MWh - equal to 2 × 0.85
- Revenue: 1.700 × $80 = $136
- Net revenue on the cycle: $136 − $40 = $96
The break-even spread
The spread does not translate directly into profit. Round-trip losses set a minimum threshold the spread must clear before any margin exists. Set the efficiency-adjusted revenue equal to cost and solve for the minimum discharge price:
Revenue = (E × RTE) × P_discharge
Cost = E × P_charge
Break-even: (E × RTE) × P_discharge = E × P_charge
E cancels. Solve:
P_discharge = P_charge / RTE = P_charge / 0.85
The discharge price must exceed the charge price by a factor of 1/0.85 - 17.6% - to recover the round-trip efficiency loss. This is the floor imposed by physics alone. It does not include degradation cost per cycle, fixed and variable operating costs, or financing obligations. The full economic threshold is higher. Degradation - the cost the battery pays in lost capacity for every cycle it completes - is covered in Article 5.
Q1 2025 ERCOT: What the Model Actually Produced
For the model in the ERCOT Battery Dispatch article, we made three assumptions that must be kept in mind before we proceed with the numbers below.
- First, both the DA and RT stages assume perfect price foresight - prices are fully known before each dispatch decision. Real dispatch does not have this. Actual revenues are lower. These numbers are a ceiling, not an operational estimate.
- Second, Q1 is ERCOT's highest-spread quarter. Winter wind volatility and cold-weather demand events produce DA-to-RT price divergence that sits above the annual average. Q1 results cannot be multiplied by four to estimate annual revenue.
- Third, this model runs energy arbitrage only. A battery co-optimising across energy and ancillary services earns more, and dispatches differently.
| Month | DA Revenue | RT PnL | Total | RT Share |
|---|---|---|---|---|
| Jan | $8,678 | $10,619 | $19,297 | 55% |
| Feb | $8,017 | $7,205 | $15,223 | 47% |
| Mar | $6,243 | $3,000 | $9,243 | 33% |
| Q1 | $22,938 | $20,824 | $43,763 | 48% |
January's RT share of 55% reflects exceptional DA-to-RT price divergence driven by winter wind forecast error. By March, conditions were more predictable and RT contribution fell to 33%. The 48% Q1 average is not representative of a full year of energy-only operation.
The revenue data here is right-skewed. Most days earn modestly, but a small number of high-spread days - weather events, unexpected demand - carry a disproportionate share of the quarterly total. The highest single day across Q1 was 15 January 2025 at $2,600 for the 1 MW / 2 MWh asset. Remove the five highest-revenue days and the quarter looks materially different.
DA price spread is the single strongest predictor of total daily revenue. The gap between the cheapest and most expensive hourly DA prices on a given day predicts revenue close to linearly. Days where RT significantly outperforms that trendline are days where something unexpected happened after the DA market cleared - a wind event, a load surprise, a transmission constraint.
What Comes Next
Energy arbitrage captures the price spread between hours. It does not capture the separate payment stream that comes from holding reserve capacity available for the grid. Article 4 covers ancillary services - what those payments are, where they come from, and how they stack on top of the arbitrage revenue shown here.
References
[1] NREL Annual Technology Baseline 2024 - Utility-Scale Battery Storage
[2] The Merit Order - Modelling Battery Dispatch in Energy Markets using Python