ERCOT power cost calculator
Every hour of 2025 at a Texas trading hub. Pick a site size and the price where you’d rather shut down than keep running, and see what the year would have cost.
Loading 2025 prices…
- Power cost, always on
- …
- With the shut-off
- …
- Saved
- …
- Hours off
- …
- Saved per MW
- …
- Average price paid
- …
Each column is a day and each row is an hour of the day. Point at a square, or tap it, to see that hour’s price.
Hours, ranked from most to least expensive (log scale)
How it works
For each of the 8,760 hours in 2025, the site either runs or it doesn’t. If it runs, it pays that hour’s price for every megawatt it draws:
Cost of an hour = price ($/MWh) × site size (MW) × 1 hour
If the price is above the shut-off point, the site sits out that hour and pays nothing.
Because the year’s spikes are packed into a small number of hours, a site can skip most of them while giving up very little running time. The savings per megawatt don’t depend on the size of the site, so “saved per MW” works as a rough price for being able to shut off.
What it leaves out
It counts only the price of energy. A real bill adds delivery and transmission charges, and in ERCOT a large customer’s transmission costs for the next year depend partly on its usage during the four summer peaks (4CP). Most large loads also hedge, buying some of their power ahead of time at a fixed price, so they aren’t fully exposed to the hourly market.
A real decision to shut off also weighs revenue. Grid programs pay flexible loads to stand ready, and a site that’s running is earning money. And real sites can’t switch off instantly. ERCOT settles prices every 15 minutes, so hourly averages smooth over some spikes.
Source
ERCOT, Historical RTM Load Zone and Hub Prices (NP6-785-ER), 2025 file, published January 1, 2026. Real-time settlement point prices at each hub, averaged from 15-minute intervals to hours, in Central Time. The processed data is in ercot-2025.js if you want to check my math.
Questions or a use for this? Email me at jlraney99@gmail.com.