Heat pump or gas boiler?
The COP on the datasheet is measured at 7 °C outside and 35 °C in the pipes. In winter, with radiators and damp air, a heat pump does worse. Start from the gas you burn today: the calculator works out the efficiency month by month with your town's climate and tells you what you would spend on electricity. Everything runs in your browser.
[[ t.error_title ]]
[[ t.error_load ]]
[[ t.error_title ]]
[[ errorText ]]
[[ result.saving >= 0 ? t.out_saving : t.out_loss ]]
[[ money(Math.abs(result.saving), 0) ]]
[[ fmt(t.out_summary, { gas: money(result.gasCost, 0), hp: money(result.hpCost, 0), pct: pct(Math.abs(result.savingShare)) }) ]]
[[ fmt(t.out_place, { name: climate.name, prov: climate.prov, elev: num(climate.elev, 0), tdesign: num(climate.tdesign, 1) }) ]]
- [[ t['stat_' + s.k] ]]
- [[ s.v ]]
- [[ s.help ]]
- [[ t['series_' + s.k] ]]
[[ t.months_long[hover.i] ]]
- [[ t['series_' + s.k] ]] [[ money(hover.m[s.k], 0) ]]
- COP[[ num(hover.m.cop, 2) ]]
- [[ t.col_frost ]][[ pct(hover.m.frost) ]]
[[ t.chart_help ]]
[[ t.table_toggle ]]
| [[ t.col_month ]] | [[ t.col_tmin ]] | [[ t.col_tmax ]] | [[ t.col_rh ]] | [[ t.col_frost ]] | COP | [[ t.col_kwh ]] | [[ t.series_gasCost ]] | [[ t.series_hpCost ]] |
|---|---|---|---|---|---|---|---|---|
| [[ t.months_short[m.month] ]] | [[ num(m.tmin, 1) ]] | [[ num(m.tmax, 1) ]] | [[ m.rh ]]% | [[ pct(m.frost) ]] | [[ num(m.cop, 2) ]] | [[ num(m.kwh, 0) ]] | [[ money(m.gasCost, 0) ]] | [[ money(m.hpCost, 0) ]] |
| [[ t.col_year ]] | [[ num(result.scop, 2) ]] | [[ num(result.kwh, 0) ]] | [[ money(result.gasCost, 0) ]] | [[ money(result.hpCost, 0) ]] | ||||
[[ t.table_help ]]
How it works
The starting point is your gas bill, not a model of the house: what you burned already says how much heat you need, with your insulation and your habits. The calculator turns it into useful heat, then asks how much electricity an air-to-water heat pump would need to make it, hour by hour, in your town's climate.
From gas to heat
One standard cubic metre (Smc) of natural gas gives about 9.6 kWh of heat. The boiler delivers a share of it, its efficiency. Space heating is spread over the days of the year by degree-days: each day weighs as much as its mean temperature falls below 16 °C. Hot water is the same all year round.
heat = Smc · 9,6 kWh · efficiency
COP, hour by hour
A heat pump moves heat from the outdoor air into the water of the heating system. The bigger the lift between the two temperatures, the more electricity it needs. The theoretical limit is the Carnot cycle, which only depends on those two temperatures (plus a couple of degrees lost in the heat exchangers). A real unit reaches a fraction η of it, and k fits the curve to the rated COP of your unit.
COP = k · η(T) · (Tflow + 2 + 273,15) / (Tflow + 2 − T + 6)
The fraction η comes from the Heat Pump Keymark test data of 124 air-to-water heat pumps running on R32 and R290: about 0.49 at −7 °C, 0.58 at 2 °C and 0.59 at 7 °C. With a rated A7/W35 COP of 4.6, at 2 °C the COP drops to about 3.9 with 35 °C water and to about 2.8 with 55 °C water.
Water temperature
The system does not always run at its top temperature: a well set up heat pump follows a weather compensation curve. The water reaches the value you entered only in the coldest hours (the town's design temperature, beaten in one hour out of a thousand) and falls along a straight line to 20 °C when it is 20 °C outside, never below 25 °C. Domestic hot water is always heated at 55 °C.
Humidity and defrosting
Below 6-7 °C the outdoor coil, which runs a few degrees colder than the air, drops below zero. If the air is damp, its moisture freezes on the coil and the unit has to stop and melt it, using energy without heating the house. For every hour the calculator estimates how much water can freeze on the coil. The lab tests behind η already include defrosting at a standard humidity (about 84% at 2 °C), so only the difference counts: more in the foggy days of December, less on dry days. The "frost hours" column says in how many hours of the month frost builds up.
Tips
- The rated COP is a full load lab figure. The best number to compare two units is the SCOP on the energy label, given separately for 35 °C and 55 °C. The seasonal COP worked out here is the same idea, with your own climate.
- Water temperature matters more than anything else. With radiators, find out whether 45 °C is enough: it often is, in an insulated home or with generous radiators. Every 10 °C less saves about 12-14% of the electricity.
- A higher boiler efficiency means your gas became more heat, so the heat pump needs more electricity to replace it. Do not overrate it: an old or oversized boiler often sits below 85%.
- A heat pump for an average home draws 2-3 kW in the coldest hours, on top of your other appliances. On a 3 kW Italian meter you often need more capacity: put it in the extra electricity costs.
- It is an estimate. It does not size the unit: if it is too small, an electric heater with COP 1 kicks in during the coldest hours. It leaves out solar panels, time of use tariffs, incentives and the purchase price, and assumes the house is heated as it is today.
Data sources
Climate: hourly temperature and dew point 2016-2025 from the ERA5-Land reanalysis (0.1° grid, about 9 km), corrected for the town's elevation. Contains modified Copernicus Climate Change Service information; neither the European Commission nor ECMWF is responsible for any use made of it. Fetched through Open-Meteo (CC BY 4.0). COP curve: calibrated on the parameters of the hplib database (Forschungszentrum Jülich, MIT licence), derived from public Heat Pump Keymark data.