Where heat pumps pay off in Minnesota

In a typical Minnesota house heated with oil, a heat pump saves the most near Grand Marais ($5,921 a year) and the least near Pipestone ($3,944). Typical savings $4,350 a year on a $6,700 heating bill. Pays for itself within 10 years in 100% of its ZIP codes with a hired installer, 100% if you install it yourself.

Same typical house everywhere: 1,800 sq ft, built 1970 to 1989, heating costs only, 93 places in Minnesota. How

Show Savings a yearPayback time
Installed by A contractorYou (DIY)
Yearly savings on heating (hired installer)
Costs more Under $100 $100-300 $300-600 $600-1,000 $1,000-2,000 $2,000-4,000 $4,000+

Minnesota at a glance

Gas heat

Under $100 a year

Pays for itself within 10 years in 0% of its ZIP codes with a hired installer, 0% if you install it yourself. Typical heating bill today $1,750.

Oil heat

$4,350 a year

Pays for itself within 10 years in 100% of its ZIP codes with a hired installer, 100% if you install it yourself. Typical heating bill today $6,700.

Propane heat

$630 a year

Pays for itself within 10 years in 100% of its ZIP codes with a hired installer, 100% if you install it yourself. Typical heating bill today $3,200.

Electric baseboard heat

$4,250 a year

Pays for itself within 10 years in 100% of its ZIP codes with a hired installer, 100% if you install it yourself. Typical heating bill today $6,600.

Model your own house

These open the home model at the place with the typical house filled in and oil as today's heat. Change anything to match yours.

Every place in Minnesota, oil heat

PlaceHeating todaySaves a year Pays back (contractor)Pays back (DIY)Heat from the heat pump
Grand Marais $9,279 $5,921 1.9 years 1.8 years 95%
Lutsen $8,614 $5,745 1.6 years 1.2 years 94%
Knife River $8,724 $5,599 2.0 years 1.2 years 95%
South International Falls $8,820 $5,437 2.0 years 1.9 years 93%
Swift $8,681 $5,373 2.0 years 2.0 years 93%
Hibbing $8,498 $5,366 2.1 years 1.5 years 94%
Winton $8,587 $5,343 2.1 years 2.0 years 93%
Baudette $8,558 $5,336 2.1 years 1.5 years 94%
Roseau $8,549 $5,300 2.1 years 1.5 years 94%
Middle River $8,535 $5,281 2.1 years 2.0 years 93%
Cloquet $8,102 $5,255 2.1 years 1.3 years 96%
Grand Rapids $8,259 $5,250 2.1 years 1.6 years 95%
Angora $8,468 $5,240 2.1 years 2.0 years 93%
Duluth $8,061 $5,236 2.1 years 1.3 years 96%
Eveleth $8,224 $5,232 2.1 years 1.3 years 95%
Longville $8,283 $5,229 2.1 years 1.3 years 94%
Aitkin $8,100 $5,190 2.1 years 1.4 years 95%
Hallock $8,323 $5,146 2.1 years 1.6 years 94%
Duluth (Richard I Bong Airport) $8,003 $5,135 1.8 years 1.3 years 91%
Bemidji $8,217 $5,116 2.2 years 2.1 years 94%
Waskish $7,984 $5,094 2.2 years 1.4 years 95%
Mcgregor $7,772 $5,085 2.2 years 1.4 years 96%
Thief River Falls $8,162 $5,073 2.2 years 1.6 years 94%
Duluth (Duluth Sky Harbor Airport) $7,671 $5,020 1.8 years 0.7 years 93%
Hinckley $7,586 $4,951 2.2 years 0.7 years 96%
Pine River $7,816 $4,950 2.2 years 1.4 years 95%
Park Rapids $7,876 $4,925 2.2 years 1.4 years 94%
Detroit Lakes $7,689 $4,856 2.3 years 1.7 years 94%
Crookston $7,661 $4,854 2.3 years 1.4 years 95%
Finlayson $7,449 $4,848 2.3 years 1.4 years 96%
Long Prairie $7,344 $4,815 2.3 years 1.4 years 96%
Dilworth $7,468 $4,813 2.3 years 1.4 years 96%
Sauk Centre $7,368 $4,805 2.3 years 1.4 years 96%
Brainerd $7,443 $4,790 2.3 years 1.5 years 96%
Moose Lake $7,531 $4,769 1.9 years 0.7 years 90%
Staples $7,330 $4,743 2.3 years 1.5 years 96%
Elbow Lake $7,172 $4,716 2.3 years 1.5 years 97%
Glenwood $7,219 $4,693 2.4 years 1.5 years 96%
Paynesville $7,128 $4,678 2.4 years 1.5 years 96%
Alexandria $7,205 $4,672 2.4 years 1.5 years 96%
Fergus Falls $7,177 $4,664 2.4 years 1.5 years 96%
Mora $7,322 $4,637 2.0 years 0.7 years 91%
Wadena $7,174 $4,608 2.4 years 1.5 years 95%
Little Falls $7,287 $4,592 2.0 years 0.7 years 90%
Morris $7,039 $4,472 2.0 years 1.5 years 91%
Appleton $6,797 $4,463 2.0 years 0.8 years 93%
Benson $6,927 $4,448 2.1 years 1.5 years 92%
Wheaton $6,949 $4,439 2.1 years 1.5 years 91%
Buffalo $6,876 $4,421 2.1 years 0.8 years 92%
Olivia $6,574 $4,419 2.1 years 0.8 years 95%
Rush City $6,900 $4,416 2.1 years 0.8 years 91%
Saint Cloud $6,963 $4,388 2.1 years 0.8 years 90%
Princeton $6,838 $4,382 2.1 years 0.8 years 91%
Ortonville $6,743 $4,368 2.1 years 1.6 years 92%
Cambridge $6,919 $4,352 2.1 years 0.8 years 90%
Willmar $6,777 $4,334 2.1 years 1.6 years 91%
Lake Elmo $6,608 $4,334 2.1 years 0.8 years 93%
Dawson $6,693 $4,323 2.1 years 0.8 years 92%
Hutchinson $6,674 $4,320 2.1 years 1.0 years 92%
Litchfield $6,740 $4,316 2.1 years 0.8 years 92%
Faribault $6,284 $4,253 2.2 years 0.8 years 96%
Maple Lake $6,536 $4,240 2.2 years 0.8 years 92%
Waseca $6,441 $4,234 2.2 years 0.8 years 93%
Plato $6,464 $4,224 2.2 years 0.8 years 93%
Dodge Center $6,473 $4,213 2.2 years 0.8 years 92%
Montevideo $6,480 $4,212 2.2 years 0.8 years 92%
Tracy $6,387 $4,201 2.2 years 0.8 years 93%
Medford $6,443 $4,195 2.2 years 0.8 years 92%
Stewartville $6,427 $4,190 2.2 years 0.8 years 93%
Worthington $6,319 $4,177 2.2 years 0.8 years 94%
Minneapolis (Minneapolis Crystal Airport) $6,412 $4,173 2.2 years 0.8 years 93%
Lakeville $6,443 $4,169 2.2 years 0.8 years 92%
Redwood Falls $6,393 $4,166 2.2 years 0.8 years 92%
Marshall $6,296 $4,137 2.2 years 0.8 years 93%
Albert Lea $6,288 $4,120 2.2 years 0.8 years 93%
Saint James $6,264 $4,114 2.2 years 0.8 years 93%
Eden Prairie $6,288 $4,088 2.2 years 0.8 years 92%
Dennison $6,250 $4,088 2.2 years 0.8 years 93%
Jackson $6,193 $4,088 2.2 years 0.8 years 93%
Canby $6,121 $4,081 2.2 years 0.8 years 94%
Slayton $5,974 $4,078 2.2 years 0.8 years 96%
New Ulm $6,153 $4,074 2.2 years 0.8 years 93%
Kasota $6,194 $4,060 2.3 years 0.8 years 93%
Minneapolis (Minneapolis Anoka Co Airport) $6,146 $4,055 2.3 years 0.8 years 94%
Saint Paul $6,111 $4,048 2.3 years 0.8 years 94%
Preston $6,208 $4,048 2.3 years 0.8 years 93%
Fairmont $6,089 $4,036 2.3 years 0.8 years 94%
Homer $6,006 $4,024 2.3 years 0.8 years 95%
Inver Grove Heights $6,039 $4,006 2.3 years 0.8 years 94%
Windom $6,005 $3,981 2.3 years 0.8 years 94%
Luverne $6,154 $3,967 1.8 years 0.8 years 96%
Minneapolis (Minneapolis-St Paul Intl Airport) $6,040 $3,965 2.3 years 0.8 years 93%
Pipestone $5,916 $3,944 1.8 years 0.8 years 99%

Contractor installed unless marked DIY. Place names are the nearest ZIP code city to each weather station. Download all places.

Neighboring states

How these numbers are made

Every place on the map is the area closest to one of 1,983 weather stations. For each one we ran the HeatPushers home model (the same code you can use for your own house) with the past year of hourly weather at that station (2025-10-28 to 2026-10-28) and the state's average electricity and fuel prices from the EIA (the US average where the EIA has no figure for the state).

  • The house: 1,800 sq ft, 2 stories, built 1970 to 1989 (wall insulation R-14, attic R-16), 3 bedrooms, thermostat at 70°F. The heat pump heats the whole house.
  • Heat today: gas furnace (80% efficient); oil boiler (85% efficient); propane furnace (92% efficient); electric baseboard (100% efficient). Furnace houses have ducts inside the heated space; boiler and baseboard houses have no ducts, so only ductless heat pumps count there.
  • The heat pump: out of 772 models sold online, the one with the lowest 10-year cost (price, installation and energy), in the number of units that costs least. The old heat stays and takes over in the hours it is cheaper to run.
  • Installation: a contractor at $2,500 per indoor unit, or yourself: $350 of tools once and $300 of materials per indoor unit.
  • Payback: what it costs up front divided by what it saves a year. Under 10 years means it pays for itself within the lifetime we assume.
  • Heating only. Cooling is left out. A heat pump also cools: against old central AC that saves a bit more; in a house without AC, using it in summer costs extra.
  • Not included: rebates and tax credits, electrical upgrades, new ductwork, heat-pump electricity rates and financing.
  • Shares of ZIP codes: each place counts by how many US ZIP codes are closest to its station, so cities count more than empty desert.

Your house is not this house. Size, insulation, prices and what you already own change the answer, often a lot. Use "Model your own house here" on the map, or start at the home model. More: full method and how we know.

Embed this map