Skip to content

PPA pricing — developer floor and tenant ceiling

Reference scenario: 60 MW BTM PV @ a 100 MW JB data center anchor, ICPT 16 sen/kWh. Generated by: jb-vpp model ppa-pricing — see reports/ppa_pricing.json for the JSON dump. Inputs auto-derived from reports/btm_economics_dc100.json (LP w/ cooling-CDH, 5y full-year mean).

TariffRM/MWhNotes
Developer floor (kWh-only)299Third-party developer’s NPV=0 PPA price (8% target IRR, 20 y horizon, 3.5 M RM/MW capex).
Tenant avoided cost (ceiling, kWh-only)406LP-derived from full-year savings ÷ delivered MWh — includes energy + ICPT + MD reduction value attributed per delivered MWh.
Bargaining surplus+107 (26.4% of ceiling)The room available between developer floor and tenant ceiling on a kWh-only contract.
Bundled ceiling (kWh + hyperscaler internal carbon @ USD 100/tCO2)696Tenant value if they price renewable attribute at internal RM 460/tCO2 (carbon attr ~290 RM/MWh delivered).
Effective developer floor net of carbon attribute revenue (USD 100/tCO2)9If developer monetises carbon attribute at the hyperscaler’s internal price, kWh tariff can drop to ~RM 9/MWh and developer still hits 8% IRR.

Headline: the kWh-only PPA has a healthy 107 RM/MWh (~26%) bargaining range, materially wider than a vanilla PV PPA in markets without ICPT pass-through. With carbon-attribute monetisation at hyperscaler internal pricing, the surplus widens to ~390 RM/MWh — the deal economics are dominated by carbon attribute pricing, not kWh price.

Note on the 406 ceiling: prior versions of this report cited 338 RM/MWh. That number divided 5-year-incl-partial-year LP savings by 5-year-full-year delivered MWh — the denominators didn’t match. Auto-deriving with consistent denominators (full-year savings ÷ full-year delivered) gives 406 RM/MWh, which is the correct kWh-equivalent tenant avoided cost (energy + ICPT + MD reduction).

ParamValueSource
PV capacity60 MWLP base scenario
Annual delivered MWh78,6175-year full-year LP mean (2020–2024 NASA POWER)
Tenant avoided cost406 RM/MWhLP full-year savings 31.91 M RM ÷ 78,617 MWh
PV CapEx3.5 M RM/MWEPC quote band midpoint
PV OpEx35 k RM/MW/yr1% of capex
Discount rate / target IRR8.0%Project finance benchmark
Horizon20 yModule warranty
Grid intensity631 gCO2/kWhEmber monthly 2024 mean

PV-size sensitivity (auto-derived from BTM scenarios)

Section titled “PV-size sensitivity (auto-derived from BTM scenarios)”
PV (MW)Delivered MWh/yrTenant avoided cost (RM/MWh)Developer floor (RM/MWh)Bargaining surplus% of ceiling
3039,309415.9298.8+117.128.2%
6078,617405.9298.8+107.126.4%
90117,926402.5298.8+103.725.8%

Per-MW developer floor is constant (capex + opex linear in MW; delivered MWh linear in MW). Tenant ceiling drifts down ~4% as PV scales 30→90 MW because MD reduction per MWh diminishes once peak shaving saturates the tenant’s MD bill. All sizes have ≥25% bargaining surplus — the deal is robust to the chosen PV sizing within this range.

Each delivered MWh of BTM PV displaces 0.631 tCO2 (Ember-measured 2024 grid intensity). The carbon attribute value depends on how the buyer prices it:

BenchmarkCarbon price (RM/tCO2)Carbon value (RM/MWh)Effective developer floorBundled ceiling
BCX voluntary REC3522277428
Singapore carbon tax 20248554245460
SG carbon tax 2030 path230145154551
Hyperscaler internal (USD 100/tCO2)4602909696
EU CBAM proxy4602909696

The “effective floor” is the kWh-only PPA price the developer needs after booking carbon-attribute revenue. The “bundled ceiling” is what a hyperscaler valuing carbon at the internal price would willingly pay for the entire bundle (kWh + attribute).

  1. Vanilla BTM PPA (no carbon). Developer charges 299–406 RM/MWh; 350 RM/MWh mid-spread leaves both sides with ~50 RM/MWh of margin. Robust but only modestly attractive.
  2. Bundled PPA, hyperscaler counterparty (kWh + attribute). Target tariff 450–550 RM/MWh: developer captures 150–250 RM/MWh margin over vanilla floor; tenant captures 150–250 RM/MWh below the 696 internal-pricing ceiling. Recommended structure when the anchor is a Microsoft/Google-class buyer.
  3. Split structure: kWh PPA + separate carbon-attribute sale. Developer charges 350 RM/MWh on kWh and sells RECs/24-7 CFE attributes separately (BCX, voluntary market, anchor’s internal pool). Useful when the tenant cannot internalise carbon at hyperscaler-internal pricing.
  • Ceiling of 406 RM/MWh assumes single-tenant 100% offtake with PV ≤ load (no curtailment); partial offtake or curtailment risk shifts the floor up.
  • 8% IRR is a project-finance benchmark; equity-heavy structures need 10–12% target IRR (floor → ~330 RM/MWh) which compresses the kWh-only bargaining surplus from 107 → 75 RM/MWh.
  • Hyperscaler internal carbon pricing is internal accounting, not market-clearing. It enables the bundled ceiling above, but the developer should NOT bake it into a contract clause — instead, structure as a fixed bundled tariff with carbon attributes transferred at signing.
  • All numbers are pre-tax. MIDA Investment Tax Allowance / Pioneer Status (if granted) lowers the effective floor by 5–8%.
  • Developer-side risk premia (offtaker credit, regulatory, technology) not modelled — for unrated counterparties add 100–200 bps to the discount rate, raising the floor 15–30 RM/MWh.
  • Tenant ceiling of 406 RM/MWh assumes ICPT remains at 16 sen. If ICPT is removed (subsidy reform, see sensitivity_tornado.md lever #2), tenant ceiling drops to ~245 RM/MWh, eliminating the kWh-only bargaining surplus entirely (245 < 299 floor). This is why the carbon-stacked PPA is robust where the kWh-only PPA is not.
  • Avoided-cost basis and 5-year LP details: btm_economics_dc100.md
  • Carbon attribute pricing benchmarks: carbon_re100_analysis.md
  • ICPT subsidy reform sensitivity: sensitivity_tornado.md
  • Risk-adjusted view (incl. ICPT removal scenario): risk_adjusted_npv.md