Methodology
We publish every formula and assumption we use. This page is versioned: changes are dated, and previous versions remain accessible via this site's git history.
1. Sources of truth
- Heat-pump models — EPREL Public API (European Commission, in force from 3 June 2024 T&C). Data refresh weekly; model parameters captured at supplier registration.
- Energy prices — Eurostat datasets
nrg_pc_204(electricity, household band DC, 2 500– 4 999 kWh/yr) andnrg_pc_202(gas, household band D2, 20–200 GJ/yr). Refreshed semi-annually after Eurostat publication. - Climate — NASA POWER point climatology at national capital coordinates. 30-year monthly and annual means.
- Grid CO₂ intensity — European Environment Agency (EEA) annual report on greenhouse gas emission intensity of electricity generation, latest published year.
- Subsidies — captured manually against the official programme page; last_verified_at shown per entry.
2. Payback calculator (v1.0)
All quantities in kWh of useful heat delivered to the home.
current_fuel_purchased = annual_heat_kwh / current_efficiency current_annual_cost = current_fuel_purchased × current_fuel_price hp_electricity_kwh = annual_heat_kwh / hp_scop hp_annual_cost = hp_electricity_kwh × electricity_price annual_savings = current_annual_cost − hp_annual_cost net_capex = max(0, hp_capex_eur − subsidy_eur) payback_years = net_capex / annual_savings (∞ if savings ≤ 0) cumulative_savings = annual_savings × horizon − net_capex
Boiler conversion efficiencies: gas 92%, oil 88%, LPG 90%, pellets 85%, wood 75%, coal 70%, district heating 95%, direct electric 100%. These are typical modern values; older units are lower in practice.
3. Sizing calculator (v1.0)
peak_load_w = area_m² × specific_load × climate_factor
+ dhw_reserve (1 000 W if include_dhw)
recommended_kw = peak_load_w / 1 000 × safety_margin (default 1.15)
annual_heat_kwh = peak_load_kw × full_load_hoursSpecific load by insulation grade (W/m² at design temperature): poor 90, moderate 60, good 40, very good 25, passive 12. Climate zone factor: warmer 0.8, average 1.0, colder 1.2. Full-load hours: warmer 1 500, average 1 900, colder 2 400.
4. Subsidy calculator (v1.0)
For each active programme in the country we apply per-programme rules where structured (e.g. Germany BEG bonus stacking, France MaPrimeRénov' income bands), or fall back to min(percent_of_cost_max × capex, max_amount_eur). We return all programmes ranked by estimated grant.
5. CO₂ savings (v1.0)
fuel_co2 = current_fuel_purchased × fuel_co2_g_kwh / 1 000 hp_grid_co2 = hp_electricity_kwh × grid_co2_g_kwh / 1 000 annual_co2_saving = fuel_co2 − hp_grid_co2
Direct combustion factors (g CO₂eq/kWh of fuel): gas 200, oil 267, LPG 215, pellets 18 (biogenic), wood 18, coal 340, district heating 250 (EU weighted average — varies hugely per city), direct electric uses the country's grid intensity.
6. Limitations
- Tariffs assumed constant over the horizon — we do not project inflation.
- SCOP is a steady-state value; real-world performance varies.
- Subsidy outputs are illustrative — real eligibility depends on documentation, deadlines and installer certification we cannot verify automatically.
- Climate point is the national capital; for larger countries (FR/DE/IT/ES) regional climate diverges considerably.
7. Versioning
Each calculator carries a version (currently v1.0). When we change formulas or coefficients, we increment the version and note the change on this page.
8. Data corrections
Spotted a wrong number? Email us; we typically correct within 5 working days and re-publish snapshots from the corrected date onward.