Loading…
FREE · CITABLE · BOTH VALUES PUBLISHED BY NRCAN

Hardiness Zone Shift in Canada

Hardiness zone shift in Canada, place by place: how each municipality's plant hardiness zone changed between Natural Resources Canada's 1961–1990 and 1991–2020 editions. Both zones are NRCan's own published figures for the same named municipality — nothing on this page is a zone we calculated.

At a glance: Across 137 Canadian places (51 cities and 86 smaller towns), 111 moved to a warmer plant hardiness zone between NRCan's 1961–1990 and 1991–2020 editions, 26 stayed put, and 0 moved colder. 23 shifted a full zone or more. The average hardiness index — the continuous score behind the zone letter — rose +5 points. The largest single move is Victoria, from Zone 7b to Zone 9a. A warmer zone describes an easier average winter — it does not promise the next extreme winter will spare a tender plant. Source: Natural Resources Canada Plant Hardiness Zones, 1961–1990 and 1991–2020.

111
moved warmer
26
unchanged
0
moved colder
+5
mean index change

📥 Download the dataset

The full 137-place table — both zones, both hardiness indices, the half-zone shift and the index change — as a free CSV.

Download CSV →

📝 How to cite this study

Plant hardiness zone shift, Canada (1961–1990 vs 1991–2020): NRCan Plant Hardiness Zones, compiled by GrowersGuide.ca

How to Read This — Honestly

The headline — 111 of 137 places in a warmer zone and none colder — is a striking, one-directional result. Four things keep it honest:

  • These two periods share no years. 1961–1990 and 1991–2020 are consecutive, non-overlapping 30-year blocks — a true before-and-after. That is exactly why the signal here is so much larger than in our frost-free season study, which compares two periods that overlap by 20 years. The studies do not disagree; they are measuring gaps of very different sizes.
  • A zone is a coarse bucket. Zones move in half-steps, so a place can warm meaningfully and still show "no change". That is why the hardiness index is published here too — it is the continuous score NRCan computes before rounding into a zone, and it moves where the bucket does not.
  • A zone is not just winter cold. NRCan's formula folds in seven variables including rainfall, snow depth, summer heat and wind gust. A zone can shift because summers warmed or snow cover changed, not only because winter minimums eased — so "warmer zone" does not automatically mean "milder January".
  • Averages don't kill plants; extremes do. A shrub rated to Zone 6 is not saved by a 30-year average creeping up if one February night still hits its limit. Read a warmer zone as room to experiment with winter protection, not as a promise.

Which Provinces Moved Most

Average shift in half-zone steps, across every place in this dataset for that province. +2 is a full zone. Provinces with few places in the table are noisier — the count is shown so you can judge for yourself.

Province Places Moved warmer Mean shift (half-zones)
British Columbia 29 25 +1.28
Manitoba 9 8 +1.11
Alberta 11 10 +1.09
Saskatchewan 8 7 +1.00
Ontario 29 23 +0.97
Quebec 27 22 +0.89
Nova Scotia 8 7 +0.88
New Brunswick 7 5 +0.71
Newfoundland & Labrador 8 4 +0.50
Prince Edward Island 1 0 0.00

The Shift, Place by Place

Every place NRCan lists by name and province, sorted from the biggest move to the smallest. Shift counts half-zone steps (5a → 5b is +1; 5a → 6a is +2). Index is NRCan's continuous hardiness score for each period — watch it move on rows where the zone letter does not.

Place 1961–1990 1991–2020 Shift Index
Victoria, BC 7b 9a +3 78 → 90
Atlin, BCtown 1b 2b +2 15 → 28
The Pas, MBtown 1b 2b +2 17 → 28
Geraldton, ONtown 1b 2b +2 16 → 26
Nanaimo, BC 8a 9a +2 81 → 91
Cold Lake, ABtown 2a 3a +2 21 → 30
Creston, BCtown 5b 6b +2 59 → 68
Dawson Creek, BCtown 2a 3a +2 22 → 31
Surrey, BC 7b 8b +2 79 → 88
Vancouver, BC 8a 9a +2 81 → 90
Kelowna, BC 6a 7a +2 64 → 72
Kirkland Lake, ONtown 2a 3a +2 23 → 31
Kuujjuarapik, QCtown 0a 1a +2 2 → 10
Winnipeg, MB 2b 3b +2 28 → 36
Calgary, AB 3a 4a +2 34 → 41
Golden, BCtown 4a 5a +2 43 → 50
Kamloops, BC 5b 6b +2 58 → 65
Kelliher, SKtown 2a 3a +2 24 → 31
Toronto, ON 6a 7a +2 64 → 71
Brampton, ON 5b 6b +2 59 → 65
Coaticook, QCtown 4a 5a +2 44 → 50
Dease Lake, BCtown 1a 2a +2 14 → 20
Mississauga, ON 6a 7a +2 64 → 70
Fort McMurray, ABtown 2a 2b +1 20 → 29
Burnaby, BC 8a 8b +1 81 → 89
Cheticamp, NStown 5b 6a +1 56 → 64
Prince Albert, SK 2a 2b +1 20 → 28
Sandspit, BCtown 7b 8a +1 76 → 84
Williams Lake, BCtown 4a 4b +1 40 → 48
Grandes-Bergeronnes, QCtown 4a 4b +1 41 → 48
Kenora, ONtown 3a 3b +1 30 → 37
Prince George, BC 4a 4b +1 41 → 48
Sparwood, BCtown 4a 4b +1 41 → 48
Sutton, QCtown 4b 5a +1 47 → 54
Val-d'Or, QCtown 2a 2b +1 22 → 29
Abbotsford, BC 8a 8b +1 80 → 86
Churchill, MBtown 0a 0b +1 0 → 6
Cranbrook, BCtown 4b 5a +1 47 → 53
Grande Prairie, ABtown 2b 3a +1 28 → 34
Hodgson, MBtown 2a 2b +1 23 → 29
Ingonish Beach, NStown 5b 6a +1 55 → 61
Markham, ON 6a 6b +1 60 → 66
Nipawin, SKtown 2a 2b +1 21 → 27
Peace River, ABtown 2b 3a +1 26 → 32
Pinawa, MBtown 2b 3a +1 27 → 33
Red Deer, AB 3a 3b +1 32 → 38
Rimouski, QCtown 4a 4b +1 42 → 48
Sherbrooke, QC 4b 5a +1 45 → 51
Sudbury, ON 4a 4b +1 40 → 46
Terrace, BCtown 6b 7a +1 66 → 72
Thunder Bay, ON 3a 3b +1 30 → 36
Trois-Rivieres, QC 4b 5a +1 45 → 51
Bridgewater, NStown 6a 6b +1 60 → 65
Charlo, NBtown 4a 4b +1 42 → 47
Dauphin, MBtown 2b 3a +1 27 → 32
Doaktown, NBtown 4a 4b +1 42 → 47
Drummondville, QCtown 4b 5a +1 48 → 53
Granby, QCtown 5a 5b +1 50 → 55
Halifax, NS 6a 6b +1 62 → 67
Hamilton, ON 6b 7a +1 68 → 73
Laval, QC 5a 5b +1 54 → 59
Medicine Hat, AB 4a 4b +1 40 → 45
Mont-Joli, QCtown 4a 4b +1 40 → 45
North Battleford, SKtown 2b 3a +1 25 → 30
Saskatoon, SK 2b 3a +1 29 → 34
Stewart, BCtown 6a 6b +1 60 → 65
Wabush, NLtown 0b 1a +1 9 → 14
Aroostook, NBtown 4a 4b +1 42 → 46
Blue River, BCtown 4b 5a +1 47 → 51
Cornwall, ONtown 5a 5b +1 53 → 57
Delhi, ONtown 6a 6b +1 64 → 68
Edmonton, AB 3b 4a +1 36 → 40
Fort St. John, BCtown 2b 3a +1 29 → 33
Fortierville, QCtown 4a 4b +1 44 → 48
Gatineau, QC 4b 5a +1 49 → 53
Guelph, ON 5b 6a +1 56 → 60
Haliburton, ONtown 4a 4b +1 42 → 46
Kemptville, ONtown 5a 5b +1 53 → 57
Kitchener, ON 5b 6a +1 57 → 61
Kuujjuaq, QCtown 0a 0b +1 3 → 7
Lachute, QCtown 4b 5a +1 48 → 52
Oshawa, ON 6a 6b +1 61 → 65
Port Hardy, BCtown 7b 8a +1 79 → 83
Regina, SK 2b 3a +1 29 → 33
Saguenay, QCtown 3a 3b +1 32 → 36
Saint John, NB 5a 5b +1 54 → 58
Thetford Mines, QCtown 4a 4b +1 42 → 46
Thompson, MB 0b 1a +1 9 → 13
Vineland, ONtown 6b 7a +1 69 → 73
Watrous, SKtown 2b 3a +1 27 → 31
Windsor, ON 7a 7b +1 71 → 75
Chilliwack, BC 8a 8b +1 84 → 87
Cypress River, MBtown 3a 3b +1 32 → 35
Fort Erie, ONtown 6b 7a +1 69 → 72
Fort Saskatchewan, ABtown 3a 3b +1 34 → 37
Fredericton, NB 4b 5a +1 49 → 52
Gander, NLtown 4b 5a +1 47 → 50
Greenwood, NStown 5b 6a +1 58 → 61
Lethbridge, AB 4a 4b +1 42 → 45
London, ON 6a 6b +1 63 → 66
Luskville, QCtown 4b 5a +1 47 → 50
Nappan, NStown 5a 5b +1 53 → 56
Niagara Falls, ON 6b 7a +1 69 → 72
Parrsboro, NStown 5a 5b +1 53 → 56
Quebec City, QC 4b 5a +1 48 → 51
Scott, QCtown 4a 4b +1 44 → 47
Sept-Îles, QCtown 3a 3b +1 32 → 35
St. John's, NL 5b 6a +1 57 → 60
Comox, BCtown 7b 8a +1 79 → 81
Corner Brook, NL 4b 5a +1 49 → 51
Welland, ONtown 6b 7a +1 68 → 70
Barrie, ON 5b 5b 0 55 → 59
Charlottetown, PE 5b 5b 0 55 → 59
Kapuskasing, ONtown 2a 2a 0 20 → 24
Montreal, QC 5b 5b 0 55 → 59
Ottawa, ON 5a 5a 0 50 → 54
Bathurst, NBtown 4b 4b 0 47 → 50
Bella Coola, BCtown 7b 7b 0 75 → 78
Cartwright, NLtown 2b 2b 0 25 → 28
Deer Lake, NLtown 4b 4b 0 45 → 48
Kingston, ON 6a 6a 0 60 → 63
Moncton, NB 5a 5a 0 51 → 54
Princeton, BCtown 5b 5b 0 55 → 58
Roberval, QCtown 3a 3a 0 30 → 33
Saint-Michel, QCtown 5b 5b 0 55 → 58
St. Catharines, ON 7a 7a 0 70 → 73
Baie-Comeau, QCtown 3b 3b 0 35 → 37
Brandon, MB 3a 3a 0 30 → 32
Campbell River, BCtown 8a 8a 0 82 → 84
Debert, NStown 5a 5a 0 52 → 54
Estevan, SKtown 3b 3b 0 35 → 37
Fort Nelson, BCtown 2b 2b 0 25 → 27
Harbour Breton, NLtown 5b 5b 0 55 → 57
Saint-Georges, QCtown 4a 4a 0 42 → 44
Trenton, ONtown 6a 6a 0 61 → 62
Camrose, ABtown 3a 3a 0 34 → 34
Stephenville, NLtown 5a 5a 0 53 → 53

Both zone values, and both hardiness indices, are as published by Natural Resources Canada for the named municipality. GrowersGuide computed only the difference between them.

Why some places are missing

A place appears here only if NRCan lists it by name and by province in its own municipality table. Where it doesn't, the place is left out rather than matched to something nearby — and the near-misses are exactly where a careless match would do damage. Masson-Angers is not Angers. Saint-Camille-de-Bellechasse is not Saint-Camille. Happy Valley-Goose Bay is not the Goose weather station. Matching on name alone is worse still: searching NRCan for "Sydney" returns Port Sydney, Ontario, not Sydney, Nova Scotia.

Several of our own entries are weather-station names rather than municipalities — Quebec Jean Lesage is an airport, Shearwater an airbase, Lauzon a borough of Lévis — so NRCan has no municipality row for them at all. Sydney, Nova Scotia is the one full city with no NRCan entry, and it is excluded rather than approximated.

Methodology

  • Source. Natural Resources Canada's Plant Hardiness Zone by Municipality lookup, which returns the 1961–1990 and 1991–2020 zone and hardiness index side by side for a named municipality. The 1991–2020 values correspond to NRCan's 4th-edition map.
  • Published vs published. Both numbers in every row are NRCan's. We did not run NRCan's formula, interpolate a map, or infer a zone from coordinates — doing so would produce a GrowersGuide-computed figure that readers could mistake for an official one.
  • Independently cross-checked. Before publishing, the municipality values were checked against NRCan's official 4th-edition zone shapefile by point-in-polygon (reprojected to NAD83 Canada Atlas Lambert). The two methods agreed on 46 of 51 cities; the handful that differ are places whose centroid sits near a zone boundary, and in those the municipality table — NRCan's own answer for that municipality — is what appears here.
  • Matching rule. Exact municipality name and province. Only accent normalisation is treated as the same name (Chéticamp). Everything else is excluded.
  • Live-computed. Every count, mean and superlative on this page is calculated at page load from the published CSV, so the prose can never drift from the table.

The Rest of the Series

This is the fourth same-source climate study on the site. Each answers a different question from primary Canadian data:

Frost-Free Season Shift → How the growing season changed between two overlapping ECCC normal periods. Growing Degree Days → Each city's heat budget — and the cities where it fell. Frost Risk Dates → The 10/25/50/75/90% frost dates serious growers actually plant to. Methodology Hub → How to reproduce any figure in the series from the primary sources.

Terms of use

This compiled comparison is free to use — in articles, presentations, coursework, or your own research — with attribution to GrowersGuide.ca and a link to this page. The hardiness zones themselves are the work of Natural Resources Canada; please credit NRCan as the primary source. If you are a researcher, garden club, or horticultural society who needs a cut of this data we don't publish here — a different pairing of periods, or extra municipalities — get in touch and we'll try to add it.

Frequently Asked Questions

Have Canadian plant hardiness zones changed?

Yes. Across the 137 Canadian places in this study, 111 moved to a warmer plant hardiness zone between Natural Resources Canada's 1961–1990 and 1991–2020 editions, 26 stayed in the same zone, and 0 moved colder. 23 places shifted a full zone or more. The average hardiness index — the continuous score behind the zone — rose by +5 points. Both figures are published by NRCan; neither is calculated by GrowersGuide.

Which Canadian city moved the most hardiness zones?

Victoria, BC shows the largest shift in this dataset: NRCan lists it as Zone 7b under the 1961–1990 normals and Zone 9a under 1991–2020 — 1.5 zones warmer. Its hardiness index rose from 78 to 90.

Does a warmer hardiness zone mean I can grow more tender plants now?

Be careful. A hardiness zone is a 30-year average, and plants are killed by single extreme winters, not by averages. A place that moved from Zone 5a to 5b is telling you the typical winter has eased slightly — it is not a guarantee that the coldest night of the next decade will be milder. Treat a newly-warmer zone as permission to experiment at the margins, with winter protection, not as a licence to plant a full zone tenderer and expect survival.

Why compare 1961–1990 with 1991–2020 rather than the most recent two periods?

Because those are the two periods NRCan publishes side by side in its own municipality lookup, and they share no years at all. That is a genuine before-and-after comparison. Our frost-free season study compares 1981–2010 with 1991–2020, which overlap by 20 years, so its signal is deliberately much smaller — the two studies are not measuring the same size of gap and should not be read as contradicting each other.

What is a Canadian plant hardiness zone based on?

Unlike the American USDA zone, which uses winter minimum temperature alone, NRCan's Canadian zone combines seven climate variables: the coldest month's mean daily minimum, the frost-free period above 0 °C, June–November rainfall, the warmest month's mean daily maximum, a winter harshness index tied to January rainfall, maximum snow depth, and the maximum wind gust over 30 years. That is why a Canadian zone number is not interchangeable with the USDA number of the same name.

Did any place in Canada get a colder hardiness zone?

Not in this dataset. Of the 137 places, none moved to a colder zone — 111 moved warmer and 26 held steady. That uniformity is worth reading carefully: it partly reflects the fact that the two periods are 30 years apart with no overlap, and that a zone is a coarse half-zone bucket, so small cooling would not be visible. The continuous hardiness index tells the same story, rising in every place that changed.

Why are some Canadian towns missing from this table?

A place appears only if NRCan lists it by name and province in its own municipality table. Where it does not, the place is left out rather than matched to a nearby settlement — Masson-Angers is not Angers, and Happy Valley-Goose Bay is not the Goose weather station. Several of our own entries are station names rather than municipalities (Quebec Jean Lesage is an airport, Shearwater an airbase), so NRCan has no municipality row for them. Sydney, Nova Scotia is the one full city with no NRCan entry.

Is this hardiness zone data free to cite?

Yes. The compiled comparison is free to use with attribution to GrowersGuide.ca and a link to this page. The underlying zones are the work of Natural Resources Canada — please credit NRCan as the primary source, and note that both the 1961–1990 and 1991–2020 values are theirs as published.

Find your own zone — and what survives in it

This study is about how zones have moved. To garden by them, start with your own.

Find My Zone → What Survives My Zone → Frost Calculator →
Save to Pinterest

🌱 Free Newsletter

Get New Guides Before Anyone Else

Canadian planting reminders, new calculators, and growing guides — free, no spam.

Suggest what we write next →

⭐ Most Popular