Overview
A production-cost (historical back-cast) model of the Midcontinent ISO market for the full year 2025 at 3-hourly resolution. The fleet is fixed to the historical mix of real, named generating units, and the model dispatches them economically to meet observed demand — answering "given the plants that actually existed, how would the system have been operated, and at what locational prices?"
Carved from the Eastern Interconnection by ReEDS balancing-authority zone, spanning the central US from the Upper Midwest to the Gulf.
Spatial resolution: 32 ReEDS zones. Built on the open-source PyPSA-USA toolchain.
How it's built
- Fleet — every operable generating unit from the latest EIA record (EIA-860 2024 final plus EIA-860M 2025 monthlies, so 2025 build-out is included), placed at its true coordinates with named identity, scoped to this market's balancing authority.
- Renewables — wind and solar capacity factors from ERA5 reanalysis (2025 weather), mapped to each bus.
- Demand — hourly EIA-930 / GridEmissions actuals for the market's balancing authority.
- Dispatch — an economic-dispatch LP (coal on a must-run floor; no unit commitment yet) over the full year, fixed transmission, load-shedding priced at value-of-lost-load, solved with MOSEK.
Validation
This page checks the model's output against independent observations — see the tables and charts above:
- Generation by technology — modelled vs EIA-930 / GridEmissions actuals, per fuel, with daily correlation.
- Generation mix — each technology's share of total generation, model vs observed. This is footprint-invariant, so it stays fair even where the model's carve boundary differs from the EIA-930 balancing-authority footprint.
- CO₂ emissions — annual generation CO₂ vs an EIA-930-derived estimate; a single headline trust number.
Renewable generation tracks the observed daily shape well (high day-to-day correlation for wind and solar). Wholesale-price validation against ISO day-ahead LMP is deferred to a future calibrated version — the energy-only economic dispatch clears at marginal fuel cost and structurally underprices vs day-ahead LMP (the price metrics are computed and retained in the backend). See Known limitations and the project's validation audit for the full cross-market detail.
Known limitations
This is a research-grade back-cast; treat it as indicative, not a settlement-grade reproduction.
- Fuel-cost vintage, not fleet. The generator fleet is latest-operable and already includes 2025 build-out (via EIA-860M); what is held at 2024 is unit fuel costs and heat rates (PUDL has no 2025 EIA-923 yet). Any capacity commissioned after the EIA data cutoff is not captured, so the newest late-2025 renewables can read slightly low. Refreshes when EIA-860/923 2025 final lands (~Oct 2026).
- Coal runs on a must-run floor — each coal unit carries a minimum-load constraint reflecting real baseload operation, so coal now tracks EIA-930 (interim; linearised unit commitment planned).
- Wholesale prices are not yet validated on the page. The energy-only merit-order LP clears at marginal generation cost (≈ gas cost) and omits scarcity/reserve pricing, time-varying fuel, and fine-grained congestion, so modelled prices sit well below ISO day-ahead LMP. Price validation is deferred to a future calibrated version; the metrics are computed and retained in the backend.
Data & attribution
EIA-860 / EIA-923 / EIA-930 (US Energy Information Administration, public domain), ERA5 reanalysis (Copernicus / ECMWF), renewable profiles via NREL GODEEEP, network and methodology from PyPSA-USA (MIT), solved with MOSEK.
Downloads
- Solved network (
.nc) — the full PyPSA network with dispatch and prices (free, sign-in). - Convexity database (
.db) — re-solvable model with named units pinned at their sites (licence-gated).