Energy & emissions of a heat-pump upgrade
⌂ All tools ↳ Grid Dashboard ↳ Retrofit Explorer

Air-source heat pumps · ON · QC · AB

Would a heat pump cut your emissions?

An hour-by-hour simulation of one typical year — your home, your heating, real cold-climate equipment curves, and each province's real grid. Change anything below and every chart recomputes instantly.

Base information
Heat pump
−5 °C
GHG accounting
2.0 %/yr
Loading equipment curves, grid data and weather…

The 8,760 hours behind these numbers

Every hour of the simulated year, row by row — the same figures the charts and totals above are built from, with nothing rounded away or averaged out.

Show the hour-by-hour table (8,760 rows)

Each row is one hour of the typical-meteorological-year weather record for the selected city. Baseline COP and Backup COP are the fixed efficiencies you set (or the defaults) — they don't vary hour to hour in this model, unlike the heat pump's COP and capacity, which follow outdoor temperature. Costs use the currently selected electricity plan and are $0 for a component that draws no energy that hour.

When Weather & load Baseline — current system Heat pump Backup Standard AC
Temp°C LoadkW Status COP EnergykWh GHGkg Cost$ COP CapacitykW EnergykWh GHGkg Cost$ COP EnergykWh GHGkg Cost$ COP CapacitykW EnergykWh GHGkg Cost$
Run a scenario above, then open this table.
GHG and cost are per-hour splits of the same figures totalled in the KPIs and charts above — they will sum to the annual totals (to rounding). A given hour is either a heating hour or a cooling hour, never both (see the balance-point gap in the methodology) — Status reads HP heat / HP + Backup heat / Backup heat / Cooling / No load. The Heat pump columns are the selected unit in whichever mode that hour calls for: its heating COP/capacity/energy on a heating hour, its own cooling-curve COP/capacity/energy on a cooling hour (blank if it has none on file) — never both, so one column group covers it. Standard AC is a separate, always-alternative option for the same cooling hour (not sequential like heat pump + backup), shown alongside the heat pump's cooling numbers so you can compare them directly. Columns for the regime that doesn't apply that hour (Baseline/Backup on a cooling hour, Standard AC on a heating hour) are dimmed rather than removed, so the table stays one width. The heat pump's heating-mode COP and capacity are shown even on hours it doesn't run (e.g. locked out by cold) so you can see why; its cooling-mode COP/capacity and Standard AC's are only computed on hours that actually need cooling, so they read "–"/0 the rest of the year.

Assumptions & methodology

Every number above is a modelled estimate — here's exactly how it's built, and what to distrust.

Show assumptions — how this is calculated, and what to distrust

This tool runs an hour-by-hour simulation (8,760 hours, one typical year) in your browser — no server, no dependencies. It is a screening tool: useful for direction and rough magnitude, not a substitute for a heat-loss assessment or a contractor's quote. Full derivations and validation tables are in HeatPump/METHODOLOGY.md in the repository.

Pipeline overview
what you set outside data (in-box)
City Load & balance pt. Tier & capacity Switch-over temp Basis & toggles Province Weather 8,760 hrs one year Heat load Hourly heat needed Heat pump Capacity, COP & refrigerant Backup Switch-over to backup Emissions Grid + combustion + fugitive Costing Electricity & fuel rates ERS data ERS · HRAI · NEEP + spec sheets Modeling Runs all six steps together, hour by hour, for the full year Heat needed Utility needed GHG emissions Cost hourly, 8,760 hrs/yr hourly, 8,760 hrs/yr hourly, 8,760 hrs/yr hourly, 8,760 hrs/yr Six inputs run through one hour-by-hour model, producing four hourly outputs for the year.

Six inputs set up the model; heat load and heat pump details are also grounded in outside data (tagged in-box). The steps below walk through each one's formulas and sources in detail.

Step 1 — Weather

  • CityHourly temperature: CWEC2020 Typical Meteorological Year, 8,760 hours, one weather-station record per city. Source: Environment and Climate Change Canada engineering climate datasets.
  • CityDesign temperature (used to size the default heat load): the 2.5th-percentile January dry-bulb at each home's own weather station, house-weighted mean per city. Source: NBC Appendix C climatic design data, joined to HOT2000 weather-station records — HeatPump/data/processed/city_design_temps.json.
  • Weather year2001–2025, plus "coldest" and "mildest," re-run the whole year against that year's actual recorded temperatures instead of the TMY. Source: same ECCC stations, historical observations.
    • Coldest year: the year with the highest heating-degree-days (HDD), calculated hourly by comparing the outdoor air temperature against a defined indoor air temperature, set at 18°C for this analysis.
    • Mildest year: the year with the lowest HDD, same calculation.

Step 2 — Heat load

Two sliders drive this step directly — there's no home-type dropdown picking them for you. Together they set the straight line below.

  • Design heat loadThe kW the home needs on the city's coldest design day.
  • Zero-heat temp.The outdoor temperature above which the home needs no added heat. The model has no separate calculation for internal/solar gains — this one number stands in for them, the same way it does for the "effective" balance points in the real-homes explorer below.

Load(hour) = UA × max(0, zero-heat temp − outdoor temp)

  • UA = design_load_kW × 1000 ÷ (zero-heat temp − city design temp).
  • CityDefault slider values: the household-weighted median design load and zero-heat temperature across 4 EnerGuide archetypes for the selected city. Source: HeatPump/data/processed/archetypes.json, built from ERS retrofit records.
  • Domestic hot water is excluded from the load.
Real homes explorer — what real homes in look like

Every ERS-audited home in , before any retrofit — filter by house type and see how load varies with outdoor temperature for the worst, best and typical homes in that filter, real audited homes. Proof of concept.

Filter homes

The "real homes" section above plots every ERS-audited home in the selected city, pre-retrofit condition — up to ~290,000 homes per city, not a sample.

QuantityERS fieldNotes
Peak loadEGHDESHTLOSSDesign heat loss at the city's design temperature, taken directly from the audit.
Energy consumedEGHFURNACEAECFuel or electricity used by the heating system — not the same as heat delivered.
Seasonal efficiencyEGHFURSEASEFFAFUE-style percentage; >100% for a heat pump.
Heat delivered—consumed × (efficiency ÷ 100). Homes with efficiency outside 30–400% are excluded and counted per city (not silently dropped).

Balance point (the "0-heat" temperature): solved, not measured.

  • Model: a straight line from outdoor temperature to heating load, no internal or solar gains.
  • The line's slope (UA) is fixed from EGHDESHTLOSS ÷ (21°C − city design temp). 21°C is HOT2000's default indoor design setpoint — the temperature EGHDESHTLOSS is computed at.
  • The balance point is then the one unknown solved so that integrating the load line over a full TMY year reproduces the home's own delivered annual energy.
  • Because gains are excluded by construction, this is an effective balance point — it absorbs real internal/solar gains, occupant behaviour, and TMY-vs-actual-year weather differences into one number, not a physical measurement.
"Worst" and "best" are the 99th/1st percentile of a combined peak-load and delivered-energy ranking within the filtered set — not the literal extreme — so one mis-keyed audit row can't stretch the display. "Average" is the arithmetic mean of the filtered set, not any single real home.

Steps 3–4 — Equipment

Current heatingIts efficiencyBaseline — the system you have today. Assumed to cover 100% of the load on its own, with no partial-load derating or cycling losses. "Its efficiency" defaults to a typical AFUE for the fuel picked and can be dragged to match a real system:

FuelDefaultAdjustable rangeRoughly corresponds to
Natural gas80%70–98%80% ≈ an older standard-efficiency furnace · 95–98% ≈ a newest-generation condensing furnace
Oil83%60–90%83% ≈ typical in-service oil furnace · 90% ≈ a newer high-efficiency model
Propane90%75–96%90% ≈ mid-efficiency · 96% ≈ a newest condensing model
Electric baseboard100%95–100%Resistance heating — essentially 100% by definition

Heat pump sizeHeat pump tierProject — the heat pump. Tier × capacity band selects one of 9 real, individually-certified units (3 performance tiers × 3 capacity bands: <18k, 18–30k, 30–42k Btu/h). No scaling, no averaging between models — the tool simulates each unit's own published capacity and COP curve.

How the 9 units were chosen:

  1. Sampling frame: every AHRI-certified reference number appearing in Canada's EnerGuide/ERS retrofit audit records — 439,975 record appearances across 15,148 distinct certified models. Source: NRCan EnerGuide/ERS.
  2. Bucketing: each certified model's own AHRI certificate is placed on a 3×3 grid:
    AxisBandsWhat it measures
    COP at 5°F≤1.8 / 1.8–2.0 / >2.0Efficiency in deep cold. 1.75 is the shared certification floor (ENERGY STAR, CEE, NEEP); 55% of records report exactly 1.80.
    Capacity maintenance<0.60 / 0.60–0.80 / ≥0.80Capacity at 5°F ÷ capacity at 47°F — how much heat the unit still delivers in cold weather. Same definition used by ENERGY STAR v6.2, CEE, and NRCan Greener Homes.
  3. Representative selection: within each of the 9 cells, we work down the list of most-installed currently-certified models (by ERS appearance count) and take the first whose manufacturer publishes a usable performance table — where the most-installed unit has no spec sheet we can read, the next most-installed is used, and so on. Every unit is traceable to its own AHRI number, and each cell records which units were passed over and why.
  4. Curves: capacity and COP vs. outdoor temperature come from that unit's own published manufacturer datasheet (submittal / product data), not the certificate — AHRI publishes capacity at three temperatures and COP at only one, not enough points to simulate a season. Where no datasheet table exists, the NEEP cold-climate listing is used instead, cited per model. When a datasheet and its own certificate disagree, the certificate governs which cell the unit sits in; the datasheet governs the simulated curve.
Provisional — under review. The heat pump selection is temporary and awaiting review. In the 18–30k band the tier labels don't match the units' specs: the Moovair DMA24HOS20230E7 sits in Premium with a capacity maintenance of 0.800, below the Mid-Range GREE GUD36W/A-D(U) at 0.917. The other seven cells are correctly ordered.
~32% of ERS record appearances are for models with no certified 5°F rating or rated capacity and cannot be bucketed — 99% of that group is discontinued/delisted equipment that predates the rating. Counts are ERS record appearances, not installed units (a home audited twice counts twice; retrofit and new-construction records are pooled).
  • Lockout temperature: a fixed assumption per tier — low −15°C, mid −20°C, high −25°C — not each unit's own published minimum (which range −15 to −30°C across the 9 units and don't line up cleanly by tier). Output is zero below the assumed lockout; no derating.
  • Switch-over temp.Switch-over temperature (dual-fuel backup) is a separate, user-adjustable input: the temperature at which the system hands off to its furnace. It can be set warmer than the tier lockout; below the tier lockout the heat pump cannot run regardless of this setting.
Installed-capacity vs. audited design-heat-loss ratios in ERS retrofit records with a certified heat pump are widely scattered (median ratio ≈0.66, 24% within ±20%) — no single "correctly sized" ratio is implied or suggested by the tool. Source: ERS retrofit records.
Underlying data — tier scatter, equipment curves & spec-sheet table

Every AHRI-certified unit appearing in the EnerGuide/ERS data, positioned by COP at 5°F and capacity maintenance, sized by ERS appearance count. ★ marks the 9 cells this tool simulates.

Bubble area ∝ ERS appearances.

Capacity and COP vs. outdoor temperature for the 9 simulated units, digitized from each unit's manufacturer datasheet. Solid = interpolated between published points; dashed = extrapolated.

Spec-sheet table — calculated vs. AHRI-certified vs. NEEP, heating & cooling (−30°C to 55°C)

One row per whole-degree C the unit publishes a heating or cooling point at (heating runs roughly −30 to 20°C, cooling roughly −15 to 55°C — most units overlap in between, where both halves of the row are populated). Calc. is the digitized curve above. For heating, AHRI is the certificate's two anchors (COP + capacity at max compressor speed, 5°F; rated capacity, 47°F) and NEEP republishes the same certificate's Min/Rated/Max Heating table at more temperatures. For cooling, AHRI is the certificate's single published anchor (rated capacity + EER2 converted to COP, 95°F/35°C — AHRI does not publish a cooling capacity-maintenance curve the way it does for heating) and NEEP republishes the same certificate's Min/Rated/Max Cooling table at 95°F and 82°F. Blank cells mean no source publishes a value there — including every cooling column for a unit with no digitized cooling curve on file.

T (°C)Heating COPHeating capacity (Btu/h)Cooling COPCooling capacity (Btu/h)
Calc.AHRINEEP minNEEP ratedNEEP maxCalc.AHRINEEP minNEEP ratedNEEP maxCalc.AHRINEEP minNEEP ratedNEEP maxCalc.AHRINEEP minNEEP ratedNEEP max

digitized datasheet point · AHRI/NEEP certified data

Energy purchased

Electricity purchased = heat delivered ÷ COP (heat pump) or ÷ 1.0 (electric baseboard). Below the tier's lockout temperature (dual-fuel backup) or the heat pump's own minimum operating temperature (electric backup), backup fuel or electricity covers the load instead. No assumptions beyond the equipment curves and heat load (Step 2) feed into this step.

Dual-fuel backup's own efficiency is a fixed, not user-adjustable, AFUE per fuel — unlike the baseline system's efficiency above, which is a deliberately simplified assumption rather than a spec'd furnace:

Backup fuelAFUE
Gas furnace95%
Oil furnace85%
Propane furnace90%
Electric resistance100%

Steps 5–6 — GHG emissions

Grid emissions

Hourly grid intensity: a temperature × hour-of-day × season surface, calibrated against published provincial intensities (within ±6%). Source: 2019–2026 IESO / AESO / Hydro-Québec generation-by-fuel data (Hydro-Québec's open-data historical production export — downloaded manually, no stable direct-link URL recorded in the pipeline). Decomposed as EF = annual level × shape, so the shape (weather/time pattern) applies on top of the most recent complete year's level.

BasisDefinition2025 value
MarginalNew load served by the marginal generator — gas, whenever gas is runningON/AB ≈ 500 g/kWh
Hourly average (default)Fleet-average intensity from the surface, hour by hourON ≈ 97 · AB ≈ 414 · QC ≈ 0.02 g/kWh
ECCC yearlyProvince's published National Inventory Report annual average — one flat numberNational ~100 g/kWh (2022)
  • ECCC yearly is the only basis available for provinces without an hourly pipeline (BC, MB, SK, NS, NB…), where it's paired with a flat, labelled marginal estimate — and where it, rather than the hourly average, is what the page opens on. Source: ECCC National Inventory Report.
  • ECCC yearly source: StatCan table 38-10-0097 ÷ 25-10-0015.
Ontario's average intensity is rising as gas generation grows. Quebec's marginal figure does not model higher-carbon imports (~35 g/kWh) that new winter demand may draw on in practice — Quebec's "after" number is a floor, not a ceiling.

Line loss converts delivered electricity (the home's meter) into the generation-equivalent kWh the grid EF above is computed against — bundled onto the same Yes/No "Upstream losses" switch as the upstream-methane term below (No zeroes both).

ProvinceLine lossSource
Ontario7.4%IESO transmission loss (~2%) compounded with the Ontario Energy Board's audited distributor Total Loss Factor (5.31–5.42%, 2005–2006)
Alberta7.68%CEA Electricity Consumption Report, transmission+distribution combined (2002)
Quebec7.5%Régie de l'énergie, blended transmission+distribution loss factor
BC / MB / NS / SK5%World Bank/IEA Canada-wide transmission-and-distribution loss estimate
The Ontario, Alberta and Quebec figures are the most specific sources found; all three are dated 2002–2008, not current-year measurements.
Other fuel emissions
FuelCombustion factor
Natural gas185.4 g CO₂e/kWh (fuel input)
Oil255.4 g CO₂e/kWh
Propane213.6 g CO₂e/kWh

CO₂ + CH₄ + N₂O, residential rows. Each is derived in code from a volumetric factor and an energy content rather than typed in as a finished number, so the two can never disagree: gas (1921 + 0.072) g/m³ ÷ 10.3611 kWh/m³, oil (2753 + 0.026 + 0.006) g/L ÷ 10.7778 kWh/L, propane (1515 + 0.027 + 0.108) g/L ÷ 7.0917 kWh/L. The same energy contents convert litres to kWh in the cost card, and m³ to leaked-methane mass in the upstream term. Source: ECCC National Inventory Report; conversions shared with Python/ghg_factors.py, the retrofit pipeline's factor module.

Refrigerants

Annual in-service leak (adjustable, default 2%/yr) + amortized end-of-life loss (15% of charge over a 15-year life), each weighted by global-warming potential and factory charge mass — both specific to the selected refrigerant.

RefrigerantGWP100GWP20Charge, 2 tonCharge, 3 tonCharge, 4 tonCharge source
R-410A2,2564,7153.26 kg4.63 kg6.01 kgmanufacturer spec sheets, n=6
R-327712,6902.08 kg2.96 kg3.84 kgratio-scaled from R-410A, unverified
R-454B5311,8545.90 kg6.72 kg7.55 kgmanufacturer spec sheets, n=4
R-290 (propane)0.020.070.45 kg0.64 kg0.83 kgratio-scaled from R-410A, unverified

GWP: blend-weighted from constituent-molecule GWPs (R-410A = 50% R-32 + 50% R-125; R-454B = 68.9% R-32 + 31.1% R-1234yf, composition per Chemours' Opteon XL41 datasheet). Source: IPCC AR6 WG1 Ch.7, Table 7.SM.7. The GWP horizon toggle switches between the 100-year figure (default, standard emissions-inventory basis) and the 20-year figure (near-term forcing — the horizon this page's upstream-methane term below already uses).

Charge mass: charge_kg = a + b × rated_capacity_kW, fitted to factory-charge figures read from manufacturer spec sheets (GREE, Carrier, TOSOT, LG, Lennox — every point and source file in HeatPump/reference/refrigerant_charge_datapoints.csv). No R-32 or R-290 unit was found with a stated charge, so those two are scaled from the R-410A curve by a peer-tool charge ratio (Building Decarbonization Alliance's Heat Pump Lifecycle Emissions Explorer).

Refrigerant charge sample sizes (n=6, n=4) are a spot-check, not a systematic market survey. R-32 and R-290 charge figures are not verified against any manufacturer data.
Upstream emissions

Every combustion and grid figure above — the fuel table, the grid-intensity surface, ECCC's own annual averages — counts only combustion/generation-stage emissions. None of them include what it took to get the fuel out of the ground and to the burner or the power plant: extraction, processing, flaring/venting, and pipeline/transport leakage. This is standard practice for national GHG inventories (ECCC's National Inventory Report, and the IPCC methodology it follows, report combustion separately from the fugitive-emissions category), but it means a bare combustion factor understates a fossil fuel's real climate impact unless upstream emissions are added on top — which is what the toggle below does for gas.

One Yes/No switch applies a fixed value for the upstream methane-equivalent adder before combustion (line loss, the other term on this switch, is documented under Grid emissions above). No zeroes it.

  • Upstream methane: 2.14% of gas throughput, weighted at the 20-year methane GWP (85), calibrated so leak% × GWP reproduces a +65% carbon-intensity increase over combustion-only for a single home's gas-to-heat-pump project. Source: The Atmospheric Fund's Fugitive Methane guideline (May 2022), "no pipeline infrastructure change" scenario. TAF attributes that +65% to fugitive methane leakage (+10 points) and non-methane extraction process emissions like flaring and venting (+55 points), which this engine represents as one bundled term rather than two.
Where upstream methane comes from — the map

The "Upstream losses" toggle above adds a methane-equivalent leak rate onto gas heating's emissions. That rate isn't abstract — it comes from real fugitive emissions across the oil and gas sector. This map shows where, using the most recent inventory of its kind.

Fugitive methane emissions, 2016

A Canada map of fugitive oil/gas/coal methane, giving the upstream-methane term above a geographic reference.

  • Source: NASA GES DISC's Global Fuel Exploitation Inventory (GFEI) CH₄, v1, 2016 (Scarpelli et al. 2020, essd-12-563-2020; DOI 10.5067/Q28GFYJYFZ7H).
  • A global 0.1°×0.1° grid of fugitive methane emissions (fuel exploitation, not combustion), spatially allocated to mines, wells, pipelines, compressor stations, storage, processing plants and refineries — all summed into one number per fuel type. The map does not isolate pipeline losses specifically. Native resolution is ~110m N–S per cell, cropped to a Canada land-boundary polygon (the source grid extends into the US along the border, dropped here).
  • 2016 is the newest vintage available at this scope — there's no newer equivalent, which is why the rest of this tool doesn't rely on it for a live number. Treat the map as illustrative of where fugitive methane clusters, not a current-day number for any one facility.
  • Colour scale is log-scaled per selected layer (all-sources / gas / oil / coal); emission density is heavily right-skewed. Drawn with an Albers equal-area conic projection (the standard for Canadian thematic maps) rather than a flat rectangle — chosen because it's equal-area: a patch that looks twice as big on screen really is twice the land area, which matters when colour encodes emissions per km².
A share of nonzero grid cells share an identical value with neighbouring cells — GFEI spreads a region's reported total across cells it can't independently resolve, using one shared modelled rate (78% of nonzero gas cells in Canada, vs. ~1% of oil cells). Those cells are flagged as "background" (flat colour) and can be hidden, separate from "resolved" cells with an independently estimated value. That "region" is a Canadian province: checked by intersecting each shared value's cells against province boundaries (the same geo_json/*.json polygons used elsewhere on this site) — the top repeated gas values are ≥99% contained within a single province (e.g. 10,584/10,620 cells at one shared value fall in NT, 4,499/4,501 at another in SK). The province-shaped edges visible on the map are therefore GFEI's own per-province background allocation, not a projection artifact; hiding background removes them. This bundles all oil/gas/coal fugitive sources together — it is not a pipeline-only layer.
Comparison against published studies
MetricThis toolPublished figure
Seasonal COP (premium unit, ON/QC/AB)≈2.3–2.5≈2.4 (NRCan / field data)
Gas → heat pump, average grid, Ontario−68 to −74%NRCan: significant reduction (average basis)
Gas → heat pump, average grid, Quebec≈−95%NRCan: significant reduction
Gas → heat pump, Albertabarely changed or slightly worseNRCan: same direction
Baseboard → heat pump, ON/AB−50 to −58%Efficiency Canada: 49–77%

Sources: NRCan/CanmetENERGY cold-climate heat-pump report (2022), Canadian Climate Institute's Heat Pumps Pay Off (2023), Efficiency Canada's Heat Pump Myth Buster (2023). Full tables in HeatPump/METHODOLOGY.md.

This tool defaults to the hourly average basis, which is the like-for-like comparison with the published studies above — they use the grid average too. Switching to Marginal in Advanced answers a different question (what the next kWh of heating load draws), and in Ontario and Alberta it roughly quintuples the "after" number, so the two bases are not interchangeable. Corrected 2026-08-19: this passage and the table above previously described marginal as the default, which the page has never done. The grid is calibrated to 2025 (Ontario's intensity has risen since the studies above were published), and homes use the ERS population median (larger than the single reference house those studies model).

Step 7 — Cost

  • Energy priced per hour against each province's current residential rates. Source: canada-utility-rates, from the utilities' own published tariffs.
  • Ontario: Time-of-use (default) or Ultra-low overnight, priced per (month, hour).
  • Quebec: Hydro-Québec Rate D's tier-2 (marginal/top-tier) rate, applied to all modelled electricity. Rate D has no flat residential option; any home with a material electric heating load exceeds the 40 kWh/day first tier on essentially every heating day, so its heating electricity sits in tier 2 regardless of other household usage.
  • Alberta: screening-estimate supplements for transmission (≈$0.017/kWh) and default gas supply (≈$2.25/GJ), flagged on the card.
  • The electricity service charge is identical in both scenarios and excluded. The gas fixed charge is counted only in scenarios that consume gas.
  • Federal consumer carbon charge excluded (set to zero 2025-04-01). Figures are pre-tax.
The number to trust is the difference between scenarios, not the absolute bills — several charges are identical in both and cancel out.
Average costs by province

One representative rate per province, for scale — not what the simulation itself uses (which is hour-by-hour against the home's own simulated load, not a fixed usage split).

Province (city priced)Electricity ($/kWh)Elec. fixed/moNatural gas ($/m³)Gas fixed/moHeating oil ($/L)Sources
Ontario (Ottawa)$0.183$7.53$0.243$28.44$2.432OEB · Enbridge · StatCan 18-10-0001
Alberta (Calgary/Edmonton avg.)$0.207$26.55$0.141$35.57$2.104ENMAX / EPCOR · ATCO · StatCan 18-10-0001
Quebec (Montreal)$0.111$14.04$0.194$15.29$1.966Hydro-Québec · Energir · StatCan 18-10-0001
Ontario's electricity figure blends its time-of-use off/mid/on rates at the Ontario Energy Board's own published "typical" residential usage split (63% off-peak / 18% mid-peak / 19% on-peak) plus delivery/regulatory adders — Alberta and Quebec are flat rates, so no blending applies there. Alberta figures average Calgary and Edmonton, the two cities this tool tracks. Effective dates range 2024-10 to 2026-05 by province and fuel — see prices_json/<prov>.json for exact dates per rate.
Time-of-use & ultra-low-overnight rates, by hour of day (Ontario)

Ontario is the only tracked province with an hour-varying residential rate — Alberta and Quebec both bill a flat $/kWh, so there's no "by hour" shape to chart there. The lines below are Ottawa's own published weekday schedule (identical structure province-wide; only the utility's fixed monthly charge differs by city).

Weekends aren't shown: time-of-use bills every weekend hour at off-peak, and ultra-low overnight bills every weekend hour except the overnight window at off-peak too (no mid/on-peak ever applies on weekends). Ultra-low overnight has no seasonal schedule — its overnight/mid/on-peak hours are the same in summer and winter, unlike time-of-use.

Cooling — "potential AC" scenario

The Heating/Cooling toggle on each of Steps 2–7 switches that step between the heating dispatch (this home's current system vs. the selected heat pump) and this cooling comparison — a standard central air conditioner vs. that same heat pump run in cooling mode instead. All six toggles are linked, so flipping one flips them all. It's a genuinely different comparison, not a before/after: there's no "current AC" baseline, no backup system, and the two options are alternatives, not additive. It does not feed back into any heating number, and the Final numbers section always shows both regardless of which is toggled.

No real cooling data is looked up for this scenario — there is no specific house selected here, just a design heat load. Instead, two correlations found across 209,272 real ERS-audited homes (pooled across the 14 tracked cities) turn the design heat load you've already set into a plausible cooling profile, the same way the heating side already turns your inputs into a load curve, with no extra sizing control needed:

  • Peak cooling from peak heating: cool_peak_kW = 0.2789 × heat_peak_kW + 1.3254 (r = 0.683, R² = 0.467). Physically real, not coincidence — both peaks are driven by the same building envelope (UA, floor area).
  • Annual cooling energy from peak cooling: annual_cool_kWh = 838.3 × cool_peak_kW (a through-origin ratio, r = 0.778). Annual heating and cooling energy do not correlate well with each other (r ≈ 0.2–0.25) — annual energy is dominated by climate-hours and occupant behaviour, which heating and cooling don't share, but peak load in both is dominated by the shared envelope, which is why this second relationship works so much better than heating-energy-to-cooling-energy would.

The cooling balance point (the outdoor temperature above which the home needs cooling) is then solved the same way the heating balance point is: cooling-degree-hours are integrated against this city's own weather year until they match the estimated annual energy, anchored on the fixed 25 °C HOT2000 indoor cooling setpoint (ThermostatCooling — a program constant, confirmed zero-variance across 620,107 real audit records, not an assumption standing in for a missing field).

These are always the estimated fields — two correlations removed from measurement (a correlation-estimated peak, run through a ratio-estimated energy, run through a balance-point solve). They are not shown with the confidence of a real per-house measurement, and are not intended to be: their entire purpose is giving a home with no installed AC — the population a "what would adding AC cost" question is actually about — a plausible cooling profile at all.
The standard AC and the heat pump's own cooling curve

The "standard AC" baseline is one representative unit — a Goodman GLXS4B, 3-ton (36,000 Btu/h), up to 15.2 SEER2 — extracted the same way the heat pump curves are: capacity and power draw read directly off the manufacturer's own Performance Data table (75–115 °F outdoor, fixed 80 °F/67 °F indoor condition), not a digitized chart and not an assumed SEER. One size covers 92–99.5% of homes by peak cooling load across the 14 tracked cities (worst case Vancouver, small sample), so a single baseline is a reasonable stand-in for "a typical central AC," not a claim that every home needs exactly this unit. Outside its published 23.9–46.1 °C range the curve is held flat, not linearly extrapolated — a deliberately conservative, bounded choice given how little margin sits between that range and a typical solved balance point (17–21 °C).

Where the selected heat pump's own spec sheet publishes a temperature-indexed cooling table (all 9 of the 9 tier×size cells on this page, since the 2026-09-05 reversion to direct spec-sheet interpolation — see HeatPump/METHODOLOGY.md "Cooling curves reverted to spec-sheet interpolation"), that real curve is used for the "cooling mode" comparison instead of a second generic assumption. Both curves are normalized the same way as heating's, but on 95 °F (the cooling AHRI/SEER anchor) rather than heating's 47 °F — the two cap_frac scales are not interchangeable.

SEER/SEER2 badges do not predict this comparison's outcome. Several of the 9 units carry a higher published SEER/SEER2 than the Goodman baseline, yet still use more electricity once their real curves are integrated against a full year of real weather — and once undersized units are flagged for running past their own rated capacity (Step 3), it's the well-matched, high-SEER2 <18k-band units that come out ahead, not badge rank. The reconciliation: SEER is a standardized average across a published outdoor-temperature distribution that barely samples above 35 °C (the hottest standard AHRI bin, 38.9 °C, is weighted at only 0.4% of assumed cooling hours) — a unit can post a strong badge from shoulder-season performance while degrading faster than a competitor above that range, which is exactly where a real climate's cooling load is concentrated (load grows with outdoor temperature, so the biggest hours are near the design condition, not the mild ones SEER weights most). Use the kWh/GHG/cost numbers this scenario computes, not the equipment's badge, to judge which unit actually costs less to run here.
Refrigerant leakage on the standard AC

The standard AC's own refrigerant leak is included in its GHG total, using the same annual formula as the heat pump's (in-service leak rate + amortized end-of-life share, weighted by GWP — see "Refrigerants" above): R-32, read straight off the Goodman unit's own spec sheet, at the same charge-mass regression (chargeKg) used for every other unit on this page, and the same leak-rate/GWP-horizon controls you've set for the heat pump. It's a genuinely separate physical charge from the heat pump's, so it's additive, not a double-count.

The selected heat pump's own cooling-curve numbers exclude refrigerant, deliberately: it's the same physical charge already leaking, annually, whether the unit is heating, cooling, or idle — so its leak is counted once, in the heating numbers, and left out of the cooling-mode total to avoid counting it twice. This only matters for the emissions comparison; it doesn't touch either unit's electricity, kWh, or cost.

What this does not do

  • No equipment or installation cost — only annual operating cost, not payback.
  • No solar gains or thermostat setbacks — the zero-heat temperature absorbs them.
  • No ground-source option in this version.
  • One provincial grid applied to each city's own weather.

Every number here is a modelled estimate with a margin of error, not a guarantee.

Sources

  • NRCan EnerGuide / ERS retrofit and new-construction audit records
  • Manufacturer datasheets (GREE, Carrier, TOSOT, LG, Lennox, Mitsubishi, Daikin, WaterFurnace) and AHRI certificates
  • NEEP cold-climate air-source heat pump listing
  • IESO, AESO & Hydro-Québec generation-by-fuel data
  • ECCC National Inventory Report & climate datasets (CWEC2020, NBC Appendix C)
  • The Atmospheric Fund's Fugitive Methane guideline and Ontario emissions factors
  • IPCC AR6 WG1 Chapter 7, Table 7.SM.7 (refrigerant GWP)
  • NASA GES DISC Global Fuel Exploitation Inventory (methane map)
  • Ontario Energy Board, Alberta CEA Electricity Consumption Report, Régie de l'énergie (line loss)
  • canada-utility-rates (residential tariffs)