From Dispatch Logic to a Bankable Revenue Forecast: The 39% That Disappears

From Dispatch Logic to a Bankable Revenue Forecast: The 39% That Disappears

September 18, 2026 · Dezzmond Team
Financial Modeling Data Analysis Excel

The previous four posts built a dispatch model. Given prices, costs and a state-of-charge constraint, it produces an optimal schedule and a revenue number.

That number is not the revenue. Applying the adjustments that stand between an optimised backtest and what a battery actually earns:

Perfect-foresight optimised revenue                 100.0
Forecast error                              × 0.85   85.0
Availability 97%                            × 0.97   82.5
Degradation, averaged over 15 years         × 0.90   74.2
Bid/offer spreads and market frictions      × 0.97   72.0

Twenty-eight percent, before a lender has looked at it. Apply a merchant revenue haircut of the kind Series E described and the bankable figure is 61% of the optimised one.

None of that is a criticism of the optimiser. The optimiser is solving the right problem correctly. The gap exists because the problem it solves — maximise revenue against a known price path — is not the problem the asset faces.

This post closes the series with the bridge: what each adjustment is, why the first one dominates, and what a lender will actually lend against.

ℹ️ Note: Every factor below is a labelled assumption. The magnitudes vary by market, asset and operator; the structure of the bridge and the ranking of the terms is what generalises.

Why Perfect Foresight Overstates

Because the model knew tomorrow's prices and the operator will not.

Practical dispatch models are explicit about this. The standard construction uses perfect foresight within each optimisation window, with real-world calibration applied afterwards — because solving a window requires a price path, and the only path available in a backtest is the one that actually happened.

That produces a schedule that charges in the day's cheapest hour and discharges in its most expensive, every day, without error. A real operator sees a forecast, and the forecast is wrong in two ways that both cost money.

Level errors — the forecast peak is $80 and the outturn is $95. Costly but recoverable; the battery still discharged into a good hour.

Ordering errors — the forecast says the peak is at 18:00 and it arrives at 17:00. Expensive, because the battery either discharged early into a lower price or held through the actual peak waiting for one that never came.

The second is what the storage-value rule from the discharge post is genuinely exposed to. A rule that holds for something better is only as good as its belief that something better is coming.

Published assessments of the gap vary widely by market and by operator sophistication. A factor in the region of 0.85 is a reasonable planning assumption for a competent operator in a liquid market, and it is the single largest adjustment in the bridge.

The Other Three

Availability is the same concept as for any other asset, applied to a machine with a lot of power electronics. Forced outages, planned maintenance, auxiliary system failures and communications losses all remove the asset from the market. At 97%, roughly eleven days a year — and the days it is unavailable are as likely to be good ones as bad.

Degradation enters as a declining energy capacity, which reduces both arbitrage volume and accreditation. Averaged across a fifteen-year life, a 0.90 factor is a reasonable representation of an asset retaining around 80% at end of life with augmentation partly offsetting.

Frictions cover everything the model treats as free: the difference between the price you bid and the price you clear, imbalance costs, auxiliary consumption for thermal management, and the fact that a real asset is dispatched in five-minute intervals against a model built in hours.

Each is small individually. They compound to about 16% between them, and their ordering does not matter because they multiply.

Why the Ranking Matters More Than the Numbers

Because it tells you where to spend effort.

Forecast error                      −15.0 points
Degradation                          −8.2 points
Availability                         −2.5 points
Frictions                            −2.2 points

The first term is larger than the other three combined. That has a direct consequence for anyone deciding where to invest in a storage business: better forecasting and better bidding is worth more than better hardware availability, by a wide margin, and it is the part most likely to be outsourced to a route-to-market provider without much scrutiny of what they actually deliver.

It also reframes the optimiser. A more sophisticated optimisation engine improves the 100 in the table. A better forecast improves the 0.85. The second is where the money is, and the two are frequently confused because both are sold as "optimisation."

What a Lender Will Lend Against

Less than the achievable figure, and the reasoning follows everything Series E established about merchant revenue.

A battery's arbitrage revenue is merchant by construction. It depends on price volatility, which is unforecastable over a debt tenor; on the operator's skill, which is a contractual rather than physical input; and on market rules that have already been rewritten once in this market's short history.

So a lender applies the treatment the merchant tail post described: a haircut to the revenue, a higher coverage requirement, and a limited number of years credited. A factor around 0.85 on an already-adjusted number is a plausible representation.

Optimised                                          100.0
Achievable                                          72.0
Bankable                                            61.2

Three structural responses to that gap, each of which appeared earlier in this series.

A tolling agreement converts the merchant stack into a fixed capacity payment. It removes the forecast error term entirely from the owner's perspective — the toller bears it — at the cost of the upside. The throughput limit in the toll is then doing the job the cycle budget did in the dispatch model.

A floor or revenue swap puts a contracted base under the merchant revenue, which lenders will size against while leaving upside with equity.

Sizing the debt on the contracted layer only and treating merchant revenue as equity upside. This is the most common outcome, and it means the entire dispatch optimisation exercise — the whole of this series — determines the equity return rather than the debt capacity.

That last point deserves emphasis. For a merchant battery, dispatch skill is an equity return question, not a financing one. The lender has largely assumed it away. Which means the operator's performance against the 72% line is where the value of all this analysis actually lands.

Apply the Bridge Per Revenue Stream, Not to the Total

An important refinement, because applying a single set of factors to total revenue is wrong in a way that gets the answer backwards for some assets.

The adjustments above are calibrated to arbitrage. The other revenue streams do not suffer them equally:

Forecast error Availability Degradation Lender haircut
Arbitrage Large Yes Yes Large
Ancillary services Small — awards are known in advance Yes Partly Moderate
Capacity None — accredited MW, paid regardless Via performance penalties Yes — via accreditation Small for cleared years
Tolling / contracted None Yes Per contract Small

Two consequences follow, and they run in opposite directions for different assets.

A capacity-heavy battery loses much less in the bridge. Capacity revenue is paid on accredited megawatts and does not care whether the operator called the peak correctly. A PJM asset earning $65,244 per megawatt-year of capacity against modest arbitrage retains far more of its theoretical revenue than an ERCOT merchant asset — and correspondingly more of it is bankable.

An arbitrage-heavy battery loses much more. The ERCOT revenue mix from the Series C post — 76% arbitrage as at mid-2025 — is precisely the mix most exposed to every term in the bridge.

So the honest construction is a bridge per stream, summed, rather than one bridge applied to a total. Doing it the lazy way overstates the merchant asset and understates the contracted one, which is the worst possible direction: it makes the riskier asset look more comparable to the safer one than it is.

The general rule, and it echoes the case-bridge post that closed Series F: build the bridge on the components, and report which stream the losses came from.

Who Bears the Forecast Gap?

A contractual question, because the 15-point term is usually allocated to somebody by agreement rather than absorbed.

Most merchant batteries do not trade themselves. They appoint a route-to-market provider or optimiser, and the commercial structure of that appointment determines who owns the gap.

A fee-based arrangement pays the optimiser a fixed amount per megawatt. The owner keeps the revenue and the forecast risk. The optimiser's incentive to invest in better forecasting is weak, because the benefit accrues to someone else.

A share arrangement pays the optimiser a percentage of revenue or of revenue above a benchmark. Incentives align, and the owner gives up upside to get them.

A floor arrangement guarantees the owner a minimum. The optimiser has taken the downside of the forecast gap and will price it, which converts an unquantified operational risk into a known cost — and that conversion is usually what makes the asset financeable.

Three things worth checking in any such agreement.

What benchmark is the share measured against? A share of revenue above an index rewards outperformance; a share of total revenue rewards volume, which can mean cycling harder than the warranty economics justify.

Who bears the cycling cost? An optimiser paid on revenue and not charged for degradation will run the asset harder than the owner would choose, because the $30/MWh throughput cost from the charge-threshold post sits entirely with the owner.

What happens to the ancillary opportunity cost? An optimiser choosing between products on the owner's behalf is making the trade-off the charge-threshold post described, and the agreement should say whose economics govern that choice.

That second point is the one that recurs. An optimiser's incentive and an owner's economics diverge precisely on the cycle count, and the alignment mechanism is either a throughput cap or a degradation charge in the agreement. Without one, the optimiser is spending an asset it does not own.

The Test That Validates a Model

One check separates a credible storage revenue forecast from an optimistic one, and it is cheap.

Backtest against a period the model has not seen, using only information available at the time. Give the dispatch logic a forecast — not the outturn — and compare the revenue it generates against what an actual operator achieved in that market over the same period.

The gap between the two is the forecast error term, measured rather than assumed. And a model that cannot beat published operator benchmarks in a backtest with realistic information is not going to do so in operation.

Two failure signals worth naming.

A model that matches perfect-foresight revenue has been given information it will not have. Check whether the price series used for the dispatch decision is the same one used for settlement.

A model with no infeasible hours and no idle hours is probably not enforcing the state-of-charge constraint from the previous post, or is cycling beyond its warranty.

The Benchmark Problem

A practical difficulty with measuring any of this: the published benchmarks describe a fleet, and your asset is not the fleet.

Market indices of battery revenue — the ERCOT index the Series C post quoted, swinging from $46,264/MW/yr in January 2026 to $15,306 in February — are averages across assets with different durations, different locations, different strategies and different route-to-market arrangements. Comparing a specific project's forecast to a fleet index is informative and not conclusive.

Three adjustments matter before a benchmark means anything for a given asset.

Duration. A fleet average blends one-hour and four-hour assets, whose revenues per megawatt differ by the whole of the duration analysis from earlier in this series. An index is only comparable to a project of similar duration.

Location. Everything Series C established about basis applies: two batteries in the same market at different nodes face different spreads, and the spread is the revenue. A fleet index averages across nodes and therefore describes no node.

Strategy. The Modo cycle-value work found individual assets ranging from under $500/MW per cycle to $15,000, with cycling rates varying twentyfold, inside the same market and period. An average across that dispersion is a weak predictor of any single asset.

The constructive use of a benchmark is therefore as a reality check on the bridge rather than on the revenue. If your model claims a foresight factor well above what the fleet appears to achieve, the question is what your operator does differently — and there may be a good answer, but it should be stated rather than assumed.

How Do You Build the Bridge in Excel?

As an ordered multiplicative stack with each factor named and sourced.

The bridge

Optimised_Revenue           from the dispatch model
  × Foresight_Factor        0.85    forecast error
  × Availability            0.97
  × Degradation_Factor      0.90    average over life
  × Friction_Factor         0.97    bid/offer, imbalance, auxiliary
= Achievable_Revenue        72.0% of optimised

  × Lender_Haircut          0.85
= Bankable_Revenue          61.2% of optimised

The outputs to publish

PF_OptimisedRevenue
PF_AchievableRevenue            and the retained %
PF_BankableRevenue              and the retained %
PF_LargestAdjustment            which factor dominates

The last is the one that directs effort. On these assumptions it is forecast error every time, and stating it makes the case for investing there rather than elsewhere.

The validation

Backtest_Revenue(forecast-driven)  ÷  Backtest_Revenue(perfect foresight)
   → this ratio IS the foresight factor, measured

Measuring it on your own market and your own strategy is far better than adopting 0.85 from a post, and it requires only a price forecast archive and the model you already have.

The sensitivity that should be run

Foresight factor    0.75   →  Achievable 63.5%   Bankable 54.0%
Foresight factor    0.85   →  Achievable 72.0%   Bankable 61.2%
Foresight factor    0.95   →  Achievable 80.4%   Bankable 68.4%

A ten-point move in the term nobody measures moves bankable revenue by about seven points — more than any other assumption in the model.

ℹ️ Note: Never present optimised backtest revenue as a forecast. It is an upper bound achievable only with knowledge of the future, and the distance between it and reality is larger than most of the assumptions that get debated in a storage investment paper.

To build the revenue bridge, measure your own foresight factor and run the bankability sensitivity, prompt Dezzmond with your dispatch model output and price forecast history.

What Do Operators and Lenders Actually Check?

  • Was the dispatch optimised against outturn prices or against forecasts?
  • What foresight factor is applied, and was it measured or assumed?
  • Does the backtest use only information available at the time?
  • Is degradation applied to revenue, or only to the capacity schedule?
  • What does the lender credit, and is merchant revenue in the debt sizing at all?
  • Is there a toll or floor converting any of this into contracted revenue?
  • Which adjustment is largest, and is effort going there?

Frequently Asked Questions

Why does a backtest overstate battery revenue?

Because it optimises against prices that actually occurred. A real operator dispatches against a forecast, and forecast errors — particularly in the timing of the peak rather than its level — cost revenue that the backtest never gives up.

How much is lost between optimised and achievable?

On the worked assumptions, 28% — of which forecast error is more than half. Availability, degradation and market frictions account for the rest and compound multiplicatively.

What will a lender lend against?

Considerably less. Applying a merchant haircut on top of the achievable figure leaves around 61% of the optimised number, and many structures size the debt on contracted revenue only and treat merchant arbitrage as equity upside.

How do you measure the foresight factor?

Run the dispatch model twice over the same historical period — once with outturn prices and once with the forecasts that were actually available at the time. The ratio is the factor, measured on your market and your strategy.

Should the bridge be applied to total revenue?

No — per revenue stream. Capacity revenue suffers no forecast error because it is paid on accredited megawatts regardless of dispatch, while arbitrage suffers all of it. A single blended bridge overstates a merchant asset and understates a contracted one.

Who bears the forecast gap in practice?

Whoever the route-to-market agreement says. A fee arrangement leaves it with the owner, a share arrangement splits it, and a floor transfers the downside to the optimiser at a price — which is often what makes the asset financeable.

Where should effort go to close the gap?

Forecasting and bidding. On these assumptions it is a larger adjustment than availability, degradation and frictions combined, and it is the term most often outsourced without scrutiny.

Closing: Series H, and the Thing the Model Cannot Do

Eight posts on sizing and dispatching a battery, and they end on an uncomfortable note: the best dispatch model in the world produces a number that is 28% too high, and the error has almost nothing to do with the model.

That is worth sitting with, because it inverts where attention usually goes. Enormous effort goes into optimisation engines, and they are solving a well-specified problem well. The revenue they report is a genuine upper bound and a useful one — it tells you what the asset could earn under ideal information, which is exactly the right benchmark for judging an operator.

It is not a forecast. The distance between the bound and reality is set by how well anyone can see the next twenty-four hours, and that is a forecasting problem rather than an optimisation one.

The series has been a sequence of narrowing: the constraint stack said what could be built; the sizing posts said how much power and how many hours; the dispatch posts said when to act and what stops you. Each step removed freedom the previous one appeared to offer. This last one removes the remaining illusion — that knowing the right thing to do is the same as being able to do it.

There is a pattern in which of those steps turned out to matter most, and it is worth naming because it is not the one people expect. The binding constraint was usually the interconnection rather than the budget. The duration answer turned on the cycling assumption rather than the price forecast. The cycle cost was dominated by degradation rather than efficiency. And the revenue gap was dominated by forecasting rather than by the optimiser. In each case the variable receiving the most analytical attention was not the variable driving the answer.

What survives all of that is still substantial. A four-hour asset, correctly sized against a constraint you identified rather than inherited, cycling on spreads that clear a degradation cost you actually computed, scheduled against a state-of-charge constraint the model enforces, and reported at 72% of its theoretical revenue with the reason stated. That is a defensible number, and the point of the series is that almost nobody produces one.

The next series takes the configuration this one has been treating as standalone and puts it next to a solar array, where the interconnection limit binds, the clipped energy is free, and the dispatch problem acquires a second asset.

Sources: Modo Energy — Battery Dispatch Model · Modo Energy — How to Build a Battery Energy Storage Revenue Forecast in ERCOT · Flex Power — Battery Storage Optimization: Value Stacking Explained · Timera Energy — What Battery Durations Are Investable?