out_eia923__generation

package: pudl

Monthly time series of net electricity generated by power plant generators.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, generator_id, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Not all IDs are present.

  • Table has known low coverage - either geographic or temporal or otherwise.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

This is the most granular information we have about how much electricity individual generators are producing, but only about half of all the generation reported in the core_eia923__monthly_generation_fuel appears in this table due to the different reporting requirements imposed on different types and sizes of generators.

Whenever possible, we use this generator-level net generation to estimate the heat rates of generation units and the marginal cost of electricity on a per-generator basis, but those calculations depend on plant-level fuel costs and sometimes uncertain or incomplete boiler-generator associations.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

generator_id

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

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.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__boiler_fuel

package: pudl

Monthly time series of boiler fuel consumption and emissions.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, boiler_id, energy_source_code, prime_mover_code, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

Reports the quantity of each type of fuel consumed by each boiler on a monthly basis, as well as the sulfur and ash content of those fuels. Fuel quantity is reported in standard EIA fuel units (tons, barrels, Mcf). Heat content per unit of fuel is also reported, making this table useful for calculating the thermal efficiency (heat rate) of various generation units.

This table provides better coverage of the entire fleet of generators than the core_eia923__monthly_generation_fuel table, but the fuel consumption reported here is not directly associated with a generator. This complicates the heat rate calculation, since the associations between individual boilers and generators are incomplete and can be complex.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

boiler_id

Alphanumeric boiler ID.

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.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

prime_mover_code

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

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__monthly_generation

package: pudl

Monthly time series of net electricity generated by power plant generators.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, generator_id, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Not all IDs are present.

  • Table has known low coverage - either geographic or temporal or otherwise.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

This is the most granular information we have about how much electricity individual generators are producing, but only about half of all the generation reported in the core_eia923__monthly_generation_fuel appears in this table due to the different reporting requirements imposed on different types and sizes of generators.

Whenever possible, we use this generator-level net generation to estimate the heat rates of generation units and the marginal cost of electricity on a per-generator basis, but those calculations depend on plant-level fuel costs and sometimes uncertain or incomplete boiler-generator associations.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

generator_id

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

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.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__yearly_generation

package: pudl

Annual time series of net electricity generated by power plant generators.

Most-recent data:

2024

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, generator_id, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Not all IDs are present.

  • Table has known low coverage - either geographic or temporal or otherwise.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

This is the most granular information we have about how much electricity individual generators are producing, but only about half of all the generation reported in the core_eia923__monthly_generation_fuel appears in this table due to the different reporting requirements imposed on different types and sizes of generators.

Whenever possible, we use this generator-level net generation to estimate the heat rates of generation units and the marginal cost of electricity on a per-generator basis, but those calculations depend on plant-level fuel costs and sometimes uncertain or incomplete boiler-generator associations.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

generator_id

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

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.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__fuel_receipts_costs

package: pudl

Individual fuel deliveries to power plants, organized by fuel type and supplier.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 2 - Part A)

Primary key:

This table has no primary key. Each record describes an individual fuel delivery. There can be multiple deliveries of the same type of fuel from the same supplier to the same plant in a single month, so the table has no natural primary key.

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Some values have been redacted.

  • Time of fuel deliveries is not necessarily connected with time of fuel consumption.

  • 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 estimated values.

Additional Details

There can be a significant delay between the receipt of fuel and its consumption, so using this table to infer monthly attributes associated with power generation may not be entirely accurate. However, this is the most granular data we have describing fuel costs, and we use it in calculating the marginal cost of electricity for individual generation units.

Under some circumstances utilities are allowed to treat the price of fuel as proprietary business data, meaning it is redacted from the publicly available spreadsheets. It's still reported to EIA and influences the aggregated (state, region, annual, etc.) fuel prices they publish. From 2009-2021 about 1/3 of all prices are redacted. The missing data is not randomly distributed. Deregulated markets dominated by merchant generators (independent power producers) redact much more data, and natural gas is by far the most likely fuel to have its price redacted. This means, for instance, that the entire Northeastern US reports essentially no fine-grained data about its natural gas prices.

Additional data which we haven't yet integrated is available in a similar format from 2002-2008 via the EIA-423, and going back as far as 1972 from the FERC-423.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

state

Two letter US state abbreviation.

contract_type_code

Purchase type under which receipts occurred in the reporting month. C: Contract, NC: New Contract, S: Spot Purchase, T: Tolling Agreement.

contract_expiration_date

Date contract expires.Format: MMYY.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_group_code

Fuel groups used in the Electric Power Monthly

supplier_name

Company that sold the fuel to the plant or, in the case of Natural Gas, pipeline owner.

fuel_received_units

Quantity of fuel received in tons, barrel, or Mcf.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_cost_per_mmbtu

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

bulk_agg_fuel_cost_per_mmbtu

Fuel cost per MMBTU reported in the EIA bulk electricity data. This is an aggregate average fuel price for a whole state, region, month, sector, etc. Used to fill in missing fuel prices.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

total_fuel_cost

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

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).

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

mercury_content_ppm

Mercury content in parts per million (ppm) to the nearest 0.001 ppm.

primary_transportation_mode_code

Transportation mode for the longest distance transported.

secondary_transportation_mode_code

Transportation mode for the second longest distance transported.

natural_gas_transport_code

Contract type for natural gas transportation service.

natural_gas_delivery_contract_type_code

Contract type for natural gas delivery service:

moisture_content_pct

For coal only: the moisture content of the fuel in terms of moisture percentage by weight. Reported to the nearest 0.01 percent.

chlorine_content_ppm

For coal only: the chlorine content in parts per million (ppm) to the nearest 0.001 ppm. If lab tests of the coal do not include the chlorine content, this field contains the amount specified in the contract with the supplier.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

mine_id_msha

MSHA issued mine identifier.

mine_name

Coal mine name.

mine_state

State where the coal mine is located. Two letter abbreviation.

coalmine_county_id_fips

County ID from the Federal Information Processing Standard Publication 6-4. This is the county where the coal mine is located.

mine_type_code

Type of coal mine.

out_eia923__generation_fuel_combined

package: pudl

Monthly time series of generation and fuel consumption of all generation units.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, report_date, prime_mover_code, energy_source_code

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

Denormalized, combined data from the core_eia923__monthly_generation_fuel and core_eia923__monthly_generation_fuel_nuclear with nuclear generation aggregated from the nuclear generation unit level up to the plant prime mover level, so as to be compatible with fossil fuel generation data.

This data can't be easily linked to individual boilers, generators, and generation units, but it is provides the most complete coverage of fuel consumption and electricity generation for the entire generation fleet. We use the primary fuels and prime movers reported for each generator along with their capacities to attribute fuel consumption and generation when it isn't directly reported in the core_eia923__monthly_generation and core_eia923__monthly_boiler_fuel tables in order to calculate capacity factors, heat rates, and the marginal cost of electricity.

The table makes a distinction between all fuel consumed and fuel consumed for electricity generation because some units are also combined heat and power (CHP) units, and also provide high temperature process heat at the expense of net electricity generation.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_type_code_agg

A partial aggregation of the reported fuel type codes into larger categories used by EIA in, for example, the Annual Energy Review (AER) or Monthly Energy Review (MER). Two or three letter alphanumeric.

prime_mover_code

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

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_units

Consumption for electric generation of the fuel type in physical unit.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__monthly_boiler_fuel

package: pudl

Monthly time series of boiler fuel consumption and emissions.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, boiler_id, energy_source_code, prime_mover_code, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

Reports the quantity of each type of fuel consumed by each boiler on a monthly basis, as well as the sulfur and ash content of those fuels. Fuel quantity is reported in standard EIA fuel units (tons, barrels, Mcf). Heat content per unit of fuel is also reported, making this table useful for calculating the thermal efficiency (heat rate) of various generation units.

This table provides better coverage of the entire fleet of generators than the core_eia923__monthly_generation_fuel table, but the fuel consumption reported here is not directly associated with a generator. This complicates the heat rate calculation, since the associations between individual boilers and generators are incomplete and can be complex.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

boiler_id

Alphanumeric boiler ID.

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.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

prime_mover_code

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

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__yearly_boiler_fuel

package: pudl

Annual time series of boiler fuel consumption and emissions.

Most-recent data:

2024

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, boiler_id, energy_source_code, prime_mover_code, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

Reports the quantity of each type of fuel consumed by each boiler on a monthly basis, as well as the sulfur and ash content of those fuels. Fuel quantity is reported in standard EIA fuel units (tons, barrels, Mcf). Heat content per unit of fuel is also reported, making this table useful for calculating the thermal efficiency (heat rate) of various generation units.

This table provides better coverage of the entire fleet of generators than the core_eia923__monthly_generation_fuel table, but the fuel consumption reported here is not directly associated with a generator. This complicates the heat rate calculation, since the associations between individual boilers and generators are incomplete and can be complex.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

boiler_id

Alphanumeric boiler ID.

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.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

prime_mover_code

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

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__monthly_fuel_receipts_costs

package: pudl

Monthly time series of fuel deliveries to power plants aggregated by plant, fuel type, and time period.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 2 - Part A)

Primary key:

plant_id_eia, fuel_type_code_pudl, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Contains estimated values.

  • Some values have been redacted.

  • Time of fuel deliveries is not necessarily connected with time of fuel consumption.

  • 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.

Additional Details

This table is an aggregation of the more detailed data in the core_eia923__fuel_receipts_costs table. It provides a tidy timeseries of deliveries by fuel type for each plant. However, not all values in the original table can be aggregated meaningfully, so this table contains only a subset of the source table columns -- primarily numerical values and a handful of categorical variables, plus additional attributes that are constant within each plant-fuel-time period grouping and associated with the plant or utility. When aggregating numerical values any sum that contains an NA value is treated as NA.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

state

Two letter US state abbreviation.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_received_units

Quantity of fuel received in tons, barrel, or Mcf.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_cost_per_mmbtu

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

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

total_fuel_cost

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

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).

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

mercury_content_ppm

Mercury content in parts per million (ppm) to the nearest 0.001 ppm.

moisture_content_pct

For coal only: the moisture content of the fuel in terms of moisture percentage by weight. Reported to the nearest 0.01 percent.

chlorine_content_ppm

For coal only: the chlorine content in parts per million (ppm) to the nearest 0.001 ppm. If lab tests of the coal do not include the chlorine content, this field contains the amount specified in the contract with the supplier.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__monthly_generation_fuel_by_generator

package: pudl

Monthly time series of of estimated net generation and fuel consumption by generator.

Most-recent data:

2024

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

report_date, plant_id_eia, generator_id

Usage Warnings

  • Contains estimated values.

  • This downscaling process used to create this table does not distinguish between primary and secondary energy_sources for generators (see below for implications).

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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

Based on allocating net electricity generation and fuel consumption reported in the EIA-923 generation and generation_fuel tables to individual generators.

The net generation and fuel consumption allocation method PUDL employs begins with the following context of the originally reported EIA-860 and EIA-923 data:

  • The core_eia923__monthly_generation_fuel table is the authoritative source of information about how much generation and fuel consumption is attributable to an entire plant. This table has the most complete data coverage, but it is not the most granular data reported.

  • The core_eia923__monthly_generation table contains the most granular net generation data. It is reported at the plant_id_eia, generator_id and report_date level. This table includes only ~40% of the total MWhs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia923__monthly_boiler_fuel table contains the most granular fuel consumption data. It is reported at the boiler/prime mover/energy source level. This table includes only ~40% of the total MMBTUs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia860__scd_generators table provides an exhaustive list of all generators whose generation is being reported in the core_eia923__monthly_generation_fuel table.

In this table, PUDL aggregates the net generation and fuel consumption that has been allocated to the generator_id/energy_source_code/prime_mover_code level in the``out_eia923__monthly_generation_fuel_by_generator_energy_source`` to the generator level.This process does not distinguish between primary and secondary energy_sources for generators. Net generation is allocated equally between energy source codes, so if a plant has multiple generators with the same prime_mover_code but different energy source codes the core_eia923__monthly_generation_fuel records will be associated similarly between these two generators. Allocated net generation will still be proportional to each generator's net generation or capacity.

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
report_date

Date reported.

plant_id_eia

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

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.

generator_id

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

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.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

net_generation_mwh

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

out_eia923__monthly_generation_fuel_combined

package: pudl

Monthly time series of generation and fuel consumption of all generation units.

Most-recent data:

2025

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, report_date, prime_mover_code, energy_source_code

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

Denormalized, combined data from the core_eia923__monthly_generation_fuel and core_eia923__monthly_generation_fuel_nuclear with nuclear generation aggregated from the nuclear generation unit level up to the plant prime mover level, so as to be compatible with fossil fuel generation data.

This data can't be easily linked to individual boilers, generators, and generation units, but it is provides the most complete coverage of fuel consumption and electricity generation for the entire generation fleet. We use the primary fuels and prime movers reported for each generator along with their capacities to attribute fuel consumption and generation when it isn't directly reported in the core_eia923__monthly_generation and core_eia923__monthly_boiler_fuel tables in order to calculate capacity factors, heat rates, and the marginal cost of electricity.

The table makes a distinction between all fuel consumed and fuel consumed for electricity generation because some units are also combined heat and power (CHP) units, and also provide high temperature process heat at the expense of net electricity generation.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

prime_mover_code

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

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_units

Consumption for electric generation of the fuel type in physical unit.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__yearly_fuel_receipts_costs

package: pudl

Annual time series of fuel deliveries to power plants aggregated by plant, fuel type, and time period.

Most-recent data:

2024

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 2 - Part A)

Primary key:

plant_id_eia, fuel_type_code_pudl, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Contains estimated values.

  • Some values have been redacted.

  • Time of fuel deliveries is not necessarily connected with time of fuel consumption.

  • 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.

Additional Details

This table is an aggregation of the more detailed data in the core_eia923__fuel_receipts_costs table. It provides a tidy timeseries of deliveries by fuel type for each plant. However, not all values in the original table can be aggregated meaningfully, so this table contains only a subset of the source table columns -- primarily numerical values and a handful of categorical variables, plus additional attributes that are constant within each plant-fuel-time period grouping and associated with the plant or utility. When aggregating numerical values any sum that contains an NA value is treated as NA.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

state

Two letter US state abbreviation.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_received_units

Quantity of fuel received in tons, barrel, or Mcf.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_cost_per_mmbtu

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

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

total_fuel_cost

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

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).

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

mercury_content_ppm

Mercury content in parts per million (ppm) to the nearest 0.001 ppm.

moisture_content_pct

For coal only: the moisture content of the fuel in terms of moisture percentage by weight. Reported to the nearest 0.01 percent.

chlorine_content_ppm

For coal only: the chlorine content in parts per million (ppm) to the nearest 0.001 ppm. If lab tests of the coal do not include the chlorine content, this field contains the amount specified in the contract with the supplier.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__yearly_generation_fuel_by_generator

package: pudl

Annual time series of of estimated net generation and fuel consumption by generator.

Most-recent data:

2024

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

report_date, plant_id_eia, generator_id

Usage Warnings

  • Contains estimated values.

  • This downscaling process used to create this table does not distinguish between primary and secondary energy_sources for generators (see below for implications).

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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

Based on allocating net electricity generation and fuel consumption reported in the EIA-923 generation and generation_fuel tables to individual generators.

The net generation and fuel consumption allocation method PUDL employs begins with the following context of the originally reported EIA-860 and EIA-923 data:

  • The core_eia923__monthly_generation_fuel table is the authoritative source of information about how much generation and fuel consumption is attributable to an entire plant. This table has the most complete data coverage, but it is not the most granular data reported.

  • The core_eia923__monthly_generation table contains the most granular net generation data. It is reported at the plant_id_eia, generator_id and report_date level. This table includes only ~40% of the total MWhs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia923__monthly_boiler_fuel table contains the most granular fuel consumption data. It is reported at the boiler/prime mover/energy source level. This table includes only ~40% of the total MMBTUs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia860__scd_generators table provides an exhaustive list of all generators whose generation is being reported in the core_eia923__monthly_generation_fuel table.

In this table, PUDL aggregates the net generation and fuel consumption that has been allocated to the generator_id/energy_source_code/prime_mover_code level in the``out_eia923__yearly_generation_fuel_by_generator_energy_source`` to the generator level.This process does not distinguish between primary and secondary energy_sources for generators. Net generation is allocated equally between energy source codes, so if a plant has multiple generators with the same prime_mover_code but different energy source codes the core_eia923__monthly_generation_fuel records will be associated similarly between these two generators. Allocated net generation will still be proportional to each generator's net generation or capacity.

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
report_date

Date reported.

plant_id_eia

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

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.

generator_id

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

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.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

net_generation_mwh

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

out_eia923__yearly_generation_fuel_combined

package: pudl

Annual time series of generation and fuel consumption of all generation units.

Most-recent data:

2024

Processing:

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

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, report_date, prime_mover_code, energy_source_code

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • 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.

Additional Details

Denormalized, combined data from the core_eia923__monthly_generation_fuel and core_eia923__monthly_generation_fuel_nuclear with nuclear generation aggregated from the nuclear generation unit level up to the plant prime mover level, so as to be compatible with fossil fuel generation data.

This data can't be easily linked to individual boilers, generators, and generation units, but it is provides the most complete coverage of fuel consumption and electricity generation for the entire generation fleet. We use the primary fuels and prime movers reported for each generator along with their capacities to attribute fuel consumption and generation when it isn't directly reported in the core_eia923__monthly_generation and core_eia923__monthly_boiler_fuel tables in order to calculate capacity factors, heat rates, and the marginal cost of electricity.

The table makes a distinction between all fuel consumed and fuel consumed for electricity generation because some units are also combined heat and power (CHP) units, and also provide high temperature process heat at the expense of net electricity generation.

This table inherits canonicalized values for 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
report_date

Date reported.

plant_id_eia

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

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.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

prime_mover_code

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

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_units

Consumption for electric generation of the fuel type in physical unit.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

out_eia923__monthly_generation_fuel_by_generator_energy_source

package: pudl

Monthly time series of of estimated net generation and fuel consumption associated with each combination of generator, energy source, and prime mover.

Most-recent data:

2024

Processing:

Data is ready for use in analyses, but for practical reasons has not been denormalized and remains in narrow format.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

report_date, plant_id_eia, generator_id, prime_mover_code, energy_source_code

Usage Warnings

  • Contains estimated values.

  • This downscaling process used to create this table does not distinguish between primary and secondary energy_sources for generators (see below for implications).

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • Contains information from multiple raw inputs.

Additional Details

The net generation and fuel consumption allocation method PUDL employs begins with the following context of the originally reported EIA-860 and EIA-923 data:

  • The core_eia923__monthly_generation_fuel table is the authoritative source of information about how much generation and fuel consumption is attributable to an entire plant. This table has the most complete data coverage, but it is not the most granular data reported.

  • The core_eia923__monthly_generation table contains the most granular net generation data. It is reported at the plant_id_eia, generator_id and report_date level. This table includes only ~40% of the total MWhs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia923__monthly_boiler_fuel table contains the most granular fuel consumption data. It is reported at the boiler/prime mover/energy source level. This table includes only ~40% of the total MMBTUs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia860__scd_generators table provides an exhaustive list of all generators whose generation is being reported in the core_eia923__monthly_generation_fuel table.

In this table, PUDL has allocated the net electricity generation and fuel consumption from core_eia923__monthly_generation_fuel to the generator_id/energy_source_code/prime_mover_code level.

The allocation process entails generating a fraction for each record based on the net generation in the core_eia923__monthly_generation table and the capacity from the core_eia860__scd_generators table. This process does not distinguish between primary and secondary energy_sources for generators. Net generation is allocated equally between energy source codes, so if a plant has multiple generators with the same prime_mover_code but different energy source codes the core_eia923__monthly_generation_fuel records will be associated similarly between these two generators. Allocated net generation will still be proportional to each generator's net generation or capacity.

Columns
report_date

Date reported.

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!

prime_mover_code

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

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

energy_source_code_num

Name of the energy_source_code_N column that this energy source code was reported in for the generator referenced in the same record.

net_generation_mwh

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

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

out_eia923__yearly_generation_fuel_by_generator_energy_source

package: pudl

Annual time series of of estimated net generation and fuel consumption associated with each combination of generator, energy source, and prime mover.

Most-recent data:

2024

Processing:

Data is ready for use in analyses, but for practical reasons has not been denormalized and remains in narrow format.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

report_date, plant_id_eia, generator_id, prime_mover_code, energy_source_code

Usage Warnings

  • Contains estimated values.

  • This downscaling process used to create this table does not distinguish between primary and secondary energy_sources for generators (see below for implications).

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

  • Contains information from multiple raw inputs.

Additional Details

The net generation and fuel consumption allocation method PUDL employs begins with the following context of the originally reported EIA-860 and EIA-923 data:

  • The core_eia923__monthly_generation_fuel table is the authoritative source of information about how much generation and fuel consumption is attributable to an entire plant. This table has the most complete data coverage, but it is not the most granular data reported.

  • The core_eia923__monthly_generation table contains the most granular net generation data. It is reported at the plant_id_eia, generator_id and report_date level. This table includes only ~40% of the total MWhs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia923__monthly_boiler_fuel table contains the most granular fuel consumption data. It is reported at the boiler/prime mover/energy source level. This table includes only ~40% of the total MMBTUs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia860__scd_generators table provides an exhaustive list of all generators whose generation is being reported in the core_eia923__monthly_generation_fuel table.

In this table, PUDL has allocated the net electricity generation and fuel consumption from core_eia923__monthly_generation_fuel to the generator_id/energy_source_code/prime_mover_code level.

The allocation process entails generating a fraction for each record based on the net generation in the core_eia923__monthly_generation table and the capacity from the core_eia860__scd_generators table. This process does not distinguish between primary and secondary energy_sources for generators. Net generation is allocated equally between energy source codes, so if a plant has multiple generators with the same prime_mover_code but different energy source codes the core_eia923__monthly_generation_fuel records will be associated similarly between these two generators. Allocated net generation will still be proportional to each generator's net generation or capacity.

Columns
report_date

Date reported.

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!

prime_mover_code

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

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

energy_source_code_num

Name of the energy_source_code_N column that this energy source code was reported in for the generator referenced in the same record.

net_generation_mwh

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

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

out_eia923__yearly_generation_fuel_by_generator_energy_source_owner

package: pudl

Annual time series of of estimated net generation and fuel consumption for each generator, associated with each combination of generator, energy source, prime mover, and owner.

Most-recent data:

2024

Processing:

Data is ready for use in analyses, but for practical reasons has not been denormalized and remains in narrow format.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

report_date, plant_id_eia, generator_id, prime_mover_code, energy_source_code, utility_id_eia, ownership_record_type

Usage Warnings

  • Contains estimated values.

  • This downscaling process used to create this table does not distinguish between primary and secondary energy_sources for generators (see below for implications).

  • Date column arbitrarily uses the first of the month.

  • 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

The net generation and fuel consumption allocation method PUDL employs begins with the following context of the originally reported EIA-860 and EIA-923 data:

  • The core_eia923__monthly_generation_fuel table is the authoritative source of information about how much generation and fuel consumption is attributable to an entire plant. This table has the most complete data coverage, but it is not the most granular data reported.

  • The core_eia923__monthly_generation table contains the most granular net generation data. It is reported at the plant_id_eia, generator_id and report_date level. This table includes only ~40% of the total MWhs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia923__monthly_boiler_fuel table contains the most granular fuel consumption data. It is reported at the boiler/prime mover/energy source level. This table includes only ~40% of the total MMBTUs reported in the core_eia923__monthly_generation_fuel table.

  • The core_eia860__scd_generators table provides an exhaustive list of all generators whose generation is being reported in the core_eia923__monthly_generation_fuel table.

In this table, PUDL has scaled the net electricity generation and fuel consumption from core_eia923__monthly_generation_fuel by ownership from out_eia860__yearly_ownership. Note that the utility_id_eia in this table refers to the OWNER of the generator, not the operator.

This process does not distinguish between primary and secondary energy_sources for generators. Net generation is allocated equally between energy source codes, so if a plant has multiple generators with the same prime_mover_code but different energy source codes the core_eia923__monthly_generation_fuel records will be associated similarly between these two generators. Allocated net generation will still be proportional to each generator's net generation or capacity.

This table inherits canonicalized values for generators and plants. 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
report_date

Date reported.

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!

prime_mover_code

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

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

utility_id_eia

The EIA Utility Identification number.

ownership_record_type

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

fraction_owned

Proportion of generator ownership attributable to this utility.

capacity_mw

Total installed (nameplate) capacity, in megawatts.

energy_source_code_num

Name of the energy_source_code_N column that this energy source code was reported in for the generator referenced in the same record.

net_generation_mwh

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

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

core_eia923__entity_coalmine

package: pudl

Entity table containing static information about coal mines reporting deliveries in the Fuel Receipts and Costs table.

Most-recent data:

2025

Processing:

Data has been cleaned and organized into well-modeled tables that serve as building blocks for downstream wide tables and analyses.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 2, Part C)

Primary key:

mine_id_pudl

Usage Warnings

  • Mine ID's are not as well defined and consistent as other EIA ID's.

Additional Details

This table is produced during the transformation of fuel delivery data, in order to produce a better normalized database. The same coalmines report many individual deliveries, and repeating their attributes many times in the fuel receipts and costs table is duplicative. Unfortunately the coalmine attributes do not generally use a controlled vocabulary or well defined IDs and so in practice there are many distinct records in this table that correspond to the same mines in reality.

We have not yet taken the time to rigorously clean this data, but it could be linked with both Mining Safety and Health Administration (MSHA) and USGS data to provide more insight into where coal is coming from, and what the employment and geological context is for those supplies.

Columns
mine_id_pudl

Dynamically assigned PUDL mine identifier.

mine_name

Coal mine name.

mine_type_code

Type of coal mine.

state

Two letter US state abbreviation.

county_id_fips

County ID from the Federal Information Processing Standard Publication 6-4.

mine_id_msha

MSHA issued mine identifier.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

core_eia923__monthly_generation

package: pudl

Monthly time series of net electricity generated by power plant generators.

Most-recent data:

2025

Processing:

Data has been cleaned and organized into well-modeled tables that serve as building blocks for downstream wide tables and analyses.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, generator_id, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Not all IDs are present.

  • Table has known low coverage - either geographic or temporal or otherwise.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

Additional Details

This is the most granular information we have about how much electricity individual generators are producing, but only about half of all the generation reported in the core_eia923__monthly_generation_fuel appears in this table due to the different reporting requirements imposed on different types and sizes of generators.

Whenever possible, we use this generator-level net generation to estimate the heat rates of generation units and the marginal cost of electricity on a per-generator basis, but those calculations depend on plant-level fuel costs and sometimes uncertain or incomplete boiler-generator associations.

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.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

_core_eia923__yearly_byproduct_disposition

package: pudl

Annual time series of by-products reported by thermoelectric power plants with total steam turbine capacity of 100 megawatts or greater.

Most-recent data:

2024

Processing:

Data has been cleaned but not tidied/normalized. Published only temporarily and may be removed without notice.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 8A)

Primary key:

plant_id_eia, report_date, byproduct_description

Usage Warnings

  • This table is experimental and/or a work in progress and may change in the future.

Additional Details

All by-products other than steam sales are reported in thousand tons and are rounded to whole numbers. Steam sales are reported in MMBTu.

Columns
report_date

Date reported.

plant_id_eia

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

byproduct_description

Description of combustion by-product.

byproduct_units

Reported unit of measure for combustion byproduct. MMBTU for steam, tons for all other byproducts.

disposal_landfill_units

Disposed by-products in landfill, to the nearest hundred tons or in MMBTU for steam sales.

disposal_offsite_units

Disposed by-products offsite, to the nearest hundred tons or in MMBTU for steam sales.

disposal_ponds_units

Disposed by-products in ponds, to the nearest hundred tons or in MMBTU for steam sales.

sold_units

Sold by-products, in tons (to the nearest 100 tons) or, for Steam, MMBTU.

stored_offsite_units

Stored by-products offsite, to the nearest hundred tons or in MMBTU for steam sales.

stored_onsite_units

Stored by-products onsite, to the nearest hundred tons or in MMBTU for steam sales.

used_offsite_units

Used offsite by-products, to the nearest hundred tons or in MMBTU for steam sales.

used_onsite_units

Used onsite by-products, to the nearest hundred tons or in MMBTU for steam sales.

total_disposal_units

Total by-product disposal, to the nearest hundred tons or in MMBTU for steam sales.

no_byproducts_to_report

Whether any combustion by-products were produced by a plant. 'Y' indicates no byproducts to report. The 'Y' and 'N' values do not align with expected values of reported byproducts. This column is messy and requires standardization.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

_core_eia923__yearly_emissions_control

package: pudl

Annual time series of Actual rate and removal efficiency for air emissions reported by thermoelectric or combined-cycle power plants with a total steam turbine capacity greater than or equal to 10 megawatts.

Most-recent data:

2024

Processing:

Data has been cleaned but not tidied/normalized. Published only temporarily and may be removed without notice.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 8C)

Primary key:

This table has no primary key. This table is not yet normalized, and contains information about several different types of emissions control equipment, each of which has its own ID, and not all of which are present at every plant. As a result there is currently no unique, non-null primary key. Conceptually, the primary key should consist of plant_id_eia, report_date, mercury_control_id_eia, nox_control_id_eia, so2_control_id_eia, and particulate_control_id_eia. In practice many records have NULL values for all of the control equipment IDs.

Usage Warnings

  • This table is experimental and/or a work in progress and may change in the future.

Additional Details

In the raw data, the so2_test_date and particulate_test_date columns contained a wide variety of non-standard date formats. They have been standardized to ISO-8601 (YYYY-MM-DD) where possible. Missing days and months have been filled in with 01. A handful of manual spot-fixes have been applied to particularly strange formats. Two-digit years have been assumed to fall between 1950 and the last year observed in the report_date column.

Columns
plant_id_eia

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

report_date

Date reported.

acid_gas_removal_efficiency

Removal efficiency for acid gas emissions. Ranges from 0 to 1.

annual_nox_emission_rate_lb_per_mmbtu

Actual controlled (or uncontrolled) nitrogen oxides emission rate. Based on data from CEMS where possible.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

environmental_equipment_name

Type of equipment or strategy for the control of air emissions.

fgd_electricity_consumption_mwh

Electric power consumed by the flue gas desulfurization unit (in MWh).

fgd_sorbent_consumption_tons

Quantity of flue gas desulfurization sorbent used, to the nearest 100 ton.

hours_in_service

Total hours the emissions control was in service during the reporting year, rounded to the nearest hour.

mercury_control_id_eia

Mercury control identification number. This ID is not a unique identifier.

mercury_emission_rate_lb_per_trillion_btu

Actual controlled (or uncontrolled) mercury emission rate, based on data from CEMS, where possible.

mercury_removal_efficiency

Removal efficiency for mercury emissions. Ranges from 0 to 1.

nox_control_id_eia

Nitrogen oxide control identification number. This ID is not a unique identifier.

operational_status

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

ozone_season_nox_emission_rate_lb_per_mmbtu

Actual controlled (or uncontrolled) nitrogen oxides emission rate during the ozone season (May to September)

particulate_control_id_eia

Particulate matter control identification number. This ID is not a unique identifier.

particulate_emission_rate_lb_per_mmbtu

Average annual emission removal rate for particulate matter.

particulate_removal_efficiency_tested

The tested efficiency for the removal of particulate matter at 100 percent load. If not tested at 100 percent load, then the load at which the test was conducted is included as a comment on Schedule 9. If no test was conducted, the test date and tested efficiency field should be blank. Ranges from 0 to 1.

particulate_removal_efficiency_annual

Particulate removal efficiency, based on the annual operating factor, which is defined as annual fuel consumption (MMBTU) divided by the product of the boiler design firing rate (MMBTU per hour) and hours of operation per year.When actual data are not available, estimates are provided based on equipment design performance specifications. Ranges from 0 to 1.

particulate_test_date

Date of the latest efficiency test for the removal of particulate matter.

so2_control_id_eia

Sulfur dioxide control identification number. This ID is not a unique identifier.

so2_removal_efficiency_tested

The tested efficiency for the removal of sulfur dioxide at 100 percent load. If not tested at 100 percent load, then the load at which the test was conducted is included as a comment on Schedule 9. If no test was conducted, the test date and tested efficiency field should be blank. Ranges from 0 to 1.

so2_removal_efficiency_annual

Sulfur dioxide removal efficiency, based on the annual operating factor, which is defined as annual fuel consumption (MMBTU) divided by the product of the boiler design firing rate (MMBTU per hour) and hours of operation per year.When actual data are not available, estimates are provided based on equipment design performance specifications. Ranges from 0 to 1.

so2_test_date

Date of most recent test for sulfur dioxide removal efficiency.

core_eia923__fuel_receipts_costs

package: pudl

Individual fuel deliveries to power plants, organized by fuel type and supplier.

Most-recent data:

2025

Processing:

Data has been cleaned and organized into well-modeled tables that serve as building blocks for downstream wide tables and analyses.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 2 - Part A)

Primary key:

This table has no primary key. Each record describes an individual fuel delivery. There can be multiple deliveries of the same type of fuel from the same supplier to the same plant in a single month, so the table has no natural primary key.

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • Some values have been redacted.

  • Time of fuel deliveries is not necessarily connected with time of fuel consumption.

Additional Details

There can be a significant delay between the receipt of fuel and its consumption, so using this table to infer monthly attributes associated with power generation may not be entirely accurate. However, this is the most granular data we have describing fuel costs, and we use it in calculating the marginal cost of electricity for individual generation units.

Under some circumstances utilities are allowed to treat the price of fuel as proprietary business data, meaning it is redacted from the publicly available spreadsheets. It's still reported to EIA and influences the aggregated (state, region, annual, etc.) fuel prices they publish. From 2009-2021 about 1/3 of all prices are redacted. The missing data is not randomly distributed. Deregulated markets dominated by merchant generators (independent power producers) redact much more data, and natural gas is by far the most likely fuel to have its price redacted. This means, for instance, that the entire Northeastern US reports essentially no fine-grained data about its natural gas prices.

Additional data which we haven't yet integrated is available in a similar format from 2002-2008 via the EIA-423, and going back as far as 1972 from the FERC-423.

Columns
plant_id_eia

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

report_date

Date reported.

contract_type_code

Purchase type under which receipts occurred in the reporting month. C: Contract, NC: New Contract, S: Spot Purchase, T: Tolling Agreement.

contract_expiration_date

Date contract expires.Format: MMYY.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_group_code

Fuel groups used in the Electric Power Monthly

mine_id_pudl

Dynamically assigned PUDL mine identifier.

supplier_name

Company that sold the fuel to the plant or, in the case of Natural Gas, pipeline owner.

fuel_received_units

Quantity of fuel received in tons, barrel, or Mcf.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

mercury_content_ppm

Mercury content in parts per million (ppm) to the nearest 0.001 ppm.

fuel_cost_per_mmbtu

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

primary_transportation_mode_code

Transportation mode for the longest distance transported.

secondary_transportation_mode_code

Transportation mode for the second longest distance transported.

natural_gas_transport_code

Contract type for natural gas transportation service.

natural_gas_delivery_contract_type_code

Contract type for natural gas delivery service:

moisture_content_pct

For coal only: the moisture content of the fuel in terms of moisture percentage by weight. Reported to the nearest 0.01 percent.

chlorine_content_ppm

For coal only: the chlorine content in parts per million (ppm) to the nearest 0.001 ppm. If lab tests of the coal do not include the chlorine content, this field contains the amount specified in the contract with the supplier.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

core_eia923__monthly_boiler_fuel

package: pudl

Monthly time series of boiler fuel consumption and emissions.

Most-recent data:

2025

Processing:

Data has been cleaned and organized into well-modeled tables that serve as building blocks for downstream wide tables and analyses.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, boiler_id, energy_source_code, prime_mover_code, report_date

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

Additional Details

Reports the quantity of each type of fuel consumed by each boiler on a monthly basis, as well as the sulfur and ash content of those fuels. Fuel quantity is reported in standard EIA fuel units (tons, barrels, Mcf). Heat content per unit of fuel is also reported, making this table useful for calculating the thermal efficiency (heat rate) of various generation units.

This table provides better coverage of the entire fleet of generators than the core_eia923__monthly_generation_fuel table, but the fuel consumption reported here is not directly associated with a generator. This complicates the heat rate calculation, since the associations between individual boilers and generators are incomplete and can be complex.

Columns
plant_id_eia

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

boiler_id

Alphanumeric boiler ID.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

prime_mover_code

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

fuel_type_code_pudl

Simplified fuel type code used in PUDL

report_date

Date reported.

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

sulfur_content_pct

Sulfur content percentage by weight to the nearest 0.01 percent.

ash_content_pct

Ash content percentage by weight to the nearest 0.1 percent.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

core_eia923__monthly_energy_storage

package: pudl

Monthly time series of energy consumed and discharged ("generated") by energy storage units.

Most-recent data:

2025

Processing:

Data has been cleaned and organized into well-modeled tables that serve as building blocks for downstream wide tables and analyses.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, report_date, prime_mover_code, energy_source_code

Usage Warnings

  • Date column arbitrarily uses the first of the month.

Additional Details

The total MWh discharged from the energy storage unit during the reporting period is the gross generation and the difference between gross generation and consumption is the net generation.

Columns
plant_id_eia

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

report_date

Date reported.

prime_mover_code

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

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

fuel_units

Reported unit of measure for fuel.

fuel_consumed_for_electricity_units

Consumption for electric generation of the fuel type in physical unit.

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

gross_generation_mwh

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

net_generation_mwh

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

core_eia923__monthly_generation_fuel

package: pudl

Monthly time series of generation and fuel consumption by fuel and prime mover.

Most-recent data:

2025

Processing:

Data has been cleaned and organized into well-modeled tables that serve as building blocks for downstream wide tables and analyses.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, report_date, prime_mover_code, energy_source_code

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

Additional Details

This data can't be easily linked to individual boilers, generators, and generation units, but it is provides the most complete coverage of fuel consumption and electricity generation for the entire generation fleet. We use the primary fuels and prime movers reported for each generator along with their capacities to attribute fuel consumption and generation when it isn't directly reported in the core_eia923__monthly_generation and core_eia923__monthly_boiler_fuel tables in order to calculate capacity factors, heat rates, and the marginal cost of electricity.

The table makes a distinction between all fuel consumed and fuel consumed for electricity generation because some units are also combined heat and power (CHP) units, and also provide high temperature process heat at the expense of net electricity generation.

Columns
report_date

Date reported.

plant_id_eia

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

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_type_code_agg

A partial aggregation of the reported fuel type codes into larger categories used by EIA in, for example, the Annual Energy Review (AER) or Monthly Energy Review (MER). Two or three letter alphanumeric.

prime_mover_code

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

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_units

Consumption for electric generation of the fuel type in physical unit.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

_core_eia923__monthly_cooling_system_information

package: pudl

Monthly time series of cooling system information at generation facilities - mainly water volumes and temperatures.

Most-recent data:

2024

Processing:

Data has been cleaned but not tidied/normalized. Published only temporarily and may be removed without notice.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 8D)

Primary key:

plant_id_eia, report_date, cooling_id_eia

Usage Warnings

  • Some years use a slightly different data definition.

Additional Details

In 2008 and 2009, EIA only reports annual averages, but in later years all data is monthly.

Note: This table has been cleaned, but not harvested with other EIA 923 or 860 data. The same variables present in this table may show up in other _core tables in other years. Once this table has been harvested, it will be removed from the PUDL database.

Columns
report_date

Date reported.

plant_id_eia

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

cooling_id_eia

EIA Identification code for cooling system (if multiple cooling systems are not distinguished by separate IDs, the word 'PLANT' is listed to encompass the cooling system for the entire plant)

cooling_status_code

Operating status of cooling system

cooling_type

Type of cooling system

monthly_total_cooling_hours_in_service

Total hours the system operated during the month

flow_rate_method

Calculation method for flow rates (actual or method of estimation)

temperature_method

Method for measurement of temperatures

annual_maximum_intake_summer_temperature_fahrenheit

Maximum cooling water temperature at intake during the summer

annual_maximum_intake_winter_temperature_fahrenheit

Maximum cooling water temperature at intake in winter

monthly_average_intake_temperature_fahrenheit

Average cooling water temperature at intake point

monthly_maximum_intake_temperature_fahrenheit

Maximum cooling water temperature at intake

annual_maximum_outlet_summer_temperature_fahrenheit

Maximum cooling water temperature at outlet in summer

annual_maximum_outlet_winter_temperature_fahrenheit

Maximum cooling water temperature at outlet in winter

monthly_average_discharge_temperature_fahrenheit

Average cooling water temperature at discharge point

monthly_maximum_discharge_temperature_fahrenheit

Maximum cooling water temperature at discharge

annual_average_consumption_rate_gallons_per_minute

Annual average consumption rate of cooling water

monthly_average_consumption_rate_gallons_per_minute

Monthly average consumption rate of cooling water

monthly_total_consumption_volume_gallons

Monthly volume of water consumed at consumption point (accurate to 0.1 million gal)

annual_average_discharge_rate_gallons_per_minute

Annual average discharge rate of cooling water

monthly_average_discharge_rate_gallons_per_minute

Monthly average discharge rate of cooling water

monthly_total_discharge_volume_gallons

Monthly volume of water discharged at discharge point (accurate to 0.1 million gal)

monthly_average_diversion_rate_gallons_per_minute

Monthly average diversion rate of cooling water

monthly_total_diversion_volume_gallons

Monthly volume of water diverted at diversion point (accurate to 0.1 million gal)

annual_average_withdrawal_rate_gallons_per_minute

Annual average withdrawal rate of cooling water

monthly_average_withdrawal_rate_gallons_per_minute

Monthly average withdrawal rate of cooling water

monthly_total_withdrawal_volume_gallons

Monthly volume of water withdrawn at withdrawal point (accurate to 0.1 million gal)

annual_total_chlorine_lbs

Amount of elemental chlorine added to cooling water annually. May be just the amount of chlorine-containing compound if schedule 9 is filled out.

monthly_total_chlorine_lbs

Amount of elemental chlorine added to cooling water monthly. May be just the amount of chlorine-containing compound if schedule 9 is filled out.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

_core_eia923__yearly_byproduct_expenses_and_revenues

package: pudl

Annual time series of financial information related to combustion by-products reported by thermoelectric power plants with total steam turbine capacity of 100 megawatts or greater and that produced combustion by-products during the reporting year.

Most-recent data:

2024

Processing:

Data has been cleaned but not tidied/normalized. Published only temporarily and may be removed without notice.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 8B)

Primary key:

plant_id_eia, report_date

Usage Warnings

  • This table is experimental and/or a work in progress and may change in the future.

Additional Details

Cost data must be entered for all entries on Schedule 8A. Financial information includes operational and maintenance expenditures (opex), capital expenditures (capex), and by-products sales revenue.

Columns
plant_id_eia

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

report_date

Date reported.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

capex_air_abatement

Cost of new structures and/or equipment purchased to reduce, monitor, or eliminate airborne pollutants.

capex_other_abatement

Other amortizable expenses and purchases of new structures and or equipment when such purchases are not allocated to a particular unit or item.

capex_solid_waste

Cost of structures or equipment purchased to collect and dispose of objectionable solids or contained liquids.

capex_water_abatement

Cost of new structures and/or equipment purchased to reduce, monitor, or eliminate waterborne pollutants, including chlorine, phosphates, acids, bases, hydrocarbons, sewage, and other pollutants.

opex_bottom_ash_collection

Costs of materials and labor associated with the collection of bottom ash from all sources.

opex_bottom_ash_disposal

Costs of materials and labor associated with the disposal of bottom ash from all sources.

opex_bottom_ash_other

Other costs associated with the collection and disposal of bottom ash.

opex_fgd_byproduct_collection

Costs of materials and labor associated with the collection of sulfur by-product (flue gas desulfurization).

opex_fgd_byproduct_disposal

Costs of materials and labor associated with the disposal of sulfur by-product (flue gas desulfurization).

opex_fgd_byproduct_other

Other costs associated with the collection and disposal of sulfur by-product (flue gas desulfurization).

opex_fly_ash_collection

Costs of materials and labor associated with the collection of fly ash from all sources.

opex_fly_ash_disposal

Costs of materials and labor associated with the disposal of fly ash from all sources.

opex_fly_ash_other

Other costs associated with the collection and disposal of fly ash.

opex_other_abatement_collection

Abatement costs of by-product collection that are not allocated to a particular expenditure, e.g., costs of operating an environmental protection office.

opex_other_abatement_disposal

Abatement costs of by-product disposal that are not allocated to a particular expenditure.

opex_other_abatement_other

Other abatement costs that are not allocated to a particular expenditure.

opex_total_collection_abatement

Sum of abatement costs associated with by-product collection.

opex_total_disposal_abatement

Sum of abatement costs associated with by-product disposal.

opex_total_other_abatement

Sum of other abatement costs associated with the collection and disposal of byproducts.

opex_water_abatement_collection

Costs associated with the collection/abatement of water pollution, e.g., equipment operation and maintenance of pumps, pipes, and settling ponds.

opex_water_abatement_disposal

Costs associated with the disposal of water pollutants.

opex_water_abatement_other

Other abatement costs associated with water pollutants.

revenues_bottom_ash

Revenue from the sale of bottom ash by-product.

revenues_fgd_byproducts

Revenue from the sale of flue gas desulfurization by-product.

revenues_fly_ash

Revenue from the sale of fly ash by-product.

revenues_fly_bottom_ash_intermingled

Revenue from the sale of intermingled fly and bottom ash by-product.

revenues_other_byproducts

Revenue from the sale of other by-products.

revenues_total_byproduct

Total revenue from the sale of by-products.

_core_eia923__yearly_fgd_operation_maintenance

package: pudl

Annual time series of flue gas desulfurization (FGD) operation and maintenance expenses at generation facilities.

Most-recent data:

2024

Processing:

Data has been cleaned but not tidied/normalized. Published only temporarily and may be removed without notice.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 8C)

Primary key:

plant_id_eia, report_date, so2_control_id_eia

Usage Warnings

  • Some years use a slightly different data definition.

Additional Details

From 2008-2011 this table also reported operational characteristics that are now reported in 923 Air Emissions Control Info.

Note: This table has been cleaned, but not harvested with other EIA 923 or 860 data. The same variables present in this table may show up in other _core tables in other years. Once this table has been harvested, it will be removed from the PUDL database.

Columns
report_date

Date reported.

plant_id_eia

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

so2_control_id_eia

Sulfur dioxide control identification number. This ID is not a unique identifier.

opex_fgd_feed_materials_chemical

Annual operation and maintenance expenditures for feed materials and chemicals for flue gas desulfurization equipment, excluding electricity.

opex_fgd_labor_supervision

Annual operation and maintenance expenditures for labor and supervision of flue gas desulfurization equipment, excluding electricity.

opex_fgd_land_acquisition

Annual operation and maintenance expenditures for land acquisition for flue gas desulfurization equipment, excluding electricity.

opex_fgd_maintenance_material_other

Annual operation and maintenance expenditures for maintenance, materials and all other costs of flue gas desulfurization equipment, excluding electricity

opex_fgd_waste_disposal

Annual operation and maintenance expenditures for waste disposal, excluding electricity.

opex_fgd_total_cost

Annual total cost of operation and maintenance expenditures on flue gas desulfurization equipment, excluding electricity

fgd_control_flag

Indicates whether or not a plant has a flue gas desulfurization control unit.

fgd_operational_status_code

Operating status code for flue gas desulfurization equipment.

fgd_hours_in_service

Number of hours the flue gas desulfurization equipment was in operation during the year.

fgd_electricity_consumption_mwh

Electric power consumed by the flue gas desulfurization unit (in MWh).

fgd_sorbent_consumption_tons

Quantity of flue gas desulfurization sorbent used, to the nearest 100 ton.

so2_removal_efficiency_tested

The tested efficiency for the removal of sulfur dioxide at 100 percent load. If not tested at 100 percent load, then the load at which the test was conducted is included as a comment on Schedule 9. If no test was conducted, the test date and tested efficiency field should be blank. Ranges from 0 to 1.

so2_removal_efficiency_annual

Sulfur dioxide removal efficiency, based on the annual operating factor, which is defined as annual fuel consumption (MMBTU) divided by the product of the boiler design firing rate (MMBTU per hour) and hours of operation per year.When actual data are not available, estimates are provided based on equipment design performance specifications. Ranges from 0 to 1.

so2_test_date

Date of most recent test for sulfur dioxide removal efficiency.

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.

core_eia923__monthly_generation_fuel_nuclear

package: pudl

Monthly time series of generation and fuel consumption of nuclear generation units by fuel and prime mover.

Most-recent data:

2025

Processing:

Data has been cleaned and organized into well-modeled tables that serve as building blocks for downstream wide tables and analyses.

Source:

EIA Form 923 -- Power Plant Operations Report (Schedule 3)

Primary key:

plant_id_eia, report_date, nuclear_unit_id, energy_source_code, prime_mover_code

Usage Warnings

  • Date column arbitrarily uses the first of the month.

  • A small number of respondents only report annual fuel consumption, and all of it is reported in December.

Additional Details

This data is originally reported alongside similar information for fossil fuel plants, but the nuclear data is reported by (nuclear) generation unit rather than fuel type and prime mover, and so has a different primary key.

Columns
plant_id_eia

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

report_date

Date reported.

nuclear_unit_id

For nuclear plants only, the unit number .One digit numeric. Nuclear plants are the only type of plants for which data are shown explicitly at the generating unit level.

energy_source_code

A 2-3 letter code indicating the energy source (e.g. fuel type) associated with the record.

fuel_type_code_pudl

Simplified fuel type code used in PUDL

fuel_type_code_agg

A partial aggregation of the reported fuel type codes into larger categories used by EIA in, for example, the Annual Energy Review (AER) or Monthly Energy Review (MER). Two or three letter alphanumeric.

prime_mover_code

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

fuel_consumed_units

Consumption of the fuel type in physical unit. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_units

Consumption for electric generation of the fuel type in physical unit.

fuel_mmbtu_per_unit

Heat content of the fuel in millions of Btus per physical unit.

fuel_consumed_mmbtu

Total consumption of fuel in physical unit, year to date. Note: this is the total quantity consumed for both electricity and, in the case of combined heat and power plants, process steam production.

fuel_consumed_for_electricity_mmbtu

Total consumption of fuel to produce electricity, in physical unit, year to date.

net_generation_mwh

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

data_maturity

Maturity of the source data published by EIA that is reflected in this record. EIA releases data incrementally over time, including monthly updates, annual year-to-date updates, provisional early releases of annual data, and final annual release data that is not expected to change further. Records sourced from multiple upstream EIA datasets may have no well defined data maturity. Records whose values have been inferred within PUDL will also have no data maturity.