BESS investment trigger curve
Generated: 2026-05-08 (post full-year correction). Inputs: BNEF Lithium-Ion Battery Price Survey trajectory 2024-2035, industry-realistic O&M (50 kRM/MWh/yr, mid-Lazard LCOS 2024 4-h), full-year-corrected LP BTM-incremental savings (100 kRM/MWh/yr), 5 VPP service revenue scenarios.
VPP service revenue is the structural trigger, not capex. BESS does NOT become economic just by waiting for capex to fall. Even at the BNEF 2035 floor (USD 326/kWh = 1.5 M RM/MWh), pure BTM avoided cost delivers BESS NPV per MWh of −1,356 RM/MWh — still 100% negative.
The trigger problem decomposes cleanly:
| VPP Revenue (RM/MW/mo) | Effective rate context | First trigger year | NPV at trigger |
|---|---|---|---|
| 0 | BTM only | Never within horizon | — |
| 30,000 | Modest aggregator (Tier 2 modeled) | Never within horizon | — |
| 60,000 | 24/7 CFE premium @ RM 100/MWh × 30% util | 2031 | +41 RM/MWh |
| 120,000 | Strong VPP stack (DRC + capacity + 24/7 + carbon) | 2027 | +84 RM/MWh |
| 180,000 | Custom hyperscaler “anchor floor” PPA | 2025 | +374 RM/MWh |
Reading: at sufficient VPP revenue (180k+ RM/MW/mo), BESS triggers already in 2025 at current capex. Without VPP revenue (BTM only), no amount of capex decline within BNEF’s 2035 horizon makes BESS economic.
Year-by-year NPV per MWh (RM/MWh, ”✓” = NPV ≥ 0)
Section titled “Year-by-year NPV per MWh (RM/MWh, ”✓” = NPV ≥ 0)”| Year | Capex (M RM/MWh) | BTM only | Tier 2 30k | 24/7 60k | Strong 120k | Premium 180k |
|---|---|---|---|---|---|---|
| 2024 | 5.00 | −5,667 | −4,783 | −3,900 | −2,133 | −365 |
| 2025 | 4.40 | −4,928 | −4,044 | −3,161 | −1,394 | +374 ✓ |
| 2026 | 3.80 | −4,189 | −3,306 | −2,422 | −655 | +1,113 ✓ |
| 2027 | 3.20 | −3,450 | −2,567 | −1,683 | +84 ✓ | +1,852 ✓ |
| 2028 | 2.70 | −2,834 | −1,951 | −1,067 | +700 ✓ | +2,467 ✓ |
| 2029 | 2.30 | −2,342 | −1,458 | −574 | +1,193 ✓ | +2,960 ✓ |
| 2030 | 2.00 | −1,972 | −1,089 | −205 | +1,562 ✓ | +3,330 ✓ |
| 2031 | 1.80 | −1,726 | −842 | +41 ✓ | +1,809 ✓ | +3,576 ✓ |
| 2032 | 1.65 | −1,541 | −658 | +226 ✓ | +1,993 ✓ | +3,761 ✓ |
| 2033 | 1.55 | −1,418 | −534 | +349 ✓ | +2,116 ✓ | +3,884 ✓ |
| 2034+ | 1.50 (floor) | −1,356 | −473 | +411 ✓ | +2,178 ✓ | +3,945 ✓ |
(For a 60 MWh BESS multiply per-MWh figures by 60. Premium PPA scenario 2025 commit: +374 × 60 = +22,440 kRM = +22.4 M RM project NPV — meaningfully positive once the anchor PPA is in hand.)
The OpEx ceiling — why “wait for capex” doesn’t work alone
Section titled “The OpEx ceiling — why “wait for capex” doesn’t work alone”BESS at 50 kRM/MWh/yr O&M and 100 kRM/MWh/yr BTM-incremental savings has a net annual cash flow of only 50 kRM/MWh/yr — even at zero capex.
Annuity at 8% × 20y = 9.82 → max NPV at zero capex = +491 RM/MWh minus year-10 augmentation ≈ stays positive at zero capex.
Said differently: even zero capex on the battery itself doesn’t push BTM NPV high enough to compensate for opex + degradation if no VPP service revenue exists. The trigger is contractual, not technological.
What the rate ladders mean
Section titled “What the rate ladders mean”| RM/MW/mo | Rough USD equivalent | Achievable today? | Notes |
|---|---|---|---|
| 30,000 | $79/kW/yr | Not in MY | UK FFR floor (~60/kW/yr; MY would need new market |
| 60,000 | $157/kW/yr | UK CM upper + DRC stack — achievable today in mature markets | |
| 120,000 | $314/kW/yr | Custom contracts only | Stacked frequency + capacity + dispatch + 24/7 CFE premium |
| 180,000 | $471/kW/yr | Hyperscaler anchor floor | Single-customer contract floor; market-clearing rare |
Reading the trigger matrix
Section titled “Reading the trigger matrix”Year BTM 30k 60k 120k 180k2025 ❌ ❌ ❌ ❌ ✓ ← inflection point: anchor PPA clears2026 ❌ ❌ ❌ ❌ ✓2027 ❌ ❌ ❌ ✓ ✓ ← inflection point: strong VPP stack clears2028 ❌ ❌ ❌ ✓ ✓2029 ❌ ❌ ❌ ✓ ✓2030 ❌ ❌ ❌ ✓ ✓2031 ❌ ❌ ✓ ✓ ✓ ← inflection point: 24/7 CFE premium clears2032 ❌ ❌ ✓ ✓ ✓2033+ ❌ ❌ ✓ ✓ ✓The pure-BTM-only column never clears within BNEF’s modeled horizon. This is structural: the BTM-incremental annual cash flow (100 kRM/MWh/yr gross, 50 kRM/MWh/yr net of O&M) cannot finance a battery that cycles with ~10% RTE loss + degradation requires augmentation. Capex falling helps but not enough by itself.
Three commercial deployment options
Section titled “Three commercial deployment options”Option A: Wait until 2025 if anchor PPA at 180k clears
Section titled “Option A: Wait until 2025 if anchor PPA at 180k clears”If a hyperscaler counterparty signs a custom PPA at ≥180 kRM/MW/mo for the BESS service component, commit BESS in 2025 at current 5 M RM/MWh capex — NPV per MWh +374, project NPV +22.4 M RM at 60 MWh.
Option B: Wait until 2027–2028 if strong VPP stack at 120k clears
Section titled “Option B: Wait until 2027–2028 if strong VPP stack at 120k clears”If the project can credibly stack DRC + capacity + 24/7 CFE premium + carbon attributes to ≥120 kRM/MW/mo, commit BESS in 2027 or 2028. NPV per MWh: +84 to +700 RM/MWh.
Option C: Wait until 2031+ at 60k RM/MW/mo
Section titled “Option C: Wait until 2031+ at 60k RM/MW/mo”If only the 24/7 CFE premium materializes (60 kRM/MW/mo on power-rated contract = ~30% utilisation × RM 100/MWh on bundled PPA), commit BESS in 2031 at BNEF projected 1.80 M RM/MWh capex. NPV per MWh: +41 RM/MWh. Plus risk: assumes 2031 capex hits 1.80M RM/MWh per BNEF; if curve slips by 1–2 years, trigger slips correspondingly.
Pre-positioning recommendations
Section titled “Pre-positioning recommendations”- Sign the framework agreement now for BESS dispatch services with the anchor tenant. Trigger is “VPP contract signed”, not “BNEF year reached.”
- Negotiate option price for BESS deployment in 2025–2031. Strike conditional on either (a) hyperscaler PPA carbon-attribute pricing, or (b) MY DRC market activation, or (c) BNEF capex floor + tariff regime unchanged.
- The single most modest 60k RM/MW/mo rate clears BESS by 2031 already. Pre-position cost is low; option value is highest in 2026–2027.
Sensitivity to assumptions
Section titled “Sensitivity to assumptions”The 2031 trigger year (24/7 CFE @ 60k) is sensitive to:
- BNEF capex curve realisation (±1 year for ±15% capex drift)
- BTM-incremental savings (currently 100 kRM/MWh — drops 5–10 kRM if ICPT reform; trigger slips 1 year)
- Augmentation cost trajectory (modeled flat 50% — actual curves smoother)
- Annual O&M rate (Lazard band 37–69 kRM/MWh — using 50 mid-band)
For the 120k Strong VPP stack scenario the 2027 trigger is robust to ±1 year of capex drift; the 180k Premium PPA 2025 trigger is bulletproof within current capex assumptions.