Source. Appendix C, Table C-2 of the National Building Code of Canada 2020 (the BC Building Code 2024 Appendix C for British Columbia) — the same table a plan checker opens. Design conditions are the CSA F280-12 inputs, as printed: 2.5% January heating dry-bulb, July 2.5% cooling dry-bulb and coincident wet-bulb, and HDD18. Climatic data researched by Environment and Climate Change Canada for the Canadian Commission on Building and Fire Codes. Where your authority having jurisdiction publishes its own design temperature, use theirs. Updated 2026-09-11: earlier versions of this page quoted NRCan HOT2000 weather-station values, which run 1–7 °C warmer than the code table in much of the country.

Why this is the number that matters

A heat loss calculation is, at its core, a temperature difference multiplied by how badly the building leaks. Every envelope assembly, every window, every air change — all of it scales with the gap between the indoor setpoint and the outdoor design condition. Get that gap wrong and the whole calculation is wrong by roughly the same proportion, no matter how carefully you measured the walls.

Canada makes this unusually unforgiving. Victoria’s heating design temperature is −4 °C. Yellowknife’s is −41 °C. Against F280’s 22 °C indoor heating setpoint that is a design ΔT of 26 K versus 63 K — a factor of roughly 2.4 on the same house. A calculator that offers you “cold” and “very cold” as climate options is discarding the one input that does the most work.

What “2.5%” means, and why it is not the record low

The 2.5% January design dry-bulb is the temperature the location stays above for 97.5% of January hours. It is colder than the site is for all but roughly eighteen hours of that month, and it is deliberately not the coldest night on record.

That choice is not laziness, it is the whole point. Sizing to a record cold snap gives you equipment that is oversized for every other hour of the winter. An oversized furnace short-cycles, swings room temperature, and runs its blower in bursts instead of the long steady cycles that actually mix a house. An oversized heat pump is worse, because it also gives up the part-load efficiency you paid for. The design condition is a deliberate bet that the handful of hours below it are covered by the building’s thermal mass, the setback recovery margin, and — on a heat pump — the supplementary heat that is already sized in.

HDD18 is an input, not trivia

Heating degree-days base 18 °C measure how far and how long a location sits below 18 °C over a year. In CSA F280-12 this is not just a climate statistic to quote in a report — it feeds the infiltration method, so it changes the calculated load directly.

It is also the fastest way to compare two places honestly. Toronto and Winnipeg differ by roughly 2,000 degree-days. Two identical houses, one in each city, do not use “a bit more” heat in Winnipeg; they are in different energy regimes, and the equipment, the ventilation strategy and the payback maths for a heat pump all move with it.

Design conditions by city

Sorted coldest first. The location column is the Appendix C Table C-2 row that the listed postal code actually resolves to — see the note below the table on why those sometimes differ from the city name.

CSA F280 design conditions, 46 Canadian cities. Temperatures in °C, HDD base 18 °C.
City Prov FSA Table C-2 location Heating 2.5% Cooling 2.5% HDD18
WhitehorseYTY1AWhitehorse-41256,580
YellowknifeNTX1AYellowknife-41258,170
IqaluitNUX0AIqaluit-40179,980
ThompsonMBR8NThompson-40277,600
Fort McMurrayABT9HFort McMurray-38286,250
Prince AlbertSKS6VNipawin-37286,300
Grande PrairieABT8VGrande Prairie-36275,790
SaskatoonSKS7KSaskatoon-35305,700
ReginaSKS4PRegina-34315,600
Thunder BayONP7BRaith-34285,900
TimminsONP4NTimmins-34295,940
BrandonMBR7ABrandon-33305,760
Val-d’OrQCJ9PVal-d’Or-33296,180
WinnipegMBR3CWinnipeg-33305,670
Prince GeorgeBCV2LPrince George-32284,720
Red DeerABT4NRed Deer-32285,550
CalgaryABT2PCalgary-30285,000
EdmontonABT5JEdmonton-30285,120
LethbridgeABT1JLethbridge-30314,500
SaguenayQCG7HSaguenay-30285,700
SherbrookeQCJ1HLennoxville-28294,700
SudburyONP3ESudbury-28295,180
Québec CityQCG1RBeauport-26285,100
GatineauQCJ8XAylmer-25304,520
OttawaONK1POttawa (City Hall)-25304,440
Trois-RivièresQCG8TTrois-Rivières-25294,900
FrederictonNBE3BFredericton-24294,670
KamloopsBCV2CKamloops-23343,450
MonctonNBE1CMoncton-23284,680
MontréalQCH2XMontréal (City Hall)-23304,200
KingstonONK7LKingston-22284,000
Saint JohnNBE2LSaint John-22254,570
CharlottetownPEC1ACharlottetown-20264,460
LondonONN6ALondon-18303,900
MississaugaONL5BMississauga-18303,880
TorontoONM5VToronto (City Hall)-18313,520
HamiltonONL8PHamilton-17313,460
KelownaBCV1YKelowna-17333,400
Corner BrookNLA2HCorner Brook-16264,760
HalifaxNSB3HHalifax-16264,000
SydneyNSB1PSydney-16274,530
WindsorONN9AWindsor-16323,400
St. John’sNLA1CSt. John’s-15244,800
SurreyBCV3TSurrey (88 Ave & 156 St.)-8292,750
VancouverBCV6BVancouver (City Hall)-7282,825
VictoriaBCV8WVictoria-4242,650
Cite, embed or download this table

Free to reuse under CC BY 4.0: keep the source line and the link. The underlying values are public building-code data; the compilation and postal-code mapping are ours.

Citation

HTML embed (the table plus a source line)

Download as CSV · 46 cities, 7 columns, UTF-8.

Why your postal code may resolve to another town

Table C-2 lists about 680 locations and there are vastly more communities, so every forward sortation area is mapped to the nearest listed location in the same province. Most of the time that is invisible and harmless — design conditions change slowly across a region.

Sometimes it is visible in the table above. Thunder Bay’s downtown FSA resolves to Raith, the nearest listed row. Prince Albert resolves to Nipawin. Big cities get several rows — Vancouver (City Hall), Burnaby (General), Toronto (City Hall), Ottawa (Kanata) — and the postal code picks the nearest one. In each case the location is close enough that the substitution is defensible.

Where it deserves a second look is anywhere terrain changes fast — a valley bottom versus the plateau above it, a lakeshore versus twenty kilometres inland — or anywhere in the territories, where a single FSA can span an area larger than most provinces. Nunavut is the clearest case: one FSA covers communities more than 1,500 km apart, so a nearest-location match there can be a long way off. If the resolved location is not obviously your climate, use the design temperature your AHJ publishes for that municipality instead.

Using these in a calculation

These are inputs to a load calculation, not a substitute for one. The heating design dry-bulb sets the ΔT for conduction and infiltration; the cooling dry-bulb and its mean coincident wet-bulb split the cooling load into sensible and latent; HDD18 drives the F280 infiltration method.

If you want to see them applied rather than tabulated, the free heat pump sizing calculator runs a whole-house block load from a postal code in the browser and shows you which location and which temperatures it used. For the full calculation offline — blower-door airtightness, HRV and ERV recovery, window U-factor and SHGC overrides, and a report you can hand over — that is the CSA F280 app.

FAQ

What is the 2.5% heating design temperature?

The January dry-bulb the location stays above for 97.5% of that month’s hours. Deliberately not the record low — sizing to a record cold snap oversizes equipment for the entire rest of the winter.

Why does my postal code resolve to a location in another town?

About 680 listed locations, far more communities. Each FSA maps to the nearest Table C-2 row in its province. Normal and usually fine; worth checking where terrain changes quickly or in the territories.

What is HDD18 and why does F280 use it?

Heating degree-days base 18 °C. F280-12 uses it in the infiltration method, so it is a calculation input rather than a statistic. It is also the cleanest single-number comparison between two climates.

Can I use these for a permit submission?

Ask the AHJ first. Many reference the design temperatures in their provincial code appendix, tabulated by municipality rather than by weather station. Where they name a value, use theirs.

Are these the same as ASHRAE 99% design temperatures?

Close in intent, not identical in convention. US Manual J work generally uses the ASHRAE 99% and 1% values; F280 work in Canada uses the 2.5% convention shown here. Do not mix the two within one calculation.