Mazao Consulting / Energy Data Analytics
PPA Pricing Engine
Solar · Fixed-price PPA · MVP

What PPA price does this project need to hit its target return?

Solves backward from a target IRR to the required flat £/MWh PPA price, given the project's own assumptions below. Solar and a fixed-price PPA structure only, for now — historical wind/solar capture-price analysis is a separate page.

Project
Financial assumptions
Target return

All figures above are your own editable assumptions -- nothing here is hidden inside the calculation. There's no "wholesale price" field: a fixed-price PPA's revenue is generation × this flat £/MWh only, so a market-price input the model would then ignore would just be misleading (see the methodology note below for the real market comparison instead).

Required PPA Price

Required PPA price
£93.16/MWh
achieves 8.00% project IRR
Annual generation (year 1)
9,349 MWh
136,373 MWh over the full term
CAPEX
£6.50m
£80,000/yr OPEX (year 1)
Year 1 breakdown (£)
PPA revenue
£870,932
OPEX
−£80,000
EBITDA
£790,932
For context: real historical market data

Solar's own historical capture price over the last 12 months has averaged £85.82/MWh (90.6% capture rate against LCCC's IMRP baseload of £94.71/MWh). Your required PPA price of £93.16/MWh is a £7.34/MWh premium over that -- this isn't part of the calculation, just a reality check against the market.

NPV at a separate 5.0% discount rate: £1.35m (positive because 5.0% is below your 8.0% target).

Methodology & assumptions

Generation uses a flat capacity-factor model (capacity × capacity factor × 8,760 hours × availability × (1−curtailment), declining by the degradation rate each year) -- not a half-hourly shape, since a project that doesn't exist yet has no real dispatch history to model one from. Revenue is Fixed-PPA only: generation × a single flat £/MWh for the whole term, no CPI/market-linked escalation. Debt is a simple equal-installment amortizing loan on the declining balance -- a simplification versus real DSCR-sculpted project debt. The solver uses bisection (see ppa_pricing/solver.py) since IRR is strictly increasing in PPA price for a fixed structure, which guarantees a single, robust root. CPI-linked/market-linked/floor-collar PPA structures, other technologies, sensitivity analysis, tax, and saved scenarios are not yet implemented.