out_ferc1__yearly_sales_by_rate_schedules_sched304
Return to SearchAnnual time series of utilities' electric sales from all rate schedules in effect throughout the year.
- 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:
FERC Form 1 -- Annual Report of Major Electric Utilities (Schedule 304)
- Primary key:
This table has no primary key.
Usage Warnings
Some columns contain subtotals; use caution when choosing columns to aggregate.
Values in rate_schedule_description are free-form strings.
Data prior to 2021 does not include information in columns: rate_schedule_type and billing_status.
Units of revenue_per_kwh are suspected to include a mix of dollars and possibly cents.
FERC data is notoriously difficult to extract cleanly, and often contains free-form strings, non-labeled total rows and lack of IDs. See Notable Irregularities for details.
Additional Details
The pre-2021 data in this table (extracted from FoxProDB vs. XBRL) is extremely unstructured. Where the post-2020 data (from XBRL) sorts the data into rate schedule types: residential, industrial, commercial, public_lighting, public_authorities, railroads, interdepartmental, provision_for_rate_refund, commercial_and_industrial, total, and billing status: billed, unbilled, total, the pre-2021 data stuffs all of that information (if you're lucky) into the rate_schedule_description column. There's no point trying to parse through the pre 2021 rate_schedule_description column en masse because it's just too messy. The contents of rate_schedule_description often contain numbers and acronyms that have little to no meaning out of context. The table is structured somewhat like the FERC1 small generators table with headings about rate structure type also embedded into the rate_schedule_description column. To all who dare, beware.
This table is a combination of one pre-2021 (DBF) table and nine post-2020 (XBRL) tables--one for each rate schedule type plus totals--hence increase in data clarity post-2020. The rate_schedule_type and billing_status columns are only relevant for post-2020 data as they can be reliably parsed from each of the tables and incorporated into columns. The rate_schedule_description is supposed to contain sub-rate_schedule_type names for charges (Ex: Residential 1, Residential 2, etc.). However, the pre-2021 data contains a little bit of everything (or nothing) and the post-2020 has some totals or wonky data thrown in. That's to say, even when working with post-2020 data, be wary of aggregating the data. That's what the "total" rows are for.
The values that come from from the totals table are marked with the string "total" in the rate_schedule_description column. The totals table is a product of the transition to XBRL, so these distinguishable totals are only available for data post-2020 (otherwise you could try keyword searching for "total" in rate_schedule_description). The total table contains two types of totals, the utility totals across all rate schedules in a given year (marked with rate_schedule_description = "total" and rate_schedule_type = "total") and each of the utility's individual rate schedule totals in a given year (marked with rate_schedule_description = "total" and rate_schedule_type = "residential" or any other rate schedule type).
The rate schedule based XBRL tables only report billed values whereas the total tables report billed, unbilled, and total values. (See the column description for more info on the difference between billed and unbilled). This is important to consider if you're endeavoring to compare the subtotal values with the total values. We have not attempted to fix or verify any subtotals or totals that don't add up.
Another important note is the possibility of unit discrepancies in certain columns. The revenue_per_kwh column does not specify reporting units, and closer inspection of the data reveals two clear peaks approximate two orders of magnitude apart. This indicates that values may be reported in both dollars and cents. However, because the price of energy per kwh varies so much regionally, we cannot guarantee which is which and have not put any cleaning mechanisms in place to account for this.
Columns
Four-digit year in which the data was reported.
PUDL-assigned utility ID, identifying a FERC1 utility. This is an auto-incremented ID and is not expected to be stable from year to year.
FERC-assigned respondent_id from DBF reporting years, identifying the reporting entity. Stable from year to year.
FERC-assigned entity_id from XBRL reporting years, identifying the reporting entity. Stable from year to year.
A manually assigned PUDL utility ID. May not be stable over time.
Name of the responding utility, as it is reported in FERC Form 1. For human readability only.
Categorization of rate schedule type.
Whether an amount is billed, unbilled, or both. Billed amounts pertain to the exchange of energy and unbilled amounts pertain to other sources of revenue such as contracts with peaker plants to keep them on standby or charging rent to host cell antennas on transmission towers.
Free-form description of what the rate schedule name is. Not standardized. Often a sub-category of rate_schedule_type.
Quantity of electricity sold in MWh.
Dollar value of reported income, expense, asset, or liability.
Average number of customers per month.
kWh per customer.
The amount of revenue per kWh by rate schedule acquired in the given report year.
Identifier indicating original FERC Form 1 source record. format: {table_name}_{report_year}_{report_prd}_{respondent_id}_{spplmnt_num}_{row_number}. Unique within FERC Form 1 DB tables which are not row-mapped.