When Should a Battery Discharge? The Stored Megawatt-Hour Has an Opportunity Cost

When Should a Battery Discharge? The Stored Megawatt-Hour Has an Opportunity Cost

September 18, 2026 · Dezzmond Team
Storage Sizing & Dispatching a Battery Battery Dispatch

At hour 17 the price is $78/MWh. The battery is full. Should it sell?

Under perfect foresight and the deliberately simple one-MWh example, holding for the $95/MWh hour dominates selling at $78/MWh. In operation, the battery does not know the future price with certainty and the relevant comparison is the current net sale value versus the marginal continuation value of keeping the energy.

A stored megawatt-hour is worth the better of selling now and the expected value of preserving it for future opportunities, after accounting for constraints and costs. That continuation value changes with time, SOC and the forecast distribution.

That is the core difference between a myopic threshold and an intertemporal dispatch model. Both charging and discharging depend on future opportunity value once state of charge and alternative services are considered.

This post builds the discharge decision: what the stored energy is worth, why threshold rules fail, and the concept borrowed from hydro that makes the whole thing tractable.

ℹ️ Note: The price shape is the representative day used throughout this series. Real dispatch operates on forecasts rather than on known prices — the gap between the two is the subject of the final post.

Stored energy has an opportunity cost:

flowchart TD
  A[One MWh is stored] --> B{Sell now?}
  B --> C[Net value of current discharge]
  B --> D[Storage value of waiting]
  C --> E{Current value > storage value + discharge cost?}
  D --> E
  E -->|Yes| F[Discharge now]
  E -->|No| G[Hold energy for a better hour]

What Is the Discharge Decision?

Whether to convert stored energy into cash now, or keep it for a better hour later. It is an allocation problem across time, not a price test.

The energy in the battery is a finite resource with competing future uses. Selling it now means it is not available at the evening peak. So the decision rule is a comparison, not a threshold:

Discharge now if:   Price_now  ≥  Value_of_holding

Everything then turns on what Value_of_holding is.

The Value of Stored Energy

For the deliberately simplified one-MWh / perfect-foresight example, the continuation value can be illustrated by the best future net sale opportunity. In a real battery it also depends on SOC, future charging opportunities, ancillary commitments, efficiency, terminal value and forecast uncertainty.

Run that against the representative day, over the evening:

Hour Price Best still to come Decision Margin
14 $14 $95 HOLD −$81
15 $26 $95 HOLD −$69
16 $48 $95 HOLD −$47
17 $78 $95 HOLD −$17
18 $95 $88 SELL +$7
19 $88 $64 SELL +$24
20 $64 $45 SELL +$19
21 $45 $33 SELL +$12
22 $33 $27 SELL +$6
23 $27 — SELL +$27

The rule refuses $78 and accepts $33. That is not a mistake — it is the whole point. At hour 17 there was something better coming. At hour 22 there was not.

The value of holding can fall as the modeled horizon runs out if no terminal value is assigned. That is a model-boundary effect, not a physical truth. A rolling-horizon model should preserve the value of energy carried beyond the current window.

Why Threshold Rules Fail

A simple rule — "sell above $60" — would have sold in hours 17, 18, 19 and 20 on this day.

The optimal four-hour discharge window is hours 18, 19, 17 and 20 — the same set, in this instance. So on this particular day the threshold rule performs well.

It fails in three predictable circumstances, and each is common.

When the price level shifts. A $60 threshold in a market that reprices to a $90 average sells nothing at all, and in one that drops to $25 sells everything immediately. The rule encodes a price level rather than a relationship.

When the peak is early. If the day's best hour comes at 08:00 and a threshold rule holds out for something better, it discharges into a declining afternoon. The rule has no way to know the best hour has passed.

When the battery is not full. A threshold rule says nothing about how much to sell. With two hours of energy and four hours above the threshold, the rule gives no guidance on which two — and picking the first two rather than the best two is a common and expensive default.

The Water Value

The concept that makes this tractable comes from hydro scheduling, where the same problem has been solved for decades.

A reservoir operator faces exactly this question: release water now to generate, or hold it for a higher price later. The answer is expressed as a water value — the marginal value of a unit of stored water, given everything expected to happen for the rest of the season.

Once you have a defensible marginal storage value, the dispatch comparison becomes conceptually simple:

Discharge when the net value of selling now exceeds the continuation value of holding the energy.

All the difficulty moves into computing the value, which is where it belongs. A battery's stored megawatt-hour has exactly the same structure, with a shorter horizon:

Storage_Value(SoC, time) = marginal continuation value of one additional stored MWh
                           under the forecast distribution and feasible future actions

Discharge when: net current discharge value ≥ marginal continuation value

The marginal wear cost from the previous post belongs in the current discharge cash flow or in the transition cost used to solve the value function. Do not add it again if the continuation value already internalizes the same wear economics.

Two properties of the storage value are worth knowing, because they drive the behaviour that distinguishes good dispatch from mediocre dispatch.

It usually falls as the horizon runs out if there is no terminal value, because fewer future opportunities remain. In a rolling-horizon model, however, the terminal value prevents an artificial collapse at the boundary.

It often falls as state of charge rises in a convex dispatch problem, because additional stored energy has fewer high-value outlets. Non-convex constraints, reserve obligations and market rules can alter that shape, so compute the marginal value rather than hard-code monotonicity.

The Horizon Problem

How far ahead should the rule look?

Too short and it sells into a local peak, missing a better one just beyond the window. Too long and it holds energy for a price so distant that the forecast supporting it is worthless.

The horizon has to be long enough to capture the intertemporal opportunity the asset can realistically exploit. There is no universal 24/48/72-hour mapping by duration. NREL research on energy-limited resources emphasizes that storage dispatch is inherently multi-period and that simplifying the sequential optimization can distort value. Choose the look-ahead from the market, forecast skill, duration, contract and operating strategy, then test sensitivity to extending it.

Longer-duration assets can depend more on multi-hour or multi-day forecasts, but the exposure is not monotonic or universal. Measure it by comparing forecast-driven dispatch with longer-horizon and perfect-foresight benchmarks rather than applying a generic penalty to duration.

The Multi-Day Case

Where the horizon extends beyond a day, a further effect appears that single-day analysis misses entirely.

Energy can be held across days. A battery facing a weak Tuesday and a volatile Wednesday should arrive at Wednesday charged, which may mean declining perfectly acceptable Tuesday spreads. The storage value on Tuesday evening is set by Wednesday's expected peak, not by Tuesday's remaining hours.

That is genuinely counterintuitive in operation: the asset sits idle through hours that clear the minimum spread from the previous post, because a better use of the same throughput is coming. It looks like underperformance and is the opposite.

It also connects back to the cycle budget. With a finite number of cycles a year, the question is never merely "is this spread profitable" but "is this spread among the best uses of a scarce cycle." The storage value framework answers both at once, which is its main advantage over a threshold.

The Storage Value Is Your Bid Curve

The most useful operational consequence, and the point at which this stops being theory.

In organized wholesale markets, a battery may submit energy offers / bids subject to the market’s participation model, while in tolling or optimizer arrangements the dispatch instruction can come from a counterparty. The storage value is therefore best understood as the internal marginal value that should inform those market offers or dispatch decisions.

Internal discharge indifference value ≈ SOC shadow value + marginal discharge / wear / market costs

If the participation model permits an offer reflecting that marginal value, the SOC shadow price can inform the bid. The mapping from internal value to submitted offer is market-specific and must also respect SOC, ancillary commitments, default-energy-bid rules, bid caps, telemetry and any optimizer / tolling contract.

That is a considerable practical advantage over a static threshold. The storage value is the model's indifference price — but it is only as good as the forecasts, terminal value and constraints used to compute it.

Three refinements follow naturally.

The internal marginal value can vary with SOC. Where the market permits block offers, lower-opportunity-cost energy can be offered first and higher-opportunity-cost blocks at higher prices; the exact bid format is market-specific.

Charging uses the same value function in reverse. The internal willingness to pay for charging depends on the increase in continuation value from a higher SOC, adjusted for charging efficiency, wear and competing uses.

The value should be recomputed as information and state change. Time, SOC, updated price forecasts, ancillary awards and outages can all move the continuation value between intervals.

This is why the valuation framing matters more than one fixed threshold. The internal value function can support SOC- and time-dependent offers where the market design permits them.

Forecast Error Is Asymmetric, but Not in One Fixed Direction

Selling too early can miss a later scarcity price. Holding too long can miss the available spread entirely or leave energy stranded at the end of the horizon. Which error is more expensive depends on the node, price distribution, terminal value, cycle budget and forecast quality.

Electricity prices can have fat upper tails, so scarcity exposure can make holding optionality valuable. But a model should not convert that observation into a permanent “bias toward holding.” The correct treatment is stochastic or scenario-based:

  • compare expected value across plausible future price paths;
  • preserve a terminal value for remaining SOC;
  • test scarcity / negative-price tails separately;
  • measure realized regret from early-sale and late-sale errors in backtests.

If the business deliberately reserves SOC for scarcity or reliability, model that as an explicit policy / contract constraint and price the foregone base-case revenue.

How Fast, Not Just When

One more dimension the hour-by-hour framing hides: the battery chooses a rate as well as a timing.

A 100 MW battery with 400 MWh does not have to discharge at 100 MW. It can deliver 50 MW across eight hours, or 100 MW across four, or 25 MW across sixteen. The storage value framework handles this automatically — each megawatt-hour is offered at its own value, and the market takes what clears — but the consequences are worth drawing out.

Spreading discharge captures more hours at lower prices. Concentrating it captures fewer hours at higher prices. Which is better depends entirely on the shape of the peak: a sharp single-hour spike rewards concentration, a broad evening plateau rewards spreading.

The power rating caps instantaneous charge / discharge. A battery can generally operate below nameplate within its technical envelope, but efficiency curves, auxiliary loads, minimum stable operating points and market interval rules can still matter at lower rates.

Rate can affect degradation and efficiency. The impact depends on chemistry, temperature, SOC and OEM design. A detailed optimizer can use a rate-dependent degradation / efficiency map; a screening model should at least verify the chosen C-rate stays inside the technical and warranty envelope.

Do not assume the rate effect is always second-order or that every warranty is written as a maximum C-rate plus cycle count. Use the selected OEM’s operating limits and degradation data.

The practical treatment is to let the offer curve determine the rate implicitly, and to monitor realised C-rate against the warranty assumption as an operating metric rather than trying to optimise it directly.

How Do You Build the Discharge Rule in Excel?

As a value-function problem over time and SOC. A single backward column is useful only for the toy perfect-foresight case; a production model needs the state dimension.

The single-day version

For the toy one-MWh / no-recharge perfect-foresight case:
    Continuation_Value(T) = Terminal_Value
    work backward through the remaining sale opportunities

For the actual battery:
    V(t, SOC) = MAX over feasible charge / discharge / idle / reserve actions of
                [ interval cash flow − variable costs + expected V(t+1, SOC_next) ]

SOC_Shadow_Value(t,SOC) ≈ V(t,SOC) − V(t,SOC−ΔSOC)

Discharge when the current net value of reducing SOC exceeds that shadow value.

The toy recursion can be shown in one spreadsheet column. The actual problem is a two-dimensional SOC/time table or an optimization model, because future charging and SOC constraints change the continuation value.

The state-of-charge extension

V(t, SOC) — a table or optimizer state

For each interval and SOC state:
    evaluate feasible charge, discharge, idle and reserved-capacity actions
    subject to power, efficiency, SOC, throughput and market constraints

This is where the calculation becomes two-dimensional and where the next post picks it up.

The outputs to publish

PF_SOCShadowValue               by interval and SOC state
PF_DispatchSchedule             charge / discharge / idle / reserved capacity
PF_TerminalSOCValue             boundary assumption
PF_HorizonSensitivity           result across alternative look-ahead horizons
PF_ForecastVsPerfectForesight   opportunity-value diagnostic

The last is a genuine robustness test. If the answer changes materially between a 24-hour and a 48-hour horizon, the strategy depends on forecasts at a distance where they are unreliable — which is information about the risk in the revenue, not just about the dispatch.

ℹ️ Note: Build the discharge rule as a comparison against a computed storage value, never as a price threshold. A threshold is a storage value frozen at one price level, and it silently becomes wrong the moment the market moves.

To build the storage value curve, the backward recursion and the horizon sensitivity, prompt Dezzmond with your price series, duration and degradation cost.

What Do Operators and Lenders Actually Check?

  • Is the discharge rule a threshold or a computed storage value?
  • What look-ahead horizon is used, and does it scale with duration?
  • How much does the answer change between a 24- and 48-hour horizon?
  • Does the rule account for degradation on the discharge side as well as the charge side?
  • Can energy be held across days, and does the model permit it?
  • How does the marginal storage value change with state of charge, and is the shape economically consistent with the model constraints?
  • What revenue is being declined, and is declining it deliberate?

Frequently Asked Questions

What is a stored megawatt-hour worth?

The expected marginal continuation value of keeping one more MWh stored, given the forecast distribution, SOC, remaining horizon and operating constraints. Under perfect foresight it can collapse to the value of a known better future opportunity, but real dispatch is uncertain.

Why do price threshold rules fail?

Because they encode a price level rather than a relationship. They break when the market reprices, when the day's peak comes early, and they give no guidance on how much to sell when fewer hours of energy are available than hours above the threshold.

What is a water value?

The marginal continuation value of stored water in hydro scheduling. Battery storage has the same intertemporal structure, but the value also depends on battery-specific SOC, efficiency, degradation and market-product constraints.

How far ahead should a dispatch model look?

Long enough to capture the opportunities the asset can realistically shift across, but not so long that forecast quality makes the optimization meaningless. Choose and validate the horizon using forecast skill, duration, market cadence, terminal value and sensitivity tests; there is no universal 24/48/72-hour rule.

How does the storage value become a market offer?

Use the internal storage value to inform the energy offer / dispatch instruction, subject to the market’s bid format and the asset’s SOC / ancillary constraints. Multi-step offers can represent SOC-dependent value where the market permits them.

Is selling too early as costly as holding too long?

Not in a fixed direction. Selling early can miss a scarcity event; holding too long can leave energy stranded or miss the available spread. Measure both errors on forecast-driven backtests rather than imposing a permanent bias toward holding.

Why can marginal storage value fall as the battery fills?

In a convex storage problem, additional stored MWh often have fewer high-value future outlets than the first units, so marginal value can decline with SOC. Reserve obligations, non-convex limits and market rules can alter that shape, so calculate it rather than hard-code it.

Closing: The Price Is Not the Question

Charging and discharging are two sides of the same intertemporal optimization. Both depend on current price, marginal operating cost and the continuation value of SOC; the discharge side simply makes the opportunity cost of stored energy especially visible.

Discharge is an intertemporal valuation problem. Compute the marginal continuation value from the forecast, SOC and constraints, then compare it with the current net sale value. The operating rule is simple only after the forecast-dependent valuation has been done.

It also reframes what good dispatch looks like from the outside. A battery running the storage-value rule will decline hours that clear every profitability test in the previous post, and will sit idle through spreads that look attractive in isolation. That is not caution or malfunction. It is an asset with a finite resource declining to spend it on the third-best use when the best one is still coming.

the next post takes the constraint that makes all of this a scheduling problem rather than an hourly calculation: you cannot sell what you did not store, and state of charge links every hour to every other one.

Sources: NREL — Impact of Storage Dispatch Assumptions on Resource Adequacy and Capacity Credit; energy-limited resources require multi-period dispatch treatment · CAISO — Storage Design and Modeling initiative; state-of-charge management and storage default energy bids · CAISO Department of Market Monitoring — 2026 comments emphasizing location- and time-varying storage opportunity cost · ERCOT — RTC+B co-optimizes energy and ancillary services with battery SOC modeled in real time · Dezzmond analysis; $78/$95 and storage-value examples are illustrative.