Is Your Battery Actually Hitting the ROI You Underwrote?
|

Every battery project starts with a model. It sets the expectations for what the system should earn over its lifetime, and those expectations are what lenders, investors and boards sign off on.
Once the battery is live, the question becomes whether reality is matching the model.
Most owners struggle to answer, because the underwriting case and the monthly revenue statements rarely sit side by side.
This article looks at where battery revenue models tend to fall short, how to check ROI against real performance, and how dispatch optimization and the business layer can work together.
The Gap Between Modeled And Actual Battery ROI
A stacked revenue case adds up capacity, demand response and reserves, yet PJM's own documents say the same megawatt counts once across those programs and is never summed (PJM RAA Schedule 6; Attachment K Appendix, section 1.4B).
A model that adds them overstates the case from day one, even if the battery performs perfectly.
Frequency regulation, which models often treat as a steady adder, is volatile and carries performance penalties. Counted on as guaranteed, it can quickly pull the bankable case apart. Modeled as the at-risk stream it is, the case gets smaller and a lot more honest.
The same goes for forward prices. PJM prices capacity only about three years out, so the cleared years can go in the bank while the years beyond belong in a declining band. A flat line through 2040 assumes a level of certainty that isn't there.
Each of these started as a number that looked certain in the model and turned out to be conditional in operation.
What An ROI Check Looks Like In Practice
The check compares actual revenue against the underwriting case, stream by stream. It separates what the market did from what the operation did, so a shortfall can be traced to a price move, a penalty or a missed window.
A shortfall can also start outside the revenue line. Degradation, availability, operating costs and cycling all affect whether realized returns are tracking the underwriting case, so the same comparison has to cover them alongside revenue.
That takes operational data and financial data in the same place. This is the job of a business layer: a monitoring, reporting and financial intelligence layer that brings solar and storage data together and puts the gap in dollars. It also gives investors a clear view of whether the asset is performing as promised.
Your Dispatch Optimizer And Your Business Layer Do Different Jobs
Many buyers treat this as an either/or choice, but the 5CP window shows why it is not.
In PJM retail choice territories, five summer hours set the capacity bill for the following year, and nobody knows which five until the season closes. The battery's whole job is to be charged and available at the system peak on the hottest afternoons.
The dispatch optimizer makes the call, while the business layer shows its financial impact, including the capacity charge avoided and how that compares with the plan.
Wholesale versus behind the meter is another case where the highest potential return does not always make the strongest investment case. Front of the meter can pay two to four times more per kW (Modo Energy pricing), yet the certain floor of behind the meter can still make the more bankable case.
Weighing size against certainty is a business decision, and it belongs to the layer that sees revenue, margin and contracts.
Dispatch optimizer | Business layer | |
|---|---|---|
Focus | When to charge and discharge | What the battery earned and why |
Decisions | Hour by hour | Portfolio and contract level |
Output | Dispatch schedule | Revenue, margin and ROI against the underwriting case |
Keep Score On The Promise
A battery model is a promise, and a promise needs a check. Stacked revenue, regulation income and long price forecasts each carry more risk than the underwriting case admits. A business layer that sits next to the dispatch optimizer shows which part of the promise is being kept.
Get a closer look at the factors shaping returns across solar and storage portfolios in What Drives ROI in Solar + Storage Portfolios in 2026? A Complete Guide.
FAQ
What software can show whether my battery is achieving its promised ROI?
A business layer that compares actual revenue by stream against the underwriting case, using operational and financial data together.
Do I need to replace my dispatch optimizer?
No. The optimizer runs the battery, while the business layer tracks revenue, margin and contracts alongside it.
Does it show solar and storage in one view?
Mixed portfolios usually run solar and storage on separate tools, each reporting in its own format, so the financial picture often gets assembled by hand. That makes it hard to see how a battery's revenue sits next to the solar output it is paired with, or to tell which asset is behind a shortfall. A single view puts both on the same data foundation, across OEMs and systems, so revenue, performance and contract terms can be read together.
Can it show how each KPI is calculated?
In Sandia's PVMAC survey of 24 PV operations software providers, about half said their documentation was enough to reproduce KPIs and expected yield, and about a quarter share methods only on request, typically under NDA. The responses were self reported and not independently verified.
What does leaving cost?
In the same survey, around 60% of providers allow free data export and about 25% charge for export or migration.
Does it have open APIs?
Close to 70% offer a public, documented API. The rest restrict access in some way.
Why do stacked revenue projections overstate returns?
The same megawatt is counted once across capacity, demand response and reserves, so adding the streams double counts.







