Retail Sales by Utility

EIA-861 Schedule 4 retail sales: revenue, MWh and customers for every utility, community choice aggregator and retail marketer, by state, balancing authority and customer class.

Native record
event_time x utility_number x state x part x ba_code x customer_class x duplicate_index
annual (report year) publication cadence
Evidence
Observed market data
Published observations from the named source
Time basis
Point-in-time records
UTC · event_time

Overview

Sales to ultimate customers (Sales_Ult_Cust), one row per seller, state, balancing authority, part and customer class. part is the schedule: A bundled service, B energy-only (the seller supplies the energy, another utility the wires: community choice aggregators and retail marketers report here), C delivery-only (the wires utility for those same customers) and D bundled service by Texas retail power marketers. Counting B and C together counts the same customers twice. ownership names the entity type. EIA introduced 'Community Choice Aggregator' in 2016 and moved CCAs onto it over several years; before that they file as 'Retail Power Marketer', so follow a CCA's history by utility_number rather than by ownership. utility_number 99999 is EIA's imputed state adjustment for utilities that did not file the long form, and 88888 is 'Withheld', several anonymized sellers per state. Revenue is in thousand dollars. customer_class is residential, commercial, industrial, transportation (direct_connected in the distributed generation tables) or EIA's own total, so summing classes without excluding total counts everything twice. event_time is 1 January of the report year. release is final or early_release: EIA posts an early release of a year in August and replaces it with the final file in the autumn, and the mirror keeps the newest row per key. A key cell EIA leaves blank is '' or 0, and duplicate_index numbers rows that still share a key, in workbook order.

Query contract

Preserve one canonical row per (event_time, utility_number, state, part, ba_code, customer_class, duplicate_index) before aggregating.

Analysis rules

  • Group only after preserving the declared grain: event_time, utility_number, state, part, ba_code, customer_class, duplicate_index.

Schema17

Column
Type
event_timeDateTime64(6, 'UTC')
customer_classLowCardinality(String)
utility_numberInt64
utility_nameLowCardinality(Nullable(String))
partLowCardinality(String)
service_typeLowCardinality(Nullable(String))
data_typeLowCardinality(Nullable(String))
stateLowCardinality(String)
ownershipLowCardinality(Nullable(String))
ba_codeLowCardinality(String)
revenues_thousand_dollarsNullable(Float64)
sales_mwhNullable(Float64)
customers_countNullable(Float64)
short_formLowCardinality(Nullable(String))
duplicate_indexInt64
releaseLowCardinality(Nullable(String))
ingested_atDateTime64(6, 'UTC')

Sample data

event_timecustomer_classutility_numberutility_namepartservice_typedata_typestateownershipba_coderevenues_thousand_dollarssales_mwhcustomers_countshort_formduplicate_indexreleaseingested_at
2025-01-01 00:00:00.000000transportation99999Adjustment 2025ABundledIWY∅WAUW000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000total99999Adjustment 2025ABundledIWY∅WAUW38735.634027916906∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000residential99999Adjustment 2025ABundledIWY∅WAUW1951315128514145∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000industrial99999Adjustment 2025ABundledIWY∅WAUW000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000commercial99999Adjustment 2025ABundledIWY∅WAUW19222.61889942761∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000transportation99999Adjustment 2025ABundledIWY∅WACM000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000total99999Adjustment 2025ABundledIWY∅WACM420743407611598897∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000residential99999Adjustment 2025ABundledIWY∅WACM102240.962462280995∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000industrial99999Adjustment 2025ABundledIWY∅WACM85420.78301522983∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000commercial99999Adjustment 2025ABundledIWY∅WACM233081.4262134114919∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000transportation99999Adjustment 2025ABundledIWY∅PSCO000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000total99999Adjustment 2025ABundledIWY∅PSCO1661.99984766∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000residential99999Adjustment 2025ABundledIWY∅PSCO1035.15672576∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000industrial99999Adjustment 2025ABundledIWY∅PSCO000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000commercial99999Adjustment 2025ABundledIWY∅PSCO626.84312190∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000transportation99999Adjustment 2025ABundledIWY∅PACE000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000total99999Adjustment 2025ABundledIWY∅PACE838505.48502030146167∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000residential99999Adjustment 2025ABundledIWY∅PACE1541441017133119294∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000industrial99999Adjustment 2025ABundledIWY∅PACE518321.460725062666∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000commercial99999Adjustment 2025ABundledIWY∅PACE166040141239124207∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000transportation99999Adjustment 2025ABundledIWY∅NWMT000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000total99999Adjustment 2025ABundledIWY∅NWMT7638.8431081566∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000residential99999Adjustment 2025ABundledIWY∅NWMT1614.2116181050∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000industrial99999Adjustment 2025ABundledIWY∅NWMT000∅0early_release2026-09-29 00:39:35.496438
2025-01-01 00:00:00.000000commercial99999Adjustment 2025ABundledIWY∅NWMT6024.631490516∅0early_release2026-09-29 00:39:35.496438

Coverage

0.3% complete4,736 gap days14 days with data
Show coverage history
Coverage: 0.3%Days with data: 14Gaps: 4,736
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
gaplessmore