jacobazu.github.ioCode Methods (PDF)

What is a fair price for a 10-year solar or wind PPA?

DK1, SE3, Finland and Germany. Jacob Qazizada, October 2026. Prices and production up to 2026-10-18, forward prices from 2026-10-16.

Most new wind and solar in the Nordics is built on a power purchase agreement, a PPA. The park sells its power to a buyer at a fixed price for ten years or more, so it has a known income to borrow against. The buyer, often a large company or a utility, gets power at a known price.

I wanted to know what a fair fixed price is, and what each side is really taking on. The setup:

The answer

Price levelBaseloadSolarOnshore wind
DK186.388.667.3 (76%)73.5 (83%)
SE353.853.937.1 (69%)45.9 (85%)
Finland56.856.950.1 (88%)38.1 (67%)
Germany88.490.969.0 (76%)83.1 (91%)
DK1, Energistyrelsen's outlook76.276.458.1 (76%)63.4 (83%)

€/MWh, nominal, averaged over 2027-2036. In brackets: the share of the baseload price. Price level: the forward price for each year, averaged.

In DK1 a fair pay-as-produced price is 73 €/MWh for wind and 67 €/MWh for solar. A baseload contract would be 89. The gap is what the park's timing costs: it produces when everyone like it produces, and those hours are cheap. Solar loses more than wind everywhere except Finland, where years of fast wind building have made wind the cheap kind of power.

The level depends heavily on which price path you believe. With Energistyrelsen's official outlook instead of the forward prices, the DK1 prices drop to 63 for wind and 58 for solar.

The price level: forward prices

Settlement prices of baseload year futures on 2026-10-16. DK1, SE3 and Finland: Euronext's Nordic system price plus the area's EPAD (the price difference to the system price). Germany: EEX.

A PPA should be priced off what the market will pay for power in those years today, not off last year's prices. Forward prices are the closest thing to that. DK1 trades at 141 €/MWh for 2027 and falls to 74 by 2036. Germany follows almost the same path. SE3 and Finland sit around 50-65 €/MWh, held down by hydro and nuclear.

Two practical problems. The futures beyond about 2030 hardly trade, so those prices are thin. And the EPADs, which turn the Nordic system price into an area price, only go to 2029 for DK1 and 2030 for SE3 and Finland. After that I keep the last EPAD for SE3 and Finland. For DK1 I follow the German curve instead, with the 2029 gap between the two, because DK1 and German prices moved with a correlation of 0.93-0.96 in 2024-2026. Keeping DK1's last EPAD would have put DK1 above Germany for the whole 2030s, which I don't believe.

Energistyrelsen's own outlook for DK1 (SØB25) averages 76 €/MWh in nominal terms, well below the forwards, so I run DK1 with both.

Why a park gets less than the average price

Solar
Onshore wind

The capture rate is the price a park actually got, weighted by when it produced, as a share of the average price. It falls as more of the same technology is built, because all of it produces in the same hours. DK1 solar went from 96% in 2019 to 64% in 2025, and German solar to 52%. Finnish wind fell to 55% as Finland's wind fleet grew several times over. 2022 stands out for solar: gas set the price most of the time, so sunny hours were not much cheaper than the rest.

Share of hours with negative prices

Negative prices are part of the same story. In the last 12 months prices were below zero in 5.5% of hours in Germany and 2.3% in DK1. A park without subsidies loses money producing then, so in the model it stops, and the buyer doesn't pay for those hours.

Negative hoursSolarOnshore windSolar output at negative pricesWind output at negative prices
DK12.3%76%88%5%3%
SE31.3%73%82%4%2%
Finland1.0%80%63%1%1%
Germany5.5%77%92%21%6%

The last 12 months, 2025-10-18 to 2026-10-18. Capture rates when the park stops at negative prices.

The model draws each year's hourly pattern from one of the last three 12-month periods. That keeps the real link between when a park produces and what power is worth in those hours, including the bad hours.

From forward price to fair price

TechnologyForwardProfileCovarianceFair price
DK1Solar89.0-21.3-0.367.3
DK1Onshore wind89.0-15.2-0.373.5
SE3Solar54.1-16.9-0.237.1
SE3Onshore wind54.1-8.0-0.245.9
FinlandSolar57.1-6.8-0.250.1
FinlandOnshore wind57.1-18.8-0.238.1
GermanySolar91.2-21.9-0.369.0
GermanyOnshore wind91.2-7.8-0.483.1

€/MWh. Split as in Chatziandreou and Karbach (2026): the forward price, then what the production profile costs, then the covariance of price and volume across years.

The profile is the whole story here. The covariance part is close to zero because I draw the yearly price level and the weather separately, so a windy year doesn't come with lower prices in the model. Inside each year that link is there, through the hourly patterns. Across years it isn't, and that is one of the weaker points of the model.

What moves the price

TechnologyMain caseLast 12 months onlyNo stop at negative prices1 point lower a year
DK1Solar67.367.160.263.4
DK1Onshore wind73.577.769.869.5
SE3Solar37.139.132.934.4
SE3Onshore wind45.944.042.743.2
FinlandSolar50.145.646.547.3
FinlandOnshore wind38.136.135.035.3
GermanySolar69.069.850.965.0
GermanyOnshore wind83.183.276.779.1
DK1, Energistyrelsen's outlookSolar58.157.951.954.3
DK1, Energistyrelsen's outlookOnshore wind63.467.060.259.6

Fair pay-as-produced price, €/MWh, when one thing is changed.

Who carries the risk

DK1 wind farm, 20,000 simulated 10-year paths.

Without a PPA the park's income spreads widely. Prices can stay high or low for years: the yearly DK1 price moves by about 41% a year and a high or low year tends to be followed by another (AR(1) on 26 years of prices, phi 0.62). A pay-as-produced PPA moves almost all of that to the buyer. The park is left with the weather. A baseload PPA sits in between: the park has promised a fixed amount every hour, so when it produces less it has to buy the rest, and that tends to happen when prices are high.

TechnologyPark, no PPAPark, pay-as-producedPark, baseloadBuyer, pay-as-producedBuyer, baseload
DK1Solar18.41.28.218.424.1
DK1Onshore wind21.31.96.821.125.5
SE3Solar10.20.86.510.214.8
SE3Onshore wind13.11.73.913.115.3
FinlandSolar14.41.03.214.316.2
FinlandOnshore wind11.01.47.710.916.2
GermanySolar16.51.27.616.421.6
GermanyOnshore wind23.52.24.223.325.5

How far the 1 in 20 worst outcome over the 10 years is below the average, million €, present value at 5.6%.

For DK1 wind the 1 in 20 bad case is 21 million € below average without a PPA and 2 million € with one. The buyer of the pay-as-produced PPA takes on 21 million €. The buyer of a baseload PPA takes on even more, because it gets power at a fixed price in every hour, including the cheap ones.

Hedging a park without a PPA

TechnologyAverage outputSell forwardSpread of income cut by
DK1Solar10.3 MW7.8 MW91%
DK1Onshore wind10.9 MW9.0 MW88%
SE3Solar10.3 MW7.1 MW87%
SE3Onshore wind10.7 MW9.1 MW87%
FinlandSolar10.6 MW9.4 MW90%
FinlandOnshore wind10.6 MW7.1 MW83%
GermanySolar9.0 MW6.8 MW88%
GermanyOnshore wind10.6 MW9.7 MW91%

Baseload sold forward at today's forward prices: the amount that makes the 10-year income steadiest.

A park that stays merchant can still sell part of its output forward as baseload. Selling a bit less than the average output, for DK1 wind 9.0 MW of 10.9 MW, cuts the spread of its 10-year income by 88%. What's left is weather and timing, which a baseload hedge can't touch. In practice the forwards beyond a few years are thin, so this is easier on paper.

How much the weather matters

TechnologyYear-to-year spreadP90 yearWorst of 35
DK1Onshore wind6.6%91%85%
SE3Onshore wind9.5%88%80%
FinlandOnshore wind9.6%89%85%
GermanyOnshore wind7.1%90%86%
DK1Solar3.6%96%91%
SE3Solar3.7%96%88%
FinlandSolar4.0%95%91%
GermanySolar4.5%94%93%

Production in each of 35 weather years, 1991-2025, as a share of an average year. P90: a year so poor that 9 in 10 years are better.

Wind output moves by 7-10% from one year to the next, solar by about 4%. Wind is computed from hourly ERA5 wind at 100 m through a Vestas V126 power curve at a few sites per area, solar from yearly radiation. The last years have been sunnier than the 35-year average, so part of the solar spread is a trend rather than chance.

Compared with the market

Pexapark reported 10-year pay-as-produced prices in DK1 of 31-55 €/MWh for solar and 33-65 €/MWh for wind in April 2025. My prices are higher, for three reasons. Forward prices have gone up a lot since then. Real buyers take a risk premium and charge for balancing, which I don't. And my profiles are for the whole fleet; a new park with bigger turbines produces more evenly and would do a little better. With Energistyrelsen's outlook, which is closer to the price level of early 2025, DK1 wind lands at 63, near the top of its range, and solar at 58, just above it.

What I would add

Method and sources

20,000 simulated 10-year paths with the same random draws in every area. Each year draws an hourly pattern, a weather year and a price level around the forward curve. Fair prices are present values at 5.6% nominal (Finansministeriet's 3.5% real plus 2% inflation). The full list of assumptions and their sources is in the README, the method on one page.

Data: ENTSO-E (prices and production), Energi Data Service (DK1 prices 2000-2018), Open-Meteo / ERA5 (weather, CC BY 4.0), Euronext and EEX (forward prices), Energistyrelsen (SØB25, KF25), Finansministeriet (discount rate). Not trading advice.