| Vose Software

Industry: Energy
Product: ModelRisk
Application: Fundamental Price-Formation Analysis


Where Power Prices Come From: A Fundamental Forecast With Stochastic Fuel and Demand

The PJM RTO settled day-ahead at an average $43/MWh in 2023 and at an average $62/MWh in 2022 — a 44% inter-annual swing driven primarily by gas. Forward-curve forecasts that take a single $4.00/MMBtu gas view and feed it through a deterministic dispatch produce a single $48/MWh power forecast. The fundamental Monte Carlo model on the same dispatch stack produces a mean forecast of $52/MWh with a P10 of $43 and a P90 of $63 — and tells the trader, the developer, and the policy analyst something the deterministic forecast cannot: which input is driving which percentile.

A commodity-trading and asset-development group used ModelRisk to rebuild its fundamental price-formation model for a US power market, replacing single-input scenario runs with a full probabilistic dispatch that prices each hour against the stochastic distribution of fuel, load, and renewable output. The annual-average price the desk publishes is the projection of that whole distribution onto one number — and the distribution sits visibly to the right of the deterministic $48 view:

2026 annual average power price — fundamental Monte Carlo

The annual average power price for 2026 comes out at mean $51.9/MWh, P10 = $43.0, P50 = $50.4, P90 = $62.7, P99 = $81 — right-skewed by the gas stress regime in a way a single $4.00/MMBtu gas view cannot reproduce.

A dispatch stack with stochastic inputs

The fundamental model orders generators by marginal cost, intersects the supply curve with hourly demand, and reports the marginal unit's variable cost as the locational price. The deterministic version uses point inputs; the probabilistic version uses distributions for each:

  • Natural-gas price: monthly LogNormal around a forward curve at Henry Hub, with mean $3.60/MMBtu and σ_log = 0.40 — calibrated to NYMEX implied vols. Includes a regime-switching winter-stress component: 1-in-7 winter months realise a price draw from a heavy-tailed distribution centred at $11/MMBtu (calibrated to Feb 2021 Uri and Dec 2022 Elliott events).
  • Coal price: monthly Normal around $2.80/MMBtu CAPP-equivalent, σ = $0.40.
  • Load: hourly load is decomposed into temperature-driven base plus a stochastic residual. The model uses the TMY (typical meteorological year) shape as the median, with weather-shock multipliers Beta(2, 8) scaled to [-12%, +18%] of base for the 5% of hottest summer days.
  • Wind output: hourly capacity factor drawn from a calibrated Weibull distribution with shape 1.8 and scale 0.32, with negative correlation to peak-load hours (rank correlation -0.32) — wind blows least when it is hot.
  • Solar output: deterministic by hour-of-day with stochastic cloud-cover multiplier Beta(8, 2) — most days are sunny in the relevant region, but the left tail matters for the 1-in-20 overcast week.
  • Outage events: each thermal unit has a Bernoulli daily forced-outage probability matched to its EFOR, with cascading outage probability (one trip raises others by 1.4×) modelled by a copula on unit-specific shock terms.

For an annual simulation the model evaluates 8,760 hours × 50,000 paths, then aggregates to monthly and annual price distributions — the distribution shown above.

What the forward curve gets wrong, and where

Comparing the fundamental Monte Carlo's monthly price percentiles to the traded forward curve is what makes the model commercially valuable:

Monthly power price — forward curve vs probabilistic fundamentals

The forward sits at roughly the mean in shoulder months but trades below the model's mean in winter (a winter risk-premium that the dispatch model says is rational) and above the model's mean in mid-summer. The trading desk took two positions on this read: long power calls in January and short power in late August. The simulation supplied the strike, the size, and the confidence interval on the expected P&L.

What drives the annual price

Tornado: drivers of 2026 annual average power price

Gas price dominates — a $3.0 to $4.5/MMBtu mean swing moves expected annual price by $14/MWh. The winter-stress probability is third, and load growth fourth. The model's coal price hardly matters at the annual level because coal is largely off the margin in this RTO; that finding alone retired three deterministic coal-scenario runs the team had been performing weekly.

The capacity decision

A 280 MW peaker proposal was evaluated against the simulated 2026 hourly price distribution. The deterministic NPV said the peaker clears $19M at an 8% discount rate; the Monte Carlo said the NPV distribution has a mean of $24M but a P10 of −$22M, with the P10 driven by the cluster of low-summer-volatility paths. The decision was a go on the peaker — but with a 15% sized gas hedge layered alongside, because the simulation showed that the project's NPV was most sensitive to the gas price percentile in which 2026 lands, not to its annual average.

What changed

  • Annual price view changed from "$48/MWh" to "$52/MWh ± P10/P90 = $36/$74" in the team's published forecast, with the explicit driver decomposition by month.
  • Winter call options bought at $90/MWh strike sized on the P95 winter-stress probability rather than on the expected winter price.
  • Peaker investment proceeded with a 15% gas hedge layered alongside, sized to the conditional gas-price sensitivity of the project's lower tail.
  • Stopped running weekly coal-price scenarios, freed two analyst-days/week, redirected effort to weather-pattern indices that move the load distribution's tail (which the tornado said was a top-five driver).

ModelRisk Functionality Used

  • Regime-switching gas-price model with a stress regime (1-in-7 winter months) calibrated to the 2021 and 2022 cold-snap events — not a single mean-reverting process that misses both episodes.
  • Rank correlation between wind output and peak-load hours at ρ = -0.32, which a univariate Weibull wind model would leave at zero and would systematically over-estimate wind's peak-hour contribution.
  • Beta-distributed weather-shock multipliers with a heavy upper tail for hot-summer days, replacing the deterministic "TMY shape × growth" load assumption.
  • Outage copula that produces cascading thermal-outage events, instead of the independent Bernoulli model that catastrophically under-prices reliability in tight reserve months.
  • Custom Excel dispatch logic that orders the unit list by marginal cost each hour and reports the marginal unit's cost — the same calculation an ISO does, with stochastic inputs instead of point estimates.

A power-price forecast is the projection of a distribution onto a single number. Monte Carlo gives you the distribution back — and once you have the distribution, the trades and the investments that pay off in the tails become priceable.