Discounted Cash Flow DCF
Discounted cash flow (DCF) is the valuation engine that compresses a grid-scale storage project's engineering into a single decision number. It projects the project's net cash flow year by year over its operating life, then discounts each year back to today using a rate that captures the time value of money and project risk. Summing those discounted flows against the upfront capital gives the Net Present Value; the rate that drives NPV to zero is the Internal Rate of Return.
For a stationary BESS the flows are the revenue stack - capacity payments, energy arbitrage, ancillary services - minus operating costs, augmentation capex, and debt service, modeled over 15-20 years (up to ~25 with an augmentation strategy). Every engineer meets DCF inside the financial model that decides whether the project gets built.
Reviewed July 2026 by Sergey Syrvachev
New to BESS? Start free with the 7-email fundamentals course — no cost, no account.
What it is (precise)
DCF treats the battery as a stream of dated cash flows. Each year's free cash flow is multiplied by a discount factor of 1/(1+r)^n, where r is the Discount rate and n is the year number, so a dollar arriving in year 15 at an 8% rate is worth only about 32 cents today. The rate and the flows must share a basis: nominal flows discounted at a nominal rate, inflation-adjusted flows at a real rate. Mixing the two silently mis-states value, and this basis mismatch is the first thing a lender's model reviewer looks for and the fastest way to flatter a project that does not deserve it.
NPV is the headline output: the present value of all inflows minus all outflows, including the day-zero EPC and equipment cost. A positive NPV means the project earns more than its cost of capital, so NPV greater than zero is the go/no-go line. IRR restates the same arithmetic as one annualized return, handy for ranking but easy to misread when cash-flow shapes or augmentation timing differ.
The Discount rate is usually the Weighted Average Cost of Capital, blending after-tax cost of debt and required equity return in proportion to the financing mix, while Payback period is the undiscounted cousin that ignores everything after breakeven.
Why it matters in a real grid-scale project
A BESS lives on the spread between a large, front-loaded capital outlay and a long, uncertain revenue tail, so DCF is exactly where engineering choices become financial ones. Picking LFP over NMC, oversizing DC capacity to hold a 4-hour duration as cells fade, or budgeting a mid-life augmentation each reshape the cash-flow curve. Because later cash is discounted hardest - a dollar in year 20 at 8% is worth only about 21 cents today - the model rewards revenue captured early and punishes deferred or uncertain income. The same physics that sizes the plant quietly sets its valuation.
This is why round-trip efficiency, degradation, and availability are valuation inputs, not just technical specs. A one-point drop in RTE or a faster capacity fade cuts deliverable MWh every year, and DCF compounds that shortfall across the whole revenue stack for two decades.
Lenders run their own DCF against a conservative P50 / P90 case to size debt, so the engineer's assumptions on cycle life, augmentation capex, and warranty coverage directly set how much of the project can be financed and at what Debt Service Coverage Ratio the debt is sculpted. Gearing / leverage then follows from the cash the model can safely carry.
PVt = CFt ÷ (1 + r)t · DCF = Σ PVt · NPV = DCF − capex
Cash that lands further out is worth less today; the running sum of those present values is the DCF, and its end value is the NPV.
- Typical discount rate (WACC, real)
- ~5-8% real contracted; ~9-11% real for merchant (below cost of equity)
- Discount factor
- 1/(1+r)^n; at 8%, $1 in year 20 is worth ~$0.21 today
- Modeled economic life
- 15-20 years (20-year base case common); up to ~25 with an augmentation strategy
- Round-trip efficiency (AC-AC, at POI)
- ~85-90%; a 1-point loss cuts sellable MWh every year
- Modeled availability
- ~97-99% annual
- Augmentation timing
- First augmentation typically years 5-10 to restore contracted MWh
- Warranted end-of-life retention
- Commonly ~60-70% of nameplate energy
- Lender debt sizing
- Conservative (P90-type) case; minimum DSCR typically ~1.3-1.4x
- Gearing on contracted projects
- Often ~60-80% of capex; much lower for merchant
- US investment tax credit
- US-specific; commonly ~30% of eligible capex plus adders, policy-dependent
- NPV decision rule
- NPV > 0 means return exceeds cost of capital; IRR = rate where NPV = 0
- Standards feeding cost inputs
- NFPA 855, UL 9540A test data, NFPA 68/69
Typical values and standards
Discount rates for utility-scale storage typically land on the order of 5-8% (real, WACC-based) for contracted, low-merchant-risk projects, rising to roughly 9-11% real for heavily merchant revenue — still below the merchant equity return, since a blended WACC always sits under the cost of equity. Equity return targets follow the same split: high single digits to around 10% for fully tolled projects, low-to-mid teens where the revenue is mostly merchant.
Economic life is usually modeled over 15-20 years, with 20 years a common base case and up to ~25 where an augmentation strategy holds usable capacity, and Gearing / leverage on contracted projects often reaches 60-80% of capex, far less for merchant-heavy structures where uncertain cash cannot support as much debt.
The technical inputs carry their own memorable ranges. AC-AC round-trip efficiency at the point of interconnection of roughly 85-90%, annual availability targets around 97-99%, and 2-4 hour durations (a 4-hour system cycles at 0.25C) feed the revenue lines directly.
LFP degradation is usually modeled with a first augmentation planned somewhere in years 5-10 - and sometimes again later - sized to restore usable energy to the contracted level, with warranties commonly guaranteeing end-of-life retention near 60-70% of nameplate. Every one of these figures is a modeled assumption, not a datasheet constant, so each belongs in the sensitivity table with its own high and low case.
DCF itself is a finance method, not a code, but its inputs are constrained by real standards and policy. Safety and permitting costs flow from NFPA 855 installation requirements, UL 9540A fire-propagation test data, and NFPA 68/69 deflagration provisions, while grid-code compliance at the POI shapes both capex and the revenue ceiling.
In the United States the investment tax credit - commonly modeled around 30% of eligible capex with possible adders, and always subject to the policy in force at financial close - can dominate early-year cash flow. Because it lands in year zero and is discounted least, model it explicitly as a scenario rather than hard-coding one number.
How it shows up in specs, studies and contracts
The DCF model is assembled from documents a working engineer already handles. The battery supplier's degradation table and capacity-guarantee warranty define the usable-energy line year by year; the RTE test report and its stated conditions plus auxiliary-load assumptions define the loss line; the interconnection agreement caps deliverable MW at the POI; and the tolling agreement, capacity contract, or market-rules forecast fixes the price applied to every MWh and MW.
Change any one of these documents and you change the valuation, which is why lenders' technical advisors read them line by line before the model is accepted.
When reviewing a model, pin the basis of every energy figure: AC at the POI or DC at the battery terminals, beginning-of-life or end-of-life, nameplate or usable or contracted. Ask the vendor at what temperature, C-rate, and SOC window the RTE was measured, whether the degradation curve blends calendar and cycle aging at your actual dispatch profile, and whether availability liquidated damages backstop the revenue line.
Confirm which case - P50 or P90 - the debt is sized against and the minimum Debt Service Coverage Ratio the lender demands, typically around 1.20-1.40x on the contracted-revenue sizing case, because that single covenant often decides how much debt the cash flows can carry.
Common pitfalls
The most common modeling errors are basis errors, not arithmetic ones. Discounting nominal cash flows at a real rate flatters the project; quoting DC-side energy against an AC-side price overstates revenue by the full conversion loss; and carrying beginning-of-life energy through year 20 ignores the very degradation the augmentation budget exists to fix. Power and energy must also stay distinct: a 100 MW / 400 MWh project earns capacity revenue on its MW and arbitrage revenue on its MWh, so conflating the two breaks both revenue lines at once and quietly double-counts or strands capacity.
The second trap is false precision. A single deterministic NPV hides the fact that merchant price curves, degradation rates, and augmentation costs are all wide distributions - a defensible model presents sensitivities and scenario cases, not one number. IRR adds its own distortions: with lumpy mid-life augmentation outflows the equation can have multiple mathematical roots, and IRR implicitly assumes interim cash is reinvested at the IRR itself. Rank alternatives on Net Present Value at the project's true cost of capital and treat IRR as a supporting indicator, never the sole decision metric.
A higher IRR always means the better BESS investment.
In reality: IRR ignores project scale and assumes interim cash is reinvested at the IRR itself, so it can rank a small, fast-payback project above a larger one that creates more total value. For storage with mid-life augmentation and lumpy, back-loaded cash flows, IRR can be distorted or even produce multiple mathematical solutions - so rank on Net Present Value at the project's true cost of capital, and use IRR only as a supporting indicator.
- Interactive: Revenue Stacking Example Interactive visual · bess.engineer
- Interactive: The Duck Curve Interactive visual · bess.engineer
Discounted Cash Flow, in context.
The Grid-Scale BESS course covers discounted cash flow — and the rest of the system — from the ground up, the way it actually gets deployed.