Data · Methodology · Version 1
How the Electricity Price Index Is Built
Every figure in the Geostellar Residential Electricity Price Index traces to a public federal dataset, a stated metric, and a stated time window. This page documents the source, the exact definition, how we aggregate it, when it updates, and what it cannot tell you.
Latest data period: · Snapshot generated
Source data
The index is computed from U.S. Energy Information Administration (EIA), Electricity retail sales — average price by state. We query the EIA Open Data API v2 electricity retail-sales endpoint for the monthly residential (sector RES) average price, in cents per kilowatt-hour, for every state and DC, back to January 2001. We use no proprietary or private-market data.
Exact metric definition
The metric: Average residential retail price of electricity published by the EIA for each reporting jurisdiction, in cents per kilowatt-hour — a state- or DC-wide monthly average, not a personalized utility tariff or the rate any single household pays.
Prices are taken exactly as EIA publishes them per reporting jurisdiction per month; we round to the source’s two-decimal precision and never add precision the source does not provide.
Derived figures
- National average (month) = unweighted mean of the jurisdiction residential averages reporting that month — a cross-jurisdiction benchmark, not a sales-weighted national rate.
- Year-over-year change = (latest month ÷ same month one year earlier − 1) × 100. Where a jurisdiction lacks the 12-months-prior period, we compare against the earliest available month and label the change “since <month>.”
- vs. national = (jurisdiction average ÷ national average − 1) × 100, both for the latest period.
- Estimated annual bill = jurisdiction rate × 10,500 kWh, the approximate U.S. average annual residential consumption — an illustration of the rate’s dollar impact, not a billed amount.
- National rank = position of the jurisdiction’s latest-period average when the reporting jurisdictions are sorted from most to least expensive. Rank 1 is the highest average price. Ties use standard competition ranking: jurisdictions publishing the same price to the source’s two-decimal precision share a rank and the next distinct price skips ahead (1, 2, 2, 4). A shared rank is labelled “tied” wherever it appears, because the source does not order two identical prices.
- Border-group standing = the jurisdiction’s position among itself and its land-border neighbours at the comparison period, cheapest first. It uses the same standard competition ranking as the national rank, so two group members publishing the same price share a position and it is labelled “tied”. Where more than one jurisdiction holds the group’s highest or lowest price, all of them are named; a claim that one jurisdiction is the cheapest or most expensive in its group is made only when it holds that end alone.
- Record high / record low = the highest and lowest monthly average the jurisdiction has posted across the full series, reported with the month in which it occurred.
- Compound annual rate = (latest ÷ first observation)1 ÷ years − 1, where years is the elapsed time between the two endpoint periods — the whole months from the first observation to the latest, divided by 12. Note that this is the interval those dates span, not the number of observations recorded: a series of N monthly readings covers N−1 months, so counting observations would overstate the denominator and understate the rate. The result is the constant yearly rate that would connect the first and latest readings; it describes the endpoints, not the path between them.
- Month-to-month variability = the standard deviation of month-over-month percent change across the full series. Jurisdictions are labelled by which third of the reporting-jurisdiction distribution they fall into, rather than against a fixed threshold. A jurisdiction with too short a series to produce a standard deviation is left out of that distribution rather than entered at zero, so it cannot drag the tercile boundaries.
- Seasonal index = each monthly observation divided by the mean of its own calendar year, then averaged by calendar month. Dividing by the year’s own mean first prevents the long-run price rise from being counted as seasonality. Partial years are excluded because their mean is biased.
- Gap trend = the jurisdiction’s percent distance from the national benchmark today, compared with the same distance sixty months earlier. Moves smaller than two percentage points are reported as stable rather than directional. Where either period is missing the trend is reported as unavailable, not as stable — an unmeasurable move and a measured non-move are different findings.
- Comparison period. Every comparison figure — national rank, the count it is out of, the border-state table, and the national benchmark a jurisdiction is measured against — is drawn from a single source period, the one named on the page. Series not reporting that exact month are omitted from the comparison rather than substituted with a nearby month, so no published comparison is assembled from observations of different dates. Where the national series does not report the named month, the benchmark and the gap against it are both shown as unavailable rather than filled from another month.
- Which observations count. A monthly reading is used only where the source reports a positive price. A missing or zero month is the absence of a reading, not a measurement of zero, so it is excluded from every historical derivation on these pages — record high and low, the compound annual rate, month-to-month variability, the seasonal index, and the trailing twelve-month range alike. Month-to-month variability counts only consecutive surviving months, so a dropped month is never bridged and reported as a one-month move. The trailing twelve-month range is bounded by date rather than by counting back twelve readings, so a gap cannot quietly stretch the window past a year. Unreported months are also left out of the per-month table rather than printed as a zero.
- A jurisdiction that has not reported. Where the most recent month carries no usable price, the figure is not filled from an earlier month — that would publish a stale price under a current date — and the jurisdiction is left out of that period’s rank, border-group and national-gap comparisons, all of which are claims about the present. Its page is still served, stating which month is missing and publishing the history that does not depend on a current reading: most recent reported month, record high and low, and the month-by-month table. The page is not withdrawn, because the jurisdiction and its history exist regardless of one unreported month.
- Unavailable figures. Any derived figure whose inputs are missing is shown as a named unavailable state, never as a dash, a zero, or a neutral default. A jurisdiction with no usable latest price is excluded from the ranking entirely rather than sorted as zero, which would otherwise shift every other jurisdiction’s rank.
Update cadence and data lag
We refresh the snapshot monthly, after EIA publishes a new complete month. EIA publishes jurisdiction-level retail-price data on a lag of roughly two to three months; the latest period shown reflects that lag. In practice the newest period shown is about three months behind the calendar: the May 2026 period is the latest complete month available as of this snapshot, which spans 305 monthly periods from January 2001.
Limitations — read before citing
- Not your personal rate. These are state- or DC-wide averages; your utility, rate plan, and usage tier determine what you actually pay.
- Average of all residential customers. The figure blends every utility and rate class in a jurisdiction, so it can mask wide differences between territories within that jurisdiction.
- Unweighted national benchmark. Our national line is a simple mean of jurisdiction averages; it is not EIA’s population- or sales-weighted national figure.
- Retail price only. The series is the retail price of grid electricity — it does not model net-metering credits, demand charges, or fixed monthly fees, which affect real solar economics.
Frequently asked questions
Is this the rate I personally pay?
No. The index reports the EIA-published residential average retail price for each reporting jurisdiction — a state- or DC-wide monthly average across residential customers and utilities. Your own rate depends on your specific utility, rate plan, tier, and time-of-use schedule, and can differ substantially from the jurisdiction average.
Where does the data come from?
Every figure is computed from U.S. Energy Information Administration (EIA), Electricity retail sales — average price by state, the U.S. Energy Information Administration's public electricity retail-sales series, queried from https://api.eia.gov/v2/electricity/retail-sales/data/. We use no proprietary or private data.
Why is the latest month a few months old?
EIA publishes jurisdiction-level retail-price data on a lag of roughly two to three months; the latest period shown reflects that lag. We publish the newest complete month once EIA releases it, so the index runs on roughly an M-3 schedule rather than showing the current calendar month.
Why does this matter for solar?
A verified household tariff helps document utility cash flows, but a jurisdiction average alone does not establish system size, production, price, savings, or payback. Jurisdiction pages therefore present the EIA rate as comparison context and link to a separate tool that requires explicit household and project inputs; no jurisdiction value is prefilled.
How is the national average computed?
The national figure shown here is the unweighted mean of the reporting-jurisdiction averages for each month — a simple cross-jurisdiction benchmark, not a customer- or sales-weighted national rate. EIA also publishes an official national residential average; use that where a population-weighted figure is required.
Can I reuse these figures or the CSV files?
Yes. The tables and CSV downloads are free to reuse with attribution to Geostellar and a link to the page you drew from. A suggested citation appears in the "Use this data" block on every data page.
Changelog
- v2 — August 2026. Added per-jurisdiction derived figures computed from the full series rather than the latest period alone: national rank (with competition tie handling), record high and low with dates, compound annual rate, month-to-month variability band, seasonal index, border-group comparison, and the five-year gap trend. Each is defined under “Derived figures” above. Compound annual rates are annualised over the elapsed months between endpoints; equal prices share a rank both nationally and within a border group; unavailable figures are named rather than shown as a dash or a zero. No source data or previously published figure changed.
- v1 — July 2026. Initial release: national trend, 51 jurisdiction pages (50 states plus the District of Columbia), 305 monthly periods through May 2026, CSV downloads, and this methodology.
Corrections
If a figure does not reconcile with the EIA source, email corrections@geostellar.com with the page URL and the period in question. Confirmed errors are corrected in the next snapshot and noted in the changelog above.
Solar Energy Wiki