BESS Dispatch Economics: Turning Battery Data Into P&L
Marcus Lee
Energy Storage Optimization Manager
A grid-scale battery is a financial instrument that happens to store electrons. Every charge and discharge decision is a trade, and the difference between a project that beats its pro forma and one that misses it usually comes down to how well the operator translates raw telemetry into an honest profit and loss view.
Too many storage operators run the asset on a simple schedule and only discover months later that round-trip losses and degradation quietly ate the margin they thought they were capturing.
Round-Trip Efficiency Is the First Tax on Every Trade
Round-trip efficiency, the ratio of energy out to energy in, is the toll you pay on every arbitrage cycle. A lithium-ion system might quote 85 to 90 percent AC round-trip, but that number degrades with temperature, C-rate, and age, and it includes auxiliary loads like HVAC and the inverters that run whether or not you are cycling.
If you charge at 30 dollars per MWh and discharge at 50, the spread looks like 20 dollars. Net the round-trip loss and the auxiliary draw and your real margin can be a third smaller. Operators who price arbitrage on the gross spread systematically overstate their earnings.
- Measure round-trip efficiency at the point of interconnection, not the DC bus, so auxiliary loads are included
- Track it over time, because a falling RTE is an early warning of cell or thermal-system problems
- Bake the real RTE into the dispatch optimizer, not just the after-the-fact P&L
State of Health and the Cost of a Cycle
State of health expresses how much usable capacity remains relative to nameplate. It only moves in one direction, and how fast it moves depends on choices the operator makes every day: depth of discharge, average state of charge, throughput, and thermal management. Each cycle has a degradation cost, and a rigorous dispatch strategy treats that cost as real.
The discipline is to compare the marginal revenue of a cycle against its marginal degradation cost. If chasing a five-dollar spread accelerates warranty-relevant degradation by more than five dollars of capacity value, you should not take the trade, even though the trade looks profitable on the energy ticket alone.
A battery does not have a fuel cost, it has a degradation cost. Operators who ignore that are burning their asset to chase spreads that do not clear the real hurdle.
Stacking Arbitrage and Ancillary Services
The economics come alive when you stack value streams. Energy arbitrage captures the day-ahead and real-time price differential, often summarized as the DART spread, the gap between day-ahead and real-time prices that storage is uniquely positioned to exploit. Ancillary services, especially fast frequency response and regulation, pay for capability and capacity rather than energy throughput.
The optimization problem is deciding, hour by hour, how much capacity to reserve for regulation versus how much to commit to arbitrage, given the state of charge you need to honor both. Reserve too much for ancillary and you miss a price spike; commit too much to arbitrage and you cannot deliver on a regulation signal and risk a penalty.
From Telemetry to a Defensible P&L
Doing this well requires pulling the battery management system, the SCADA feed, the market settlement data, and the warranty model into a single calculation that runs continuously. State of charge, RTE, degradation cost, and locational prices all have to live in one place, or the P&L is a guess.
Most operators have these data sources, but they live in separate systems that no one has connected. The asset performs, but no one can say with confidence which trades created value and which destroyed it.
A no-code AI app builder closes that gap. With a tool like DOTA, a storage team can connect the BMS, SCADA, and ISO settlement feeds into one app that computes true round-trip efficiency, attributes revenue across arbitrage and ancillary streams, and charges each cycle for its degradation, so dispatch decisions are made against the real P&L instead of the gross spread.
Build the app behind this article.
See DOTA assemble it on your own data in a 30-minute working session.