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.
📥 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:
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.