Skip to content

Aggregator portfolio — does scale fix BESS?

Generated: 2026-05-08 (post full-year correction). Model: 10-site JS-SEZ-realistic anchor portfolio, ranging from 50 to 200 MW each, totaling 1,225 MW announced. Per-site PV at 60% of announced (gross load × 0.535), BESS at PV/4 power × 4h duration. Per-unit economics from the full-year-corrected LP run (PV 532 kRM/MW/yr savings, BESS 100 kRM/MWh/yr incremental @ ICPT 16 sen).

Aggregation does not solve the BESS NPV problem at any reasonable scale.

SitesTotal BESS MWModeled tier rate (RM/MW/mo)Portfolio NPV (RM mn)PV-only NPV (RM mn)Required rate to break even
17.50 (sub-market)−143+41162,229
44920,000 (DRC)−817+269162,229
56460,000 (DRC + cap)−768+352162,229
1018460,000 (DRC + cap)−2,213+1,014162,229

The required-breakeven rate is invariant at ~162 kRM/MW/mo across all portfolio sizes because per-MW economics are linear. Aggregation does NOT reduce the per-MW gap — it only multiplies the absolute numbers. (Note: this combined-portfolio rate is lower than the standalone BESS-incremental breakeven of 209 kRM/MW/mo in vpp_service_revenue_required.md because PV’s strong NPV-positive contribution partially offsets the BESS gap when both are bundled in one contract.)

What aggregation actually does (and doesn’t do)

Section titled “What aggregation actually does (and doesn’t do)”
  • Reduce per-MWh BESS capex. Aggregator pricing power on EPC contracts is modest at 100–500 MWh purchase; the BNEF curve dominates.
  • Change the dispatch math. All anchor sites share the same TNB ETOU peak window and a similar 7×24 DC load shape. There is no diversity benefit on MD timing — every site’s BESS shaves the same 14:00–22:00 MYT window.
  • Improve cycle frequency. Each MWh still cycles ~250 times/yr; aggregating doesn’t unlock additional cycles.
  • Change the energy arbitrage spread. Same tariff E3, same ICPT.
  • Unlock market access to revenue streams below a participation threshold:
    • Singapore-style DRC (typically requires 1+ MW; aggregator easily clears)
    • Capacity payment programmes that may exist in MY by 2027–2030 (ST is consulting on this; threshold likely 5–10 MW)
    • ENEGEM auction reserve where minimum block size matters
  • Negotiate custom hyperscaler “VPP-grade” PPAs that price-in cross-site resilience the way single-site PPAs cannot.
  • Amortize transaction costs (PPA negotiation, regulatory engagement, metering/telemetry) across more sites.

The market-access wedge IS real but the modeled rates are still below the ~162 kRM/MW/mo combined breakeven at current capex; only the optimistic Tier 4 (180 kRM/MW/mo) clears it, and that’s a custom-anchor rate not a standard aggregator product.

Why the breakeven rate is invariant — the structural read

Section titled “Why the breakeven rate is invariant — the structural read”

For a portfolio of size N, every input scales linearly with N:

  • Total CapEx = N × per-site CapEx
  • Total annual BTM savings = N × per-site savings
  • Total OPEX = N × per-site OPEX
  • Total aggregator revenue = N × per-site BESS MW × tier rate

NPV = N × per-site NPV. Hence the per-MW required revenue is N-invariant.

Implication: aggregation is not a financial wedge. It’s a market-access mechanism. To make the BESS economics work, EITHER:

  1. Capex falls (BNEF curve: 5M → 1.6M RM/MWh by ~2030 — see reports/vpp_service_revenue_required.md)
  2. A revenue rate ≥ 202 kRM/MW/mo materialises through a single contract or stack of contracts. Aggregation gates ACCESS to such contracts but doesn’t lift the rate itself.
  3. Per-unit BTM savings improve through e.g., longer duration BESS, larger PV/load ratios, or higher peak/off-peak spreads.

Aggregator commercial structure — what’s actually worth doing

Section titled “Aggregator commercial structure — what’s actually worth doing”

Given the math, the aggregator role is best designed as:

1. Custom hyperscaler “VPP-grade” PPA pool (Tier 3 modeling)

Section titled “1. Custom hyperscaler “VPP-grade” PPA pool (Tier 3 modeling)”

Aggregate 5+ anchor DCs under a single bundled PV+BESS PPA where the hyperscaler pays a small premium (target: 2.6 sen/kWh from reports/vpp_service_revenue_required.md) for resilience + carbon-match optionality. The aggregator runs a single coordinated dispatch across sites.

Does this close the gap? At 5–10 sites, the modeled aggregate NPV is still negative at our Tier 3 rate (120 kRM/MW/mo). Need to combine with capex falling OR contract rate above modeled tier.

2. Market-access entity for future MY VPP services

Section titled “2. Market-access entity for future MY VPP services”

If/when ST opens a DRC-equivalent or capacity remuneration programme, aggregator is positioned to bid as the natural counterparty. This is an option value — pre-position now, capture revenue when the market opens (2027–2030 timeframe per NETR roadmap).

Pre-positioning cost is modest (regulatory + relationship work); the upside is whatever rate the market clears at. The aggregator role is worth positioning for at low absolute cost.

Aggregator buys BESS in single 200+ MWh blocks from cell manufacturers direct. EPC consolidation across N sites delivers 5–10% capex saving versus per-site procurement. This is the only pure-financial wedge aggregation gives. At 5% saving, the gap closes from 202 to ~192 kRM/MW/mo — still negative.

Sensitivity: what aggregator payment rate flips Tier 2/3 portfolios?

Section titled “Sensitivity: what aggregator payment rate flips Tier 2/3 portfolios?”
SitesBESS MWTier todayRequired to flip
564Tier 2 (60k)202k = 3.4× current
10184Tier 2 (60k)202k = 3.4× current
13+200+Tier 3 (120k)202k = 1.7× current
33+500+Tier 4 (180k)202k = 1.1× current

Only at Tier 4 scale (≥ 33 sites, equivalent to ~6 GW announced DC) does aggregation get within 10% of breakeven at modeled Tier 4 rates. This is the entire JS-SEZ buildout in optimistic 2030 scenarios — not bankable for a 2025 commitment.

Plain commercial reading for the BESS investment decision

Section titled “Plain commercial reading for the BESS investment decision”
  1. Aggregation is a market-access strategy, not a financial wedge for BESS economics. The aggregator unlocks revenue streams but doesn’t lift per-MW rates.
  2. No reasonable JS-SEZ portfolio size today (≤10 sites) closes the BESS NPV gap. At 10 sites portfolio NPV is −3.1 B RM, with PV-only at +292 M RM.
  3. The right structure: keep PV portfolio bankable as standalone investment; aggregate purely as a vehicle for future VPP service market participation, with low pre-positioning cost.
  4. Time the BESS commitment to 2027–2028 when capex falls below ~3M RM/MWh AND when at least one VPP service market is operational. At that point, re-run this analysis: capex 3M halves the gap; even Tier 2 modeled payments may then flip portfolio NPV positive.
  • BESS capex curve: BNEF survey, vendor quotes (target: ≤3 M RM/MWh installed)
  • MY VPP service market openings: ST consultations, NETR milestones, any DRC-equivalent or capacity programme announcement
  • JS-SEZ DC commissioning velocity: dc_tracker should track actual vs announced phase-1 dates; portfolio-level economics depend on having sufficient anchors online simultaneously
  • Hyperscaler RE100 pressure: if/when a major tenant requires “24/7 carbon-free energy” (already building momentum), the BTM PV+BESS premium case gains commercial traction — that’s the Tier 3 unlock
  • This report: reports/aggregator_portfolio.md
  • Raw portfolio results: reports/aggregator_portfolio.json
  • Per-site BESS economics: reports/btm_economics_dc100.md, vpp_service_revenue_required.md
  • Source code: src/jb_vpp/models/aggregator.py
  • Modeled tier rates are placeholders inspired by global benchmarks (SG-DRC, UK-FFR/CM, AU-FCAS). Actual MY rates will differ — this is structural modeling, not a forecast.
  • The 10 sites are STYLISED COMPOSITES. Do not identify with specific operators.
  • Per-MW constants assume LP-optimal dispatch. Real ops (forecast error, imperfect tenant cooperation) shaves 5–10% off captured savings.
  • Linear scaling assumes all sites share the same tariff (E3) and ICPT trajectory. In reality, larger sites may negotiate custom PPAs with different rate structures.