← All work
Energy & Economics · Interactive dashboard · Independent project

GridArb

Spark spreads for gas generation

Estimates indicative gross energy margins for gas generation across three wholesale markets.

Open the project →

Data
NYISO, ERCOT, MISO day-ahead prices; Henry Hub via FRED
Coverage
Three wholesale markets
Method
Spark spread with adjustable heat rate and gas basis
Implementation
React · Vite · CloudFront
Screenshot of GridArb
GridArb · screenshot
3
wholesale markets
5
primary data sources
0
API keys required

Question

A gas plant’s margin depends on the gap between what power sells for and what fuel costs. That spread gets quoted constantly but is awkward to look up, since every market publishes prices differently and gas trades separately. I wanted to see three markets side by side.

Function

Estimates indicative gross energy margins, or spark spreads, for gas generation in NYISO, ERCOT and MISO, using day-ahead power prices from each operator against Henry Hub gas. Heat rate and regional gas basis are adjustable inputs rather than fixed constants, so you can see how much the answer depends on the assumptions instead of reading one number as settled.

Limitation

This estimates a gross energy margin, not profitability. It measures published power and gas prices; it approximates delivered gas cost, since no free daily source publishes regional basis; and it does not account for variable O&M, start costs, emissions allowances, or capacity payments. The assumptions matter more than they look: moving NYISO basis from $0.55 to $6.00, an ordinary winter range, swings the headline spread from +$45.74 to −$8.76.