out_eia__yearly_generators_by_ownership

package: pudl

Annual time series of all EIA generators with ownership integrated.

Most-recent data:

2026

Processing:

Data has been expanded into a wide/denormalized format, with IDs and codes accompanied by human-readable names and descriptions.

Source:

EIA -- Mix of multiple EIA Forms

Primary key:

This table has no primary key. This table would have a primary key of the following columns, except there are ~200 records without utility IDs: ['plant_id_eia', 'generator_id', 'report_date', 'utility_id_eia', 'ownership_record_type'].

Usage Warnings

  • Some columns contain subtotals; use caution when choosing columns to aggregate.

  • Data has been drawn from several EIA sources which are not always consistent with each other, and PUDL chooses the most consistent or relevant value to facilitate cross-referencing even if that means some values will differ from the raw sources. See Harvesting for details, and see Entity Resolution Methodology for a fuller conceptual overview.

  • Contains information from multiple raw inputs.

Additional Details

Generators that report to EIA can have multiple utility owners. EIA reports the ownership fraction for each of the owners of generators (see core_eia860__scd_ownership). This table includes two records for each generator's owner: one record represents a total ownership stake and the other record represents a proportional ownership stake (the ownership_record_type column labeled as "total" and "owned" respectively). All of the values reported for these generator-owner records are scaled to the ownership stake (represented by fraction_owned).

This table was created to represent every possible version of ownership slices of the EIA generators. It is primarily used as an input to out_eia__yearly_plant_parts.

This table inherits canonicalized values for generators, plants, and utilities. EIA reports many attributes in many different tables across EIA-860 and EIA-923. In order to compile tidy, well-normalized database tables, PUDL collects all instances of these values and and chooses a canonical value. By default, PUDL chooses the most consistently reported value of a given attribute as long as it is at least 70% of the given instances reported. If an attribute was reported inconsistently across the original EIA tables, then it will show up as a null value. See /methodology/entity_resolution for a conceptual overview of this process.

Columns
plant_id_eia

The unique six-digit facility identification number, also called an ORISPL, assigned by the Energy Information Administration.

generator_id

Generator ID is usually numeric, but sometimes includes letters. Make sure you treat it as a string!

report_date

Date reported.

unit_id_pudl

Dynamically assigned PUDL unit id. WARNING: This ID is not guaranteed to be static long term as the input data and algorithm may evolve over time.

plant_id_pudl

A manually assigned PUDL plant ID. May not be constant over time.

plant_name_eia

Plant name.

utility_id_eia

The EIA Utility Identification number.

utility_id_pudl

A manually assigned PUDL utility ID. May not be stable over time.

utility_name_eia

The name of the utility.

technology_description

High level description of the technology used by the generator to produce electricity.

energy_source_code_1

The code representing the most predominant type of energy that fuels the generator.

prime_mover_code

Code for the type of prime mover (e.g. CT, CG)

generator_operating_date

Date the generator began commercial operation. If harvested values are inconsistent, we default to using the most recently reported date.

generator_retirement_date

Date of the scheduled or effected retirement of the generator.

operational_status

The operating status of the asset. For generators this is based on which tab the generator was listed in in EIA 860.

capacity_mw

Total installed (nameplate) capacity, in megawatts.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

planned_generator_retirement_date

Planned effective date of the scheduled retirement of the generator.

capacity_factor

Fraction of potential generation that was actually reported for a plant part. Energy generated over time period / nameplate capacity * time period (hours/years/etc.).

fuel_cost_per_mmbtu_source

Indicates the source of the values in the fuel_cost_per_mmbtu column. The fuel cost either comes directly from the EIA forms (original), was filled in from the EIA's API using state-level averages (eiaapi), was filled in using a rolling average (rolling_avg) or When the records get aggregated together and contain multiple sources (mixed).

fuel_cost_per_mmbtu

Average fuel cost per MMBTU of heat content in nominal USD.

fuel_cost_per_mwh

Derived from MCOE, a unit level value. Average fuel cost per MWh of heat content in nominal USD.

unit_heat_rate_mmbtu_per_mwh

Fuel content per unit of electricity generated. Coming from MCOE calculation.

net_generation_mwh

Net electricity generation for the specified period in megawatt-hours (MWh).

total_fuel_cost

Total annual reported fuel costs for the plant part. Includes costs from all fuels.

total_mmbtu

Total annual heat content of fuel consumed by a plant part record in the plant parts list.

ferc_acct_name

Name of FERC account, derived from technology description and prime mover code.

generator_operating_year

Year a generator went into service.

operational_status_pudl

The operating status of the asset using PUDL categories.

capacity_eoy_mw

Total end of year installed (nameplate) capacity for a plant part, in megawatts.

fraction_owned

Proportion of generator ownership attributable to this utility.

ownership_record_type

Whether each generator record is for one owner or represents a total of all ownerships.