The basic idea
The basic idea behind battery arbitrage sounds simple:
Charge when electricity is cheap and discharge when electricity is expensive.
But a price difference alone doesn’t tell us whether the battery actually makes money.
We’ve already established that a BESS has:
- limited energy capacity
- limited power capacity
- a changing SOC
- round-trip efficiency losses
- a finite useful life
So now we can put those pieces together and ask:
Given a charging price and a later selling price, is the trade actually profitable?
1. Let’s start with a simple battery
Consider our: 100 MW / 200 MWh BESS
For this example, assume:
- Battery capacity = 200 MWh
- Maximum discharge power = 100 MW
- Round-trip efficiency = 90%
- Charging price = $30/MWh
- Selling price = $80/MWh
- Simplified battery-use cost = $50/MWh
The battery therefore has a theoretical two-hour duration at maximum power:
Now let’s see what happens if we use it for arbitrage.
2. Charge the battery
Suppose we charge 100 MWh when electricity costs $30/MWh.
The cost of the electricity purchased is:
So we have spent $3,000 buying energy.
But because the battery has 90% round-trip efficiency, we won’t get all 100 MWh back out.
For this simplified calculation:
So we can eventually deliver approximately:
3. Sell the stored energy
Suppose electricity later reaches:
$80/MWh
We sell the 90 MWh:
So before considering the cost of using the battery:
That looks like a very attractive trade.
But we’re not done.
**For simplicity, we’re treating the 90% round-trip efficiency as a combined charge-to-discharge efficiency, so the 90 MWh represents the energy ultimately delivered back to the grid.
4. Account for battery use
From the previous page, we introduced a deliberately simplified battery-use cost of:
For this example, suppose we apply it to the 90 MWh discharged.
Now our net margin becomes:
So our apparently attractive arbitrage trade is actually loss-making under these simplified assumptions.
5. What happened?
At first glance:
It looked like we had a $50/MWh spread.
But the battery changed the calculation.
We lost energy through efficiency: 100 MWh purchased → 90 MWh delivered
And using the battery also carries an assumed economic cost.
So the important question is:
Does the value of the energy sold exceed the cost of the energy purchased and the economic cost of using the battery?
6. What price would make this trade profitable?
Let’s keep everything else the same.
We purchased:
100 MWh at $30/MWh
So:
We deliver:
90 MWh
And our simplified battery-use cost is:
Therefore the total cost we need to recover is:
We need to sell 90 MWh.
So the break-even selling price is:
At $80/MWh, we lose $300.
At $83.33/MWh, we break even.
Above $83.33/MWh, the trade becomes profitable under these assumptions.
7. The break-even spread isn’t just $50/MWh
Our original charging price was:
Our break-even selling price is:
So the required price difference is:
Notice something important.
The battery’s required spread is therefore higher than the $50/MWh battery-use cost alone, because efficiency losses also need to be recovered.
The simplified relationship is:
where:
- = selling price
- = charging price
- = round-trip efficiency
- = assumed battery-use cost per delivered MWh
For our example:
8. But this still isn’t the whole arbitrage problem
So far we’ve looked at one charging event and one selling event. Real battery operation is more complicated. Imagine electricity prices over an entire day:
| Hour | Price |
|---|---|
| 01:00 | $25 |
| 02:00 | $20 |
| 03:00 | $22 |
| 04:00 | $30 |
| 05:00 | $35 |
| … | … |
| 17:00 | $75 |
| 18:00 | $110 |
| 19:00 | $140 |
| 20:00 | $120 |
| 21:00 | $80 |
Now the battery has choices.
It could charge at $20.
It could charge at $25.
It could wait.
It could discharge at $110.
It could wait for $140.
And every decision changes its SOC and therefore what it can do in subsequent hours.
The battery is no longer evaluating one trade.
It is deciding how to allocate its limited energy capacity across time.
9. This is where arbitrage becomes an optimization problem
Suppose the battery has limited energy.
If it discharges at $110/MWh at 18:00, that energy cannot also be sold at $140/MWh at 19:00.
Using the battery now has an opportunity cost.
Similarly, charging at $25/MWh at 01:00 may prevent the battery from charging more cheaply at $20/MWh at 02:00 if its capacity becomes full.
So the problem becomes:
Given electricity prices over time, battery constraints, efficiency and battery-use costs, what sequence of charge and discharge decisions creates the highest value?
That’s fundamentally different from simply identifying the largest price spread.
10. The battery has to make decisions subject to constraints
For every hour, the battery has to respect things like:
Power constraint
It can’t charge or discharge faster than its maximum MW rating.
Energy constraint
It can’t store more energy than its capacity.
SOC constraint
It has to remain within its permitted SOC range.
Efficiency constraint
Energy entering and leaving the battery isn’t one-to-one.
Degradation constraint
Using the battery has an economic consequence.
So the battery’s decision isn’t simply:
Buy low. Sell high.
It is:
Choose when, how much, and at what rate to charge or discharge while respecting the physical and economic constraints of the asset.
The mental model
We’ve now moved from individual battery mechanics to the beginning of battery dispatch.
A simplified arbitrage calculation can be thought of as:
But once prices vary across time, the problem becomes: What is the highest-value way to use the battery over time?
And that is the question an optimizer ultimately needs to answer.
The next step is therefore no longer another isolated BESS concept.
It’s an actual dispatch problem: Given 24 hours ofd electricity prices, when should a 100 MW / 200 MWh battery charge and discharge?