Frost Dates for 166 Canadian Towns
Average last spring frost, average first fall frost and frost-free season length for 166 smaller towns across 10 provinces — from Environment and Climate Change Canada's 1981–2010 Canadian Climate Normals, with every station named and its Climate ID given. 56 towns of 166 come from 1991–2020 instead: those stations publish no frost section in 1981–2010 at all. The Period column marks each of them.
Updated August 2026 · Environment and Climate Change Canada, Canadian Climate Normals 1981–2010
Frost dates for smaller Canadian towns: this page holds ECCC climate normals for 166 towns that are not among the major cities covered elsewhere on the site. The frost-free season runs from Dease Lake at 58 days to Sandspit at 223 days. Each town names the ECCC station that recorded it and that station's Climate ID, so any figure can be checked at source. No hardiness zone is given, because none is published for these towns — and 49 of the stations are airports, which sit in open ground and frost earlier than a sheltered town centre.
How to read the station column. A station name ending in A is an airport; AUT, CS or RCS mark an automatic station. Those sit on open, flat, often low ground where cold air settles on a clear, still night, so they record frost earlier in fall and later in spring than a garden in town. The letter after the Climate ID is ECCC's own completeness rating for that value — A means a nearly complete record over the period, D means noticeably fewer years behind the average.
British Columbia — 25 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Atlin | Jun 3 | Sep 9 | 97 | ATLIN (1200560, C) |
| Bella Coola | May 1 | Oct 6 | 158 | BELLA COOLA A (1060841, D) |
| Blue River | Jun 1 | Sep 10 | 101 | BLUE RIVER A (1160899, C) |
| Campbell River | Apr 28 | Oct 9 | 163 | CAMPBELL RIVER A (1021261, C) |
| Comox | Apr 5 | Nov 3 | 211 | COMOX A (1021830, A) |
| Cranbrook | May 18 | Sep 22 | 126 | CRANBROOK A (1152102, A) |
| Creston | May 3 | Oct 7 | 155 | CRESTON (1142160, A) |
| Dawson Creek | Jun 5 | Aug 31 | 87 | DAWSON CREEK A (1182285, C) |
| Dease Lake | Jun 21 | Aug 18 | 58 | DEASE LAKE (1192340, D) |
| Fort Nelson | May 16 | Sep 11 | 117 | FORT NELSON A (1192940, C) |
| Fort St. John | May 13 | Sep 16 | 125 | FORT ST JOHN A (1183000, A) |
| Golden | May 15 | Sep 22 | 129 | GOLDEN A (1173210, C) |
| Penticton | Apr 30 | Oct 8 | 160 | PENTICTON (1126146, D) — 1991–2020 normals |
| Pitt Meadows | Apr 11 | Oct 30 | 201 | PITT MEADOWS (1106178, D) — 1991–2020 normals |
| Pleasant Camp | May 24 | Sep 22 | 120 | PLEASANT CAMP (1206197, D) |
| Port Hardy | Apr 17 | Oct 31 | 196 | PORT HARDY A (1026270, A) |
| Princeton | May 23 | Sep 17 | 116 | PRINCETON A (1126510, C) |
| Quesnel | May 22 | Sep 19 | 119 | QUESNEL (1096625, C) — 1991–2020 normals |
| Sandspit | Apr 11 | Nov 21 | 223 | SANDSPIT A (1057050, D) |
| Smithers | May 26 | Sep 17 | 113 | SMITHERS (1077499, D) — 1991–2020 normals |
| Sparwood | Jun 4 | Sep 2 | 89 | SPARWOOD (1157630, C) |
| Stewart | Apr 29 | Oct 12 | 165 | STEWART A (1067742, C) |
| Terrace | Apr 25 | Oct 17 | 174 | TERRACE A (1068130, A) |
| Warfield | Apr 26 | Oct 12 | 169 | WARFIELD (1148700, D) |
| Williams Lake | May 23 | Sep 13 | 112 | WILLIAMS LAKE A (1098940, A) |
Alberta — 21 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Banff | Jun 19 | Aug 23 | 64 | BANFF (3050519, C) — 1991–2020 normals |
| Campsie | Jun 2 | Aug 29 | 87 | CAMPSIE (3061200, C) |
| Camrose | May 18 | Sep 17 | 121 | CAMROSE (3011240, C) |
| Claresholm | May 25 | Sep 13 | 110 | CLARESHOLM (3031640, D) — 1991–2020 normals |
| Cold Lake | May 20 | Sep 14 | 116 | COLD LAKE A (3081680, A) |
| Edson | Jun 4 | Sep 4 | 91 | EDSON (3062239, D) — 1991–2020 normals |
| Fort Chipewyan | Jun 5 | Sep 4 | 90 | FORT CHIPEWYAN (3072655, D) — 1991–2020 normals |
| Fort McMurray | May 30 | Sep 6 | 97 | FORT MCMURRAY A (3062693, A) |
| Fort Saskatchewan | May 21 | Sep 16 | 117 | FORT SASKATCHEWAN (3012710, D) |
| Grande Prairie | May 17 | Sep 12 | 117 | GRANDE PRAIRIE A (3072920, A) |
| High Level | May 30 | Sep 6 | 98 | HIGH LEVEL (3073140, D) — 1991–2020 normals |
| Jasper | Jun 14 | Aug 26 | 72 | JASPER (3053520, C) — 1991–2020 normals |
| Lac La Biche | May 22 | Sep 17 | 118 | LAC LA BICHE (3063685, D) — 1991–2020 normals |
| Lloydminster | May 18 | Sep 17 | 121 | LLOYDMINSTER (3013959, C) — 1991–2020 normals |
| Onefour | May 15 | Sep 24 | 131 | ONEFOUR (3044923, D) — 1991–2020 normals |
| Peace River | May 19 | Sep 9 | 112 | PEACE RIVER A (3075040, C) |
| Pincher Creek | May 24 | Sep 12 | 110 | PINCHER CREEK (3035198, D) — 1991–2020 normals |
| Queenstown | May 20 | Sep 20 | 122 | QUEENSTOWN (3035340, D) |
| Slave Lake | May 26 | Sep 16 | 112 | SLAVE LAKE (3065995, C) — 1991–2020 normals |
| Vauxhall | May 15 | Sep 19 | 126 | VAUXHALL (3036682, C) — 1991–2020 normals |
| Whitecourt | May 20 | Sep 15 | 118 | WHITECOURT (3057376, D) — 1991–2020 normals |
Saskatchewan — 13 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Estevan | May 17 | Sep 16 | 121 | ESTEVAN A (4012400, A) |
| Kelliher | May 21 | Sep 13 | 114 | KELLIHER (4013660, C) |
| Key Lake | Jun 15 | Sep 2 | 78 | KEY LAKE (4063753, D) — 1991–2020 normals |
| Kindersley | May 21 | Sep 20 | 122 | KINDERSLEY (4043899, C) — 1991–2020 normals |
| La Ronge | May 28 | Sep 14 | 109 | LA RONGE (4064149, C) — 1991–2020 normals |
| Meadow Lake | May 30 | Sep 4 | 97 | MEADOW LAKE (4065057, C) — 1991–2020 normals |
| Melfort | May 24 | Sep 13 | 111 | MELFORT (4055079, D) — 1991–2020 normals |
| Nipawin | May 22 | Sep 12 | 112 | NIPAWIN A (4075518, D) |
| North Battleford | May 23 | Sep 12 | 111 | NORTH BATTLEFORD A (4045600, C) |
| Stony Rapids | Jun 10 | Aug 30 | 79 | STONY RAPIDS (4067799, D) — 1991–2020 normals |
| Swift Current | May 19 | Sep 19 | 122 | SWIFT CURRENT (4028038, D) — 1991–2020 normals |
| Watrous | May 20 | Sep 10 | 112 | WATROUS (4018640, A) |
| Yorkton | May 20 | Sep 18 | 120 | YORKTON (4019073, D) — 1991–2020 normals |
Manitoba — 12 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Churchill | Jun 19 | Sep 15 | 87 | CHURCHILL A (5060600, A) |
| Cypress River | May 20 | Sep 18 | 120 | CYPRESS RIVER (5010640, A) |
| Dauphin | May 23 | Sep 17 | 116 | DAUPHIN A (5040680, C) |
| Flin Flon | May 21 | Sep 24 | 125 | FLIN FLON (5050919, C) — 1991–2020 normals |
| Gillam | Jun 12 | Sep 12 | 91 | GILLAM (5060999, D) — 1991–2020 normals |
| Gimli | May 25 | Sep 27 | 124 | GIMLI (5031038, D) — 1991–2020 normals |
| Hodgson | Jun 8 | Sep 6 | 89 | HODGSON 2 (5031301, D) |
| Island Lake | May 24 | Sep 29 | 127 | ISLAND LAKE (5061374, C) — 1991–2020 normals |
| Lynn Lake | Jun 4 | Sep 14 | 101 | LYNN LAKE (5061645, D) — 1991–2020 normals |
| Pinawa | May 27 | Sep 19 | 113 | PINAWA WNRE (5032162, D) |
| Portage la Prairie | May 19 | Sep 28 | 130 | PORTAGE SOUTHPORT (5012320, D) — 1991–2020 normals |
| The Pas | May 23 | Sep 20 | 119 | THE PAS A (5052880, A) |
Ontario — 25 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Brockville | Apr 27 | Oct 14 | 169 | BROCKVILLE (6100970, D) — 1991–2020 normals |
| Cornwall | Apr 28 | Oct 10 | 164 | CORNWALL (6101874, C) |
| Delhi | May 9 | Oct 1 | 145 | DELHI CDA (6131982, D) |
| Earlton | May 27 | Sep 20 | 115 | EARLTON (6072223, D) — 1991–2020 normals |
| Fort Erie | May 4 | Oct 12 | 160 | FORT ERIE (6132470, D) |
| Geraldton | Jun 4 | Sep 14 | 101 | GERALDTON A (6042716, A) |
| Haliburton | Jun 3 | Sep 16 | 104 | HALIBURTON 3 (6163171, D) |
| Harrow | Apr 25 | Oct 23 | 180 | HARROW (6133360, D) — 1991–2020 normals |
| Kapuskasing | Jun 5 | Sep 15 | 101 | KAPUSKASING A (6073975, B) |
| Kemptville | May 14 | Sep 26 | 134 | KEMPTVILLE (6104025, D) |
| Kenora | May 11 | Oct 2 | 144 | KENORA A (6034075, A) |
| Kirkland Lake | Jun 8 | Sep 8 | 91 | KIRKLAND LAKE (6074209, D) |
| New Glasgow ON | May 3 | Oct 14 | 163 | NEW GLASGOW (6135583, A) |
| North Bay | May 15 | Sep 29 | 135 | NORTH BAY (6085680, C) — 1991–2020 normals |
| Peterborough | May 16 | Sep 24 | 130 | PETERBOROUGH (6166415, D) — 1991–2020 normals |
| Pickle Lake | May 25 | Sep 27 | 125 | PICKLE LAKE (6016525, D) — 1991–2020 normals |
| Red Lake | May 28 | Sep 20 | 114 | RED LAKE (6016970, D) — 1991–2020 normals |
| Ridgetown | May 10 | Oct 6 | 149 | RIDGETOWN (6137149, D) — 1991–2020 normals |
| Sault Ste. Marie | May 28 | Sep 29 | 123 | SAULT STE MARIE (6057591, D) — 1991–2020 normals |
| Timmins | Jun 7 | Sep 7 | 91 | TIMMINS/VICTOR POWER (6078282, D) — 1991–2020 normals |
| Trenton | May 1 | Oct 8 | 158 | TRENTON A (6158875, A) |
| Vineland | Apr 26 | Oct 18 | 174 | VINELAND RITTENHOUSE (6139143, D) |
| Wawa | Jun 2 | Sep 20 | 109 | WAWA (6059407, C) — 1991–2020 normals |
| Welland | May 9 | Oct 9 | 151 | WELLAND (6139445, D) |
| Wiarton | May 12 | Oct 10 | 151 | WIARTON (6119499, C) — 1991–2020 normals |
Quebec — 36 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Angers | May 25 | Sep 19 | 116 | ANGERS (7030170, A) |
| Baie-Comeau | May 30 | Sep 15 | 108 | BAIE-COMEAU A (7040440, C) |
| Beausejour | May 23 | Sep 25 | 124 | BEAUSEJOUR (7020567, A) |
| Charteris | May 22 | Sep 18 | 117 | CHARTERIS (7031315, D) |
| Coaticook | May 19 | Sep 29 | 132 | COATICOOK (7021840, C) |
| Drummondville | May 6 | Oct 6 | 152 | DRUMMONDVILLE (7022160, D) |
| Fleury | May 12 | Sep 26 | 135 | FLEURY (7022375, A) |
| Fortierville | May 24 | Sep 15 | 113 | FORTIERVILLE (7022494, C) |
| Gaspé | Jun 4 | Sep 17 | 104 | GASPE (7052601, D) — 1991–2020 normals |
| Granby | May 9 | Oct 7 | 150 | GRANBY (7022800, A) |
| Grandes-Bergeronnes | May 16 | Oct 4 | 140 | GRANDES BERGERONNES (7042840, C) |
| Îles-de-la-Madeleine | May 5 | Nov 5 | 183 | ILES DE LA MADELEINE (7053250, D) — 1991–2020 normals |
| Kuujjuaq | Jun 18 | Sep 9 | 82 | KUUJJUAQ A (7113534, C) |
| Kuujjuarapik | Jun 22 | Sep 25 | 94 | KUUJJUARAPIK A (7103536, D) |
| La Grande Rivière | Jun 19 | Sep 20 | 92 | LA GRANDE RIVIERE A (7093715, D) |
| Lachute | May 12 | Sep 30 | 140 | LACHUTE (7033650, A) |
| Lauzon | May 12 | Oct 3 | 143 | LAUZON (7024254, C) |
| Luskville | May 20 | Sep 20 | 122 | LUSKVILLE (7034365, A) |
| Maniwaki | May 16 | Sep 26 | 132 | MANIWAKI (7034480, D) — 1991–2020 normals |
| Mont-Joli | May 18 | Oct 5 | 138 | MONT-JOLI A (7055120, C) |
| Natashquan | May 28 | Sep 20 | 114 | NATASHQUAN (7045398, D) — 1991–2020 normals |
| Quebec Jean Lesage | May 11 | Oct 4 | 145 | QUEBEC/JEAN LESAGE INTL A (7016294, D) |
| Rimouski | May 13 | Oct 11 | 150 | RIMOUSKI (7056480, D) |
| Roberval | May 20 | Sep 27 | 130 | ROBERVAL A (7066685, C) |
| Saguenay | May 22 | Sep 23 | 123 | BAGOTVILLE A (7060400, A) |
| Saint-Anicet | Apr 28 | Oct 8 | 161 | ST ANICET (7026836, A) |
| Saint-Camille | Jun 1 | Sep 8 | 98 | ST CAMILLE (7056930, D) |
| Saint-Georges | May 31 | Sep 17 | 108 | ST GEORGES (7027283, C) |
| Saint-Ludger | Jun 1 | Sep 13 | 103 | ST LUDGER (7027516, D) |
| Saint-Michel | May 18 | Sep 26 | 130 | SAINT MICHEL (7057567, D) |
| Sainte-Lucie | Jun 11 | Aug 27 | 76 | STE LUCIE (7057515, D) |
| Scott | May 21 | Sep 25 | 126 | SCOTT (7027840, C) |
| Sept-Îles | May 25 | Sep 27 | 124 | SEPT-ILES A (7047910, D) |
| Sutton | May 16 | Oct 1 | 137 | SUTTON (7028292, A) |
| Thetford Mines | May 16 | Oct 2 | 138 | THETFORD MINES (7028441, B) |
| Val-d'Or | Jun 5 | Sep 10 | 96 | VAL-D'OR A (7098600, D) |
New Brunswick — 9 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Aroostook | May 23 | Sep 24 | 123 | AROOSTOOK (8100300, D) |
| Bas Caraquet | May 17 | Oct 13 | 148 | BAS CARAQUET (8100467, C) — 1991–2020 normals |
| Bathurst | May 21 | Sep 24 | 125 | BATHURST A (8100503, D) |
| Bouctouche | May 14 | Oct 3 | 141 | BOUCTOUCHE (8100592, D) — 1991–2020 normals |
| Charlo | May 22 | Sep 28 | 128 | CHARLO A (8100880, C) |
| Doaktown | May 28 | Sep 15 | 109 | DOAKTOWN (8101200, C) |
| Miramichi | May 23 | Oct 5 | 133 | MIRAMICHI (8100989, D) — 1991–2020 normals |
| Saint-Léonard | May 24 | Sep 16 | 114 | ST LEONARD A (8104928, C) |
| Sussex/Four Corners | May 22 | Sep 24 | 123 | SUSSEX (8105200, A) |
Nova Scotia — 12 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Bridgewater | May 27 | Sep 24 | 119 | BRIDGEWATER (8200600, C) |
| Cheticamp | May 26 | Oct 21 | 147 | CHETICAMP (8200825, D) |
| Collegeville | Jun 7 | Sep 19 | 102 | COLLEGEVILLE (8201000, C) |
| Debert | Jun 3 | Sep 20 | 109 | DEBERT (8201380, D) |
| Greenwood | May 14 | Oct 4 | 142 | GREENWOOD A (8202000, A) |
| Ingonish Beach | May 24 | Oct 17 | 145 | INGONISH BEACH (8202500, D) |
| Nappan | May 29 | Sep 27 | 120 | NAPPAN CDA (8203700, C) |
| Parrsboro | May 21 | Oct 2 | 133 | PARRSBORO (8204400, C) |
| Shearwater | May 3 | Oct 23 | 172 | SHEARWATER A (8205090, C) |
| Upper Stewiacke | Jun 2 | Sep 21 | 109 | UPPER STEWIACKE (8204193, D) — 1991–2020 normals |
| Waterville Cambridge | May 23 | Sep 29 | 128 | WATERVILLE CAMBRIDGE (8206222, A) |
| Yarmouth | Apr 28 | Oct 24 | 179 | YARMOUTH (8206491, C) — 1991–2020 normals |
Prince Edward Island — 3 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Alliston PE | May 9 | Oct 30 | 173 | ALLISTON (8300100, D) — 1991–2020 normals |
| New Glasgow PE | May 26 | Oct 8 | 134 | NEW GLASGOW (8300497, C) |
| St. Peters/Monticello | May 29 | Oct 15 | 138 | MONTICELLO (8300447, C) |
Newfoundland & Labrador — 10 towns
| Town | Last spring frost | First fall frost | Frost-free days | ECCC station (Climate ID, code) |
|---|---|---|---|---|
| Argentia | May 10 | Nov 4 | 176 | DUNVILLE/ARGENTIA (8400104, D) — 1991–2020 normals |
| Cartwright | Jun 14 | Sep 23 | 99 | CARTWRIGHT (8501100, A) |
| Deer Lake | Jun 12 | Sep 17 | 95 | DEER LAKE A (8401501, C) |
| Gander | Jun 1 | Oct 16 | 136 | GANDER INT'L A (8401700, A) |
| Goose | Jun 4 | Sep 24 | 110 | GOOSE BAY A (8501900, A) |
| Harbour Breton | May 18 | Oct 20 | 153 | HARBOUR BRETON (8402071, D) |
| Middle Arm | Jun 15 | Sep 25 | 102 | MIDDLE ARM (8402644, C) — 1991–2020 normals |
| Nain | Jun 15 | Sep 23 | 99 | NAIN (8502799, C) — 1991–2020 normals |
| Stephenville | May 13 | Oct 18 | 157 | STEPHENVILLE A (8403800, A) |
| Wabush | Jun 9 | Sep 14 | 95 | WABUSH LAKE A (8504175, C) |
Where these figures come from
Every value on this page is ECCC's own published figure from the 1981–2010 Canadian Climate Normals, pulled station by station and keyed on Climate ID — the stable identifier for a station, as opposed to its name, which can be ambiguous. The three rows read are Average Date of Last Spring Frost, Average Date of First Fall Frost and Average Length of Frost-Free Period. 56 towns of 166 come from 1991–2020 instead: those stations publish no frost section in 1981–2010 at all. The Period column marks each of them.
The 1981–2010 period is used because it is the one that publishes those averages for all but a handful of stations — and that is a strong tendency, not a rule. ECCC does publish averages in the newer period for a few stations, including one on this page. ECCC's newer 1991–2020 normals give a frost probability table instead — the date by which frost has passed at 10%, 25%, 50%, 75% and 90% likelihood — with no plain mean. That distribution is genuinely more useful for planning a tender crop, and it is covered separately in our frost-risk dataset; a page about average frost dates has to use the period that publishes averages.
Towns with no station, or with a station that publishes no frost average, are simply absent. That is a deliberate omission rather than a gap to fill: substituting a neighbouring station's reading without saying so would make a figure look local when it is not. Where the site does use a proxy station — St. Catharines reads from Vineland, about 15 km away — the page says so in as many words.
Using this data
Free to use with attribution. Suggested citation:
GrowersGuide.ca, “Frost Dates for 166 Canadian Towns,” derived from Environment and Climate Change Canada, Canadian Climate Normals 1981–2010 and 1991–2020. https://growersguide.ca/canadian-town-frost-dates
Cite the underlying station data to Environment and Climate Change Canada directly — the Climate ID in each row is all you need to find the original record.
Frequently Asked Questions
Do you have frost dates for small Canadian towns?
Yes — this page lists average last spring frost, average first fall frost and frost-free season length for 166 smaller towns across 10 provinces, in addition to the major cities covered elsewhere on the site. Every figure comes from Environment and Climate Change Canada's 1981-2010 Canadian Climate Normals, and each town names the specific weather station that recorded it along with that station's Climate ID, so you can verify any number directly at climate.weather.gc.ca. 56 towns of 166 come from 1991-2020 instead: those stations publish no frost section in 1981-2010 at all. The Period column marks each of them.
Why is there no hardiness zone for these towns?
Because none is published for them. Plant hardiness zones in Canada come from Natural Resources Canada, and NRCan publishes zones for the country as a mapped surface rather than as a value for every town. Working one out ourselves would be original research that a reader could easily mistake for the official figure, so we do not do it. The frost dates here are measured values; a zone would be a guess, and the two do not belong in the same table. For a zone, check the NRCan plant hardiness map directly.
Why does it matter which station a frost date came from?
It matters a great deal, and it is the reason every row here names one. Many Canadian climate stations sit at airports, which are typically open, flat, low-lying ground where cold air pools on a clear still night — so an airport frosts earlier in fall and later in spring than the town centre a few kilometres away. 49 of these 166 stations are airport or automatic stations. Treat the date as the honest reading it is, from that specific site, and expect a sheltered urban garden to run a few days milder.
What do the A, B, C and D codes mean?
They are ECCC's own rating of how complete the station's record was over the reference period, and they are shown rather than filtered out. An A means the station had a nearly complete record, and a D means it did not — the value is still ECCC's published figure, but it rests on fewer years of observation, so treat it as a good estimate rather than a precise one. 35 of the 166 towns here carry an A rating.
Why do these use the 1981-2010 normals rather than 1991-2020?
Because for almost every station the average frost dates only exist in the older period. ECCC published the 1991-2020 normals with a frost-probability table — the date by which frost has passed at 10%, 25%, 50%, 75% and 90% likelihood — but without the plain averages. The mean date of last spring frost is only published for 1981-2010, so that is what a page about average frost dates has to use for all but a handful of stations. It is not a universal rule, and this page names any station where it does not hold: a few stations publish averages in 1991-2020 and nothing at all in 1981-2010, and those are taken from the newer period instead. Our frost-risk dataset covers the probability distribution from the newer period separately.
My town is not listed — what should I do?
Pick the nearest listed town or city with similar terrain. Within about 50 km on comparable ground, frost dates typically shift only three to five days, so a nearby reading is a good guide. Elevation and distance from a large body of water matter more than raw distance: a town 20 km inland from a lake can frost noticeably earlier than one on the shore, and a valley bottom frosts before the slope above it. Many Canadian towns simply have no weather station, and several that do have one publish no frost average, so there is nothing honest we can list for them.