Download the data
Every price and every derived figure on this site, in two files, under a licence that lets you use them. If you would rather check the arithmetic than take it on trust, start here.
The files
- heat-pump-running-cost-by-state.csv — one row per state, 19 columns.
- heat-pump-running-cost-by-state.json — the same rows, plus the assumptions and the stated limitations as structured fields.
All 51 states including the District of Columbia. 45 carry a gas price; the other 6 do not, because EIA has not published a complete December to February residential gas season for them. Prices are the December 2025 to February 2026 mean, pulled .
What the columns mean
| Column | Meaning |
|---|---|
| electricity_usd_per_kwh | EIA residential electricity price, by state, heating season mean. |
| gas_usd_per_therm | EIA residential natural gas, converted from $/Mcf at 1,037 BTU per cubic foot. Empty where EIA has not published a complete season. |
| propane_usd_per_gallon | EIA propane price for the region named in propane_price_area, not for the state. |
| heating_oil_usd_per_gallon | EIA heating oil for the region named in heating_oil_price_area. Published for PADD 1 and 2 only; elsewhere the national figure. |
| annual_heating_degree_days | Census division normal, not a state figure. |
| electricity_to_gas_ratio | Price of a kWh of electricity divided by the price of a kWh worth of gas. |
| breakeven_ratio | The ratio below which the heat pump wins, set by effective COP divided by AFUE. |
| *_usd_per_kwh_heat | Cost to deliver one kWh of heat with that system, after efficiency. |
| verdict_vs_gas_furnace | One of heat_pump_cheaper, incumbent_cheaper, too_close_to_call, no_gas_price_published. |
Where these numbers come from
Not from a spreadsheet anybody maintains by hand. One script calls the EIA Open Data API v2 and pulls five series, then writes the file these downloads are generated from.
| EIA endpoint | Series | Granularity |
|---|---|---|
| electricity/retail-sales | Residential electricity price | By state, monthly |
| natural-gas/pri/sum | Residential natural gas price | By state, monthly |
| petroleum/pri/wfr | Propane, EPLLPA | By PADD region, monthly |
| petroleum/pri/wfr | No. 2 heating oil, EPD2F | By PADD region, monthly |
| steo | Heating degree days, ZWHD_<division>_10YR | By census division, ten year average |
The season window is fixed, not latest-available. The script computes the most recent complete December to February window and averages across it, using identical months for every state. EIA's residential price is revenue divided by volume, so a summer month roughly doubles the apparent gas price once heating volume collapses and only the fixed customer charge is left to divide; and because states report on different lags, "latest available" would silently compare different months in different states. This site published that mistake before catching it. The window advances on its own each March.
Missing months are dropped, never interpolated. A state or region missing any month of the season is discarded rather than filled in. That is why 6 of these rows carry an empty gas column. The full pipeline is documented here.
What the numbers assume
A cold climate heat pump at HSPF2 11.0, giving an effective COP of 2.64 once 10% of delivered heat is attributed to electric resistance backup at COP 1.0. The gas furnace is 95% AFUE, propane 95%, oil 83%. Change any of it on the calculator, or read the methodology for the equation and every constant.
What is wrong with it
Stated here rather than buried, because a dataset with no stated limitations is one you should not trust. Gas standing charges are not modelled, which biases every gas comparison in favour of gas, and the effect grows the better insulated the house is. Propane and heating oil are regional rather than state figures. Heating degree days are division normals. The full list is on the methodology page, and anything this site has got wrong and then fixed is in corrections.
Who tends to use this
Researchers and journalists who need state level heating fuel prices without rebuilding the pipeline, and contractors putting a defensible number in front of a customer. Both are welcome, and neither needs to ask.
Citing it
HeatPumpMath, Heat pump running cost by US state, December 2025 to February 2026 EIA heating season, retrieved 31 August 2026. https://heatpumpmath.com/data/
Or work it out for your own house
State averages are a starting point, not your bill.
Open the calculator