Power plants & electricity
US power plants in Python from EIA-860 and EIA-923: where plants are, what they generate, capacity factors, retirements, new solar and batteries, and the data traps.
Every US power plant of 1 MW or more reports to the Energy Information Administration: its generators, their technology, fuel and capacity on form EIA-860, and what they generate and burn, month by month, on EIA-923. Together they describe a fleet of 14,327 plants and 1,376.7 GW that generated 4,425.0 TWh in 2025, and they are the source behind nearly every map, chart and statistic of the American grid. They arrive as Excel workbooks with title rows, footnotes, blank strings and placeholder codes, which is where most analyses go wrong.
The guides here map the plants, explain how the two surveys fit together, compute each state's generation mix and real capacity factors, follow retirements and the pipeline of planned solar, batteries and gas, and reshape the monthly data by fuel. Three pages deal with the traps: monthly values written as dots, generation that belongs to no plant, and capacity totals that disagree depending on which column was summed.
🧭 Start with the concepts
The ideas the how-to guides below assume you already have.
⚙️ Then do the task
Step-by-step walkthroughs with code you can copy and adapt.
- How to Map US Power Plants from EIA-860 Data in Python
- How to Calculate Each State's Electricity Generation Mix in Python
- How to Calculate Capacity Factors of Real Power Plants from EIA Data
- How to Analyse Power Plant Retirements and Planned Closures
- How to Track New Generating Capacity: Planned Solar, Batteries and Gas
- How to Analyse Monthly Electricity Generation by Fuel in Python
🔧 When it breaks
The errors this topic produces, with the cause explained rather than just the command.
Related topics
Subjects that keep coming up alongside this one, most overlap first.