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.

−5 °C
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
Temp°C LoadkW Status COP EnergykWh GHGkg Cost$ COP CapacitykW EnergykWh GHGkg Cost$ COP 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). "Status" reads Backup only / HP + backup / HP only / No load; the heat pump's own COP and capacity are shown even on hours it doesn't run (e.g. locked out by cold), so you can see why it didn't.

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 deliveredconsumed × (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, the most-installed currently-certified model (by ERS appearance count) is used. Every unit is traceable to its own AHRI number.
  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.
~28% of ERS record appearances are for models with no certified 5°F rating 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 (−30°C to 20°C)

One row per whole-degree C. Calc. is the digitized curve above. AHRI is the certificate's two anchors (COP + capacity at max compressor speed, 5°F; rated capacity, 47°F). NEEP republishes the same certificate's Min/Rated/Max Heating table at more temperatures. Blank cells mean no source publishes a value there.

T (°C)COPCapacity (Btu/h)
Calc.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.

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)