Pool price, spread and weather
Average pool price each year, with two shaded bands: the darker one covers the middle 80% of that period's hourly prices (10th to 90th percentile), the lighter one the full range from lowest to highest hour. Forecast years show the simulated hours. The right axis shows two daily lines: each day's coldest wind chill and hottest humidex (Calgary/Edmonton average) since 2001.
| Year | Status | Average $/MWh | Hourly P10 | Hourly median | Hourly P90 | Coldest wind chill °C | Hottest humidex | Average range across runs |
|---|
Monthly pool price history
Average pool price for every month since January 2001.
Yearly revenue
Bars show what the unit would have earned in past years from the actual hourly prices and temperatures, with the same outage and derate inputs. The band shows the simulated range for each forecast year.
| Year | Output GWh (P50) | Captured $/MWh (P50) | P10 $M | P50 $M | P90 $M | Mean $M |
|---|
Revenue distribution
How often each revenue level came up in the simulation.
How the model works
Price history. Every hourly pool price from January 2001 to today (AESO hourly data release for 2001 to July 2025, AESO Pool Price API since). Annual averages match AESO's published figures to the cent.
Base forecast. TC Energy's flat forward prices for 2027–2029 (indicative, 4 August 2026), then a straight line to your long-run price by the year you choose, escalated each year. This is the expected average price in an average weather year.
Future weather. Weather for each simulated day is drawn at random from history: any of the 25 years 2001–2025, and any day within 15 days either side of the same date, a pool of 25 × 31 = 775 real days. The drawn day's 24 hourly temperatures, wind chill, humidex and wind come along together, so each day's weather is real. Each simulated day is drawn separately, so a run does not repeat a whole past year; multi-day cold snaps are only as long as one drawn day.
Every hour is priced. For each simulated day the model picks one of the 8 real days from 2016–2025 whose weather was most like the drawn weather day: same season (within 3 weeks of the date), same weekday or weekend as the forecast date, and closest in average temperature, coldest wind chill, hottest humidex and wind at Lethbridge. That day's 24 real hourly prices, relative to their own year's average, are scaled to the forecast year's price level. The price is capped at $999.99. Weather drives price only through these real matched days; there are no weather inputs.
Market variation. Gas prices, new supply and market rules move the yearly price level. The size of that swing () and how much it carries into the next year () are measured from 2001–2025 annual prices, after removing the part that weather explains ().
Output. Full capacity except during forced outages, the planned outage, and hours above 15 °C, where output drops by the derate for each degree, using the drawn day's real hourly temperatures. Revenue is price × MWh, added up over all 8,760 hours.
Checked against history. When each year from 2016 to 2025 is rebuilt from the other years' days and its own weather, the on-peak price premium comes out close to what actually happened in every year, and the share of revenue earned in the top 10% of hours comes out close for 2018–2023. Two periods differ. In 2016–2017, an oversupplied market with very flat prices, the top 10% of hours earned about 20% of revenue against about 40% simulated. In 2024–2025 there were more $0 hours (4–8%) than the 2016–2025 days provide (about 1–2%). Weather moves the annual average price by about ±6%; market swings by about ±48%.
Not covered. The 2027 Restructured Energy Market and future changes in how often prices hit $0 are reflected only through the base price you set. Steam sales, ancillary services, hedges and behind-the-fence power are not included.