Pure price arbitrage is the dispatch logic that most battery storage developers describe when explaining their business model. Buy cheap power at night, sell into the peak, capture the spread. It is a clean framing, and in markets with stable, predictable price spreads it produces acceptable outcomes. In the Japanese electricity market, with its combination of renewable-driven midday price depression, infrequent but sharp evening peaks, and JEPX imbalance settlement penalties, the arbitrage-only dispatch model has a structural problem that becomes more visible as battery fleets grow.
The problem is not that arbitrage is wrong in principle. The problem is that arbitrage logic is reactive: it responds to price signals that have already appeared. When those price signals arrive, the decision to discharge has often already been made earlier in the day, for the wrong reasons.
How Arbitrage Logic Depletes the Battery at the Wrong Time
Consider a battery management system running a standard buy-low sell-high dispatch loop on JEPX spot prices. In the late morning, prices are suppressed by solar overproduction in regions like Kyushu. The arbitrage signal to charge is strong. The battery charges from 30% to 85% SOC between 10:00 and 12:00.
Then, at 14:00, a cloud front moves through the region. Solar output drops. The spot price rises. The arbitrage signal says to discharge. The battery moves from 85% to 55% SOC over the next 90 minutes, capturing a modest spread.
Now it is 15:30. The cloud front has passed. Solar recovers briefly but is already declining with the late-afternoon sun angle. The spot price normalizes. Then, at 17:30, demand surges as businesses close and residential evening load begins. The generator shortfall creates a sharp JEPX price spike. This is the peak the battery was supposed to serve.
But the battery is at 55% SOC. The original plan required 70% to cover the committed 2-hour delivery window at 5 MW. The battery either delivers less than committed, creating an imbalance, or the operator manually overrides to limit the discharge rate and stretches the delivery window, accepting a partial shortfall at the end.
The arbitrage decision at 14:00 was locally correct: there was a positive price spread to capture. But it was globally wrong: it consumed SOC that was needed for a higher-value event two hours later.
Peak-Shaving and Why It Requires Forward Commitment
Peak-shaving, in the context of grid-scale storage dispatch, means holding capacity specifically for high-demand periods when the grid needs additional supply and prices peak accordingly. Unlike arbitrage, which responds to prices as they arrive, effective peak delivery requires the battery to have reserved capacity against a predicted future event.
This distinction is central. Arbitrage is a greedy algorithm that optimizes locally. Peak delivery requires a planning horizon: how much SOC do we need at 17:00 to fulfill our committed delivery, and what is the latest we can let the battery discharge before that window begins?
In JEPX terms, the day-ahead market bid locks in delivery commitments and price exposure. A storage operator who bids into the day-ahead peak slot at 17:00-19:00 has made a commitment that determines the minimum SOC target at 16:30. Everything that happens between 06:00 and 16:30, including midday arbitrage opportunities, needs to be evaluated against whether it will leave the battery in position to honor that commitment.
A dispatch model that does not carry forward-looking commitment constraints will systematically exhaust the battery before the committed delivery window, because the locally-attractive discharge opportunities in the middle of the day collectively deplete what was needed for the end of the day.
The Multi-Objective Problem: Stacking Revenue Streams
The dispatch challenge is further complicated by the fact that modern BESS installations in Japan are often participating in multiple market products simultaneously. A single battery may have simultaneous obligations to provide:
- Energy arbitrage (JEPX spot market)
- Frequency containment reserve (FCR) or frequency restoration reserve (FRR) under grid code requirements
- Curtailment absorption when operating alongside co-located solar
- Contracted bilateral delivery to an offtaker
Each of these has different SOC requirements and different time-of-day constraints. FCR participation requires the battery to maintain a mid-range SOC with capacity to respond in both directions. Curtailment absorption requires low SOC at the time of the curtailment event. Bilateral delivery requires a specific SOC at a specific time. Arbitrage requires the optimizer to not chase midday discharge opportunities when any of the above requires capacity.
Stacking these revenue streams correctly means the dispatch optimizer needs to evaluate every potential dispatch action against all current and upcoming obligations, not just against the immediate price spread. This is a multi-period mixed-integer optimization problem, not a greedy price-response rule.
What Simple Models Get Right
We should be clear: simple arbitrage models are not uniformly bad. For batteries with a single revenue stream, predictable price spreads, and no peak delivery commitments, an arbitrage-based dispatch loop is straightforward to implement, audit, and operate. The lower implementation complexity translates to fewer edge cases and lower operational overhead.
The limitation is specific to cases where peak delivery commitments exist alongside midday arbitrage opportunities, where the battery is participating in multiple market products, or where curtailment capture creates competing demands on SOC. In these situations, the arbitrage model's local optimality creates global failures that compound over time, especially as operators try to manually patch the gaps by adjusting setpoints reactively after missed deliveries.
Planning Horizon as the Core Design Variable
The dispatch model architecture decision that most determines whether a system will handle the arbitrage-versus-peak problem correctly is the planning horizon. A dispatch model with a one-hour rolling horizon will never correctly trade off a midday discharge opportunity against a peak delivery commitment four hours later. A model with a 24-hour or 48-hour horizon, anchored on day-ahead forecast and market commitment data, can evaluate both simultaneously.
The technical cost of a longer planning horizon is increased model complexity and the need for reliable forward-looking inputs: a day-ahead solar forecast, a price forecast, and a forward commitment schedule. These are not trivial to build. But they are the correct inputs to the dispatch problem. The alternative, which is to optimize locally and manually correct the resulting positioning errors, does not scale as fleet complexity increases.
When a storage asset misses a peak delivery commitment, the visible symptom is an imbalance settlement cost. The actual cause is usually a series of locally-rational discharge decisions earlier in the day that the dispatch model had no mechanism to defer. The fix is upstream, in how the planning horizon and commitment constraints are modeled, not in the SOC floor setpoint that the operator adjusts in the control system the morning after.