Skip to content

BESS breakeven — required VPP service revenue

Generated: 2026-05-07. Method: reverse-solve the BESS-incremental NPV gap at 8% WACC, 20-year horizon, with 50% augmentation at year 10. Inputs: LP-optimal dispatch results from reports/btm_economics_dc100.json.

For commercial discussions For a 4-hour BESS attached to a 100 MW JB DC anchor at current capex (5 M RM/MWh = USD 1,000/kWh):

QuantityValueEquivalent
Required extra revenue per MWh installed646 kRM/MWh/yr~USD 137k/MWh/yr
Required revenue per MW power2.58 M RM/MW/yr~USD 560k/MW/yr
Capacity-payment equivalent215 k RM/MW/month~USD 47k/MW/month
Dispatch fee equivalent3.16 RM/kWh delivered~USD 0.69/kWh

The dispatch-fee number is ~5–10× current peak energy rates and is not a realistic per-energy commercial structure. The capacity-payment equivalent is the right framing — and at ~USD 47k/MW/month it is 5–10× current global VPP service benchmarks, which is why BESS doesn’t clear today.

PV held constant (LP dispatch); BESS sized at PV/4 power × 4 h duration:

PV (MW)BESS (MWh)ICPTBTM ΔsavingsRequiredGapkRM/MWh/yrRM/MW/monthRM/kWh dispatched
3030period-aligned2.4921.819.3644214,7693.16
6060period-aligned4.9743.638.7644214,7693.16
9090period-aligned7.4665.458.0644214,7693.16
3030+16 sen flat2.4221.819.4646215,4583.17
6060+16 sen flat4.8543.638.8646215,4583.17
9090+16 sen flat7.2765.458.2646215,4583.17

(All RM millions/yr unless noted. “Gap” = required − BTM-captured.)

The gap is size-invariant at ~644 kRM/MWh/yr — the model has constant returns to scale. Doubling BESS doubles capex and doubles incremental savings. The per-MWh number is what matters for designing the commercial structure.

Benchmark vs existing global VPP service rates

Section titled “Benchmark vs existing global VPP service rates”
Service marketCapacity paymentConversion to RM/MW/month
Singapore DRC (Demand Response Capacity)~SGD 5–10 k/MW/monthRM 17–34 k
UK Firm Frequency Response (FFR)~GBP 15–30 k/MW/yrRM 7–14 k/month
UK Capacity Market~GBP 30–60 k/MW/yrRM 14–28 k/month
AU FCAS regulation~AUD 50–150 k/MW/yrRM 16–48 k/month
JB BESS gap @ current capexRM 215 k/MW/month

The JB requirement is 5–15× the upper bound of mature VPP service markets. No single market today pays this rate. Three plausible paths:

BloombergNEF Lithium-Ion Battery Price Survey trajectory:

  • 2024: ~USD 1,000/kWh installed (= 5 M RM/MWh) — current model assumption
  • 2027: ~USD 600/kWh (= 3 M RM/MWh) — gap drops to ~280 kRM/MWh/yr
  • 2030: ~USD 320/kWh (= 1.6 M RM/MWh) — gap drops to ~180 kRM/MWh/yr

By 2030, the gap is comparable to current Singapore DRC + UK CM stacked, which is achievable. The base-case BESS plan is to defer commitment until 2027-2028, then re-evaluate.

Path 2: Bundle multiple service streams (today)

Section titled “Path 2: Bundle multiple service streams (today)”

To close the 215 k RM/MW/month gap with 2024 capex, you’d need to stack:

  • Singapore DRC export (if ENEGEM evolves to allow): ~30 k RM/MW/mo
  • TNB ancillary services contract (does not exist commercially today): ~50 k RM/MW/mo
  • Hyperscaler 24/7 carbon match premium (private contract): ~70 k RM/MW/mo
  • Capacity reserve for Johor grid (does not exist commercially today): ~50 k RM/MW/mo
  • Plus arbitrage already captured in BTM model: implicit

This stack requires at least two markets that don’t exist yet to be negotiated with regulators or the hyperscaler tenant directly. Not impossible but bespoke.

A hyperscaler with strict uptime requirements (99.999%+) might value on-site BESS as a backup-power complement to diesel gensets. If priced as “backup capacity premium” rather than “energy arbitrage”, the tenant could absorb the gap via a higher PPA rate.

Required premium on the bundled BTM PV+BESS PPA:

  • BESS share of capex ≈ 60% of total project (300M of 510M)
  • Annualised 2.58 M RM/MW/yr ÷ DC gross load 112 MW = 23 k RM/MW(DC)/yr
  • ≈ 0.026 RM/kWh of DC consumption (at 8760 hr × 100% util)
  • 2.6 sen/kWh markup on the PPA

A 2.6 sen/kWh markup on a hyperscaler PPA is small in absolute terms (it’s ~5% of the all-in tariff). This is the most plausible commercial structure for BESS today: bundle the PV+BESS as a “VPP-grade” PPA with a modest premium that compensates for resilience + carbon-match optionality.

LeverDirectionMagnitude
Capex 5M → 3M RM/MWh by 2027Reduces gap ~50%644 → 320 kRM/MWh/yr
Capex 5M → 1.6M RM/MWh by 2030Reduces gap ~75%644 → 180 kRM/MWh/yr
Better BESS sizing (8h instead of 4h)Captures more arbitrageGap −5 to −10% (modest)
Larger PV (relative to load) creating surplusReduces grid charge costGap −10 to −15% if PV > 70% load
ICPT shifts from 16 sen to 30 senIncreases peak/off-peak spreadGap −15% per 14 sen ICPT increase
Allow grid export (PPA permits)New revenue streamHard to size without ENEGEM data
Augmentation cost falls (cells alone < 50%)Reduces year-10 cash dragGap −5 to −8%
  1. Today’s BESS commercial structure should be a 2.6 sen/kWh PPA premium bundled with PV. This is the only commercial path that closes the gap with current capex.
  2. A standalone “VPP service contract” needs to deliver ~RM 215 k/MW/month to clear NPV. No global market pays this; only a custom contract with the hyperscaler tenant can. Use this number as the negotiation floor with anchor customers.
  3. Capex trajectory is the dominant driver. Most of the gap closes by 2027–2028 on BNEF’s price curve. Recommend the BESS investment plan include a “trigger condition” — defer until capex falls below ~3 M RM/MWh OR a custom contract at the floor materialises.
  4. Stack-of-services modelling is misleading: most listed “VPP markets” in MY don’t exist commercially today. Don’t claim revenue from non-existent markets in the pro-forma.
  5. PV-only is bankable today at IRR 9.5%, payback 9 years. Don’t gate the PV decision on BESS contracting — fund PV alone, hold BESS as a trigger-conditional option.
  • Augmentation is modelled as a single 50% capex hit at year 10. Real augmentation curves are smoother (e.g., 5% per year cell replacement); may understate or overstate by ~10%.
  • LP dispatch assumes perfect foresight of solar + load. Real dispatch has forecast error losses ~5–10%, which would slightly widen the gap.
  • DC anchor load is modelled as flat 112 MW; real DC has cooling-driven CDH variation (PUE rises in hot months). Adding this variation would marginally help BESS by widening MD spread; estimate +5% gap closure.
  • ICPT projections beyond 2025-H1 are placeholders. If ICPT structurally rises (e.g., subsidy reform), gap closes faster.
  • All RM/USD conversions at 4.6 RM/USD (mid-2025 ballpark).
  • This report: reports/vpp_service_revenue_required.md
  • Raw breakeven results: reports/breakeven_revenue.json
  • Source LP results: reports/btm_economics_dc100.json
  • BTM model report: reports/btm_economics_dc100.md