Methodology & Data Sources
Every number on WattRate is computed from public EIA data with a stated formula and a stamped data window. Here's the whole chain.
Sources
| Page type | Source | Window on this site |
|---|---|---|
| States | EIA monthly residential retail-sales series (Forms EIA-826, EIA-861, EIA-861M), via the EIA Open Data API v2. Public domain. | Through June 2026 · fetched 2026-09-20 |
| Utilities | Form EIA-861 annual data — residential customers, revenue, and sales per utility. Public domain. | 2024 annual · fetched 2026-09-20 |
| Cities | The serving utility's EIA-861 data where mapped; otherwise the clearly-labeled state average. City population: 2020 Census (approx.). | Matches utility or state window |
Formulas
- Average monthly bill = residential revenue ÷ residential customers (monthly: EIA-826; annually: EIA-861 revenue ÷ customers ÷ 12).
- Price per kWh = residential revenue ÷ residential sales. It bundles supply, delivery, taxes, and fees — the all-in rate a household effectively pays.
- Typical usage = residential sales ÷ residential customers for the same month (kWh/month).
- Ranks compare tracked entities only: states against states+DC; utilities against the largest ~250 utilities we track, within their state.
Honest limitations
- Revision lag. EIA revises monthly data for roughly two months; the state window shown is the latest published month, which may still be revised.
- Averages hide distribution. An "average bill" blends apartments and detached houses, mild and extreme usage. Treat it as a benchmark, not a forecast of your invoice.
- Utility ≠ full bill for everyone. Some customers buy generation from retail suppliers (deregulated markets); utility figures then reflect the delivery-dominant bill shape of EIA's reported revenue.
- City pages are grounded estimates. Where a city's primary utility is mapped, its annual figures stand in for the city; unmapped cities use state averages and say so on the page.
- Unit contract. The pipeline asserts EIA's units (price ¢/kWh, revenue thousand $, sales million kWh) on every fetch and refuses to store mis-normalized data.
Refresh cycle
A scripted pipeline re-fetches EIA data monthly, rebuilds the database, and every page stamps "Data through {month} · verified {date}". If a fetch fails verification, the site keeps the last good data and the stamp shows exactly how old it is.