Energy Finance & Grid Storage Analytics
Battery Levelized Cost of Storage (LCOS) Formula
Calculate utility-scale battery LCOS ($/MWh discharged) using Capital Recovery Factor r/(1 - (1 + r)^(-N)), usable DoD cycles, and round-trip charging cost P_charge / eta_rt.
Catch the $18/MWh round-trip efficiency mistake: DIVIDE charging power price by eta_rt!
Evaluating grid-scale lithium-iron-phosphate (LFP) battery projects requires Levelized Cost of Storage (LCOS, in $/MWh actually discharged to the grid). With installed Capex C_kwh ($/kWh), fixed O&M F_om ($/kWh-yr), WACC r > 0 over N years, Capital Recovery Factor CRF = r / (1 - (1 + r)^(-N)), Annual_Cycles, Depth of Discharge DoD in (0, 1], wholesale charging price P_chg ($/MWh), and Round-Trip Efficiency eta_rt in (0, 1], annualized fixed cost per MWh discharged is ((C_kwh * CRF + F_om) / (Annual_Cycles * DoD)) * 1,000, AND charging electricity cost per MWh discharged is P_chg / eta_rt — NEVER P_chg * eta_rt, because discharging 1.00 MWh at 80% efficiency requires purchasing 1 / 0.80 = 1.25 MWh from the grid!
Verify on Capex = 300 $/kWh (B2), Fixed_OM = 6 $/kWh-yr (B3), WACC_r = 0.08 (B4 = 8%), Life_N = 10 yr (B5), Cycles = 300/yr (B6), DoD = 0.90 (B7 -> 270 kWh/kWh-yr = 0.270 MWh/kWh-yr), Charging_Price = 40 $/MWh (B8), and RoundTrip_eta = 0.80 (B9): CRF = 0.149029, Fixed Capacity + O&M Component = ((44.7088 + 6) / 270) * 1,000 = 187.81 $/MWh, Charging Fuel Component = 40 / 0.80 = 50.00 $/MWh (vs naive 40 * 0.80 = 32.00 $/MWh error!), and Total LCOS = 237.81 $/MWh!
| Grid Battery LCOS Component (300 $/kWh, 8%, 10 yr, 270 kWh/yr) | Formula | Verified Output |
|---|---|---|
| Capital Recovery Factor (CRF) | r / (1 - (1 + r)^(-N)) | 0.149029 / yr |
| Fixed Capex + O&M Component | ((Capex * CRF + OM) / (Cycles * DoD)) * 1,000 | 187.81 $/MWh |
| Efficiency-Adjusted Charging Cost | P_charge / eta_rt | 50.00 $/MWh (Buys 1.25 MWh) |
| Total Discharged LCOS | Fixed_MWh + P_charge / eta_rt | 237.81 $/MWh |
Fixed Capex + O&M Storage Cost per Discharged MWh Formula
Validate positive Capex, WACC r > 0, life N >= 1, cycles > 0, and 0 < DoD, eta_rt <= 1.
=LET(c_kw, B2, f_om, B3, r_wc, B4, n_yr, B5, cy_y, B6, dod_f, B7, IF(OR(c_kw <= 0, f_om < 0, r_wc <= 0, n_yr < 1, cy_y <= 0, dod_f <= 0, dod_f > 1), "Invalid LCOS Input", LET(crf_v, r_wc / (1 - ((1 + r_wc)^(-n_yr))), ROUND(((c_kw * crf_v + f_om) / (cy_y * dod_f)) * 1000, 2))))Total Discharged Levelized Cost of Storage (LCOS) Formula
Test zero-price curtailed solar charging (B8 = 0 -> LCOS = 187.81 $/MWh) or negative wholesale pricing during midday solar peaks!
=LET(c_kw, B2, f_om, B3, r_wc, B4, n_yr, B5, cy_y, B6, dod_f, B7, p_ch, B8, et_r, B9, IF(OR(c_kw <= 0, f_om < 0, r_wc <= 0, n_yr < 1, cy_y <= 0, dod_f <= 0, dod_f > 1, et_r <= 0, et_r > 1), "Invalid LCOS Input", LET(crf_v, r_wc / (1 - ((1 + r_wc)^(-n_yr))), fx_mw, ((c_kw * crf_v + f_om) / (cy_y * dod_f)) * 1000, ROUND(fx_mw + (p_ch / et_r), 2))))Try the example
Use the original values or change them to test your understanding.