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).
| Tariff | RM/MWh | Notes |
|---|---|---|
| Developer floor (kWh-only) | 299 | Third-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) | 406 | LP-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) | 696 | Tenant 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) | 9 | If 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).
Inputs
Section titled “Inputs”| Param | Value | Source |
|---|---|---|
| PV capacity | 60 MW | LP base scenario |
| Annual delivered MWh | 78,617 | 5-year full-year LP mean (2020–2024 NASA POWER) |
| Tenant avoided cost | 406 RM/MWh | LP full-year savings 31.91 M RM ÷ 78,617 MWh |
| PV CapEx | 3.5 M RM/MW | EPC quote band midpoint |
| PV OpEx | 35 k RM/MW/yr | 1% of capex |
| Discount rate / target IRR | 8.0% | Project finance benchmark |
| Horizon | 20 y | Module warranty |
| Grid intensity | 631 gCO2/kWh | Ember 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/yr | Tenant avoided cost (RM/MWh) | Developer floor (RM/MWh) | Bargaining surplus | % of ceiling |
|---|---|---|---|---|---|
| 30 | 39,309 | 415.9 | 298.8 | +117.1 | 28.2% |
| 60 | 78,617 | 405.9 | 298.8 | +107.1 | 26.4% |
| 90 | 117,926 | 402.5 | 298.8 | +103.7 | 25.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.
Carbon-stacked bundled PPA
Section titled “Carbon-stacked bundled PPA”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:
| Benchmark | Carbon price (RM/tCO2) | Carbon value (RM/MWh) | Effective developer floor | Bundled ceiling |
|---|---|---|---|---|
| BCX voluntary REC | 35 | 22 | 277 | 428 |
| Singapore carbon tax 2024 | 85 | 54 | 245 | 460 |
| SG carbon tax 2030 path | 230 | 145 | 154 | 551 |
| Hyperscaler internal (USD 100/tCO2) | 460 | 290 | 9 | 696 |
| EU CBAM proxy | 460 | 290 | 9 | 696 |
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).
Three commercial structures
Section titled “Three commercial structures”- 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.
- 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.
- 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.
Caveats
Section titled “Caveats”- 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.mdlever #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.
Cross-references
Section titled “Cross-references”- 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