
Minnesota’s cold is not one size fits all. Towns far from the big lakes cool off faster at night, places tucked into forested basins trap dense air, and communities on the northwest prairie take Arctic air head-on. This ranking focuses on small towns with the highest average number of days each year where the temperature drops to 32°F or colder, using long-term climate normals. January lows set the deep-freeze baseline, and July highs show how far summer can rebound, but the main story is the long season of frosty nights.
Method note: “Days below freezing” reflects the average annual number of nights with a minimum at or below 32°F, drawn from long-term climate summaries aligned with NOAA 1991 to 2020 normals. Temperature ranges are representative monthly averages rounded for clarity.
30. Sauk Centre

Days below freezing: 178.5
Temperature range: January lows near 5°F; July highs around 81°F.
Where it is: Central Minnesota, on open prairie between the Minnesota and Mississippi river valleys.
Why so many freezing days: Cold Canadian air glides south across relatively flat country here, and clear winter nights promote strong radiational cooling. Snow cover often lingers, reflecting sunlight and helping nights dip below freezing well into spring.
29. Staples

Days below freezing: 180.7
Temperature range: January lows near 2°F; July highs about 81°F.
Where it is: North-central Minnesota, inland from the Mississippi headwaters.
Why so many freezing days: With no large lake to moderate temperatures, Staples cools fast after sunset. Strong winter high-pressure systems are common, bringing calm, cloudless nights that send lows below 32°F for roughly half the year.
28. Crookston

Days below freezing: 181.3
Temperature range: January lows near 0°F; July highs around 80°F.
Where it is: Northwestern Minnesota, on the Red River Valley floor.
Why so many freezing days: The broad, flat valley allows heat to escape quickly and Arctic fronts to sweep through with little resistance. Dry air and frequent clear skies maximize overnight cooling from fall through early spring.
27. Moose Lake

Days below freezing: 181.6
Temperature range: January lows near 5°F; July highs about 80°F.
Where it is: East-central Minnesota, inland from the Lake Superior shoreline.
Why so many freezing days: Just far enough from Superior to miss its winter moderation, Moose Lake sees cold snaps that linger overnight. Persistent snowpack and sheltered terrain keep nocturnal temperatures low.
26. Wadena

Days below freezing: 181.8
Temperature range: January lows about 1°F; July highs near 79°F.
Where it is: North-central Minnesota, between lake country and the prairie.
Why so many freezing days: Long winter nights and frequent clear spells drive radiational cooling. Polar air masses pass through often, and the shoulder seasons stay chilly, padding the freeze count on both ends of winter.
25. Cloquet

Days below freezing: 181.8
Temperature range: January lows near 1°F; July highs about 78°F.
Where it is: Inland from the North Shore, west of Duluth.
Why so many freezing days: Cloquet sits beyond Superior’s most protective reach, so it retains a continental winter feel. Snow cover and cold drainage from surrounding uplands keep nights frosty well into April.
24. Silver Bay

Days below freezing: 183.1
Temperature range: January lows near 3°F; July highs around 75°F.
Where it is: On Lake Superior’s North Shore, between Two Harbors and Grand Marais.
Why so many freezing days: The big lake caps daytime warmth and stretches the cool season. Nights still fall below 32°F for much of the year, and spring takes its time because Superior’s cold surface chills the boundary layer.
23. Mahnomen

Days below freezing: 183.4
Temperature range: January lows near 1°F; July highs about 79°F.
Where it is: Northwestern Minnesota, edging the prairie and wild rice lakes.
Why so many freezing days: Low humidity and open exposure make for rapid nighttime heat loss. Arctic high pressure often brings clear skies, and with little terrain to trap warmth, subfreezing mornings are routine.
22. Grand Rapids

Days below freezing: 183.6
Temperature range: January lows near 2°F; July highs around 79°F.
Where it is: North-central Minnesota, in mixed forest and lake country.
Why so many freezing days: Cold air settles into forested valleys on calm nights. Being inland from Superior removes lake moderation, so the freeze season stretches from early autumn into mid-spring.
21. Bigfork Township

Days below freezing: 186.5
Temperature range: January lows near 0°F; July highs about 79°F.
Where it is: Far northern Minnesota, deep in the pines of Itasca County.
Why so many freezing days: Dense forest and long winter nights create ideal conditions for radiational cooling. Polar air lingers under clear skies, and snow cover helps keep nocturnal temperatures pinned below freezing.
20. Fosston

Days below freezing: 186.7
Temperature range: January lows near −1°F; July highs about 79°F.
Where it is: Northwest Minnesota, between Thief River Falls and Bemidji.
Why so many freezing days: The open prairie allows Arctic air to spill in unhindered. Dry, cloud-free nights are common, so temperatures slide under 32°F for months on end.
19. Park Rapids

Days below freezing: 187.1
Temperature range: January lows near 0°F; July highs around 80°F.
Where it is: North-central lake country southwest of Itasca State Park.
Why so many freezing days: Far from any major lake, Park Rapids cools efficiently on clear nights. Persistent winter high pressure brings strings of frosty mornings that add up quickly.
18. Warroad

Days below freezing: 190.1
Temperature range: January lows near −3°F; July highs in the upper 70s.
Where it is: Far northern Minnesota on the shore of Lake of the Woods.
Why so many freezing days: High latitude means short winter days and long nights. Despite the nearby lake, the area still sees bitter Arctic air outbreaks that drop temperatures well below freezing for prolonged stretches.
17. Roseau

Days below freezing: 190.2
Temperature range: January lows near −3°F; July highs in the upper 70s.
Where it is: Near the Canadian border on flat, open farmland.
Why so many freezing days: With no terrain barriers, cold air masses sweep through freely. Clear skies and low humidity let heat radiate away fast, so frost arrives early and leaves late.
16. Bemidji

Days below freezing: 190.7
Temperature range: January lows near −1°F; July highs between 77°F and 80°F.
Where it is: North-central Minnesota at the edge of the Mississippi headwaters.
Why so many freezing days: Small inland lakes do little to blunt winter cold. Calm, cloudless nights under high pressure regularly push lows below 32°F, even deep into the shoulder seasons.
15. Bagley

Days below freezing: 192.7
Temperature range: January lows near −5°F; July highs about 78°F.
Where it is: Northwest forests west of Bemidji.
Why so many freezing days: Dry Arctic air, long nights, and frequent snow cover combine for extended frost seasons. The surrounding forest traps cold air, strengthening nighttime inversions.
14. Hallock

Days below freezing: 192.8
Temperature range: January lows near −5°F; July highs in the upper 70s.
Where it is: Minnesota’s northwest corner on the prairie.
Why so many freezing days: Hallock sits in the direct line of Arctic surges from the Canadian Prairies. With big skies and little cloud cover, radiational cooling is efficient and relentless.
13. Cook

Days below freezing: 193.8
Temperature range: January lows near −7°F; July highs in the upper 70s.
Where it is: Northern St. Louis County, surrounded by boreal forest.
Why so many freezing days: Clear, still winter nights are common here. Dense woods, interior distance from Superior, and frequent snow cover keep the nocturnal boundary layer cold.
12. Ely

Days below freezing: 195.0
Temperature range: January lows near −2°F; July highs around 77°F.
Where it is: Gateway to the Boundary Waters Canoe Area on the Canadian Shield.
Why so many freezing days: High latitude and exceptionally low winter humidity lead to sharp overnight temperature drops. Snowpack endures, and cold air pools in local basins long after sunset.
11. Orr

Days below freezing: 195.1
Temperature range: January lows near −1°F; July highs in the upper 70s.
Where it is: Northern Iron Range, north of Cook.
Why so many freezing days: The landscape favors cold-air drainage into river bottoms and low spots. With minimal lake influence, subfreezing nights stack up from October into late April.
10. Tower

Bjoertvedt, CC BY-SA 3.0, via Wikimedia Commons
Days below freezing: 197.6
Temperature range: January lows near −5°F; July highs in the mid to upper 70s.
Where it is: On the Vermilion River, east of the Mesabi Range.
Why so many freezing days: Tower is famous for extreme lows, and its valley setting amplifies nighttime cooling. Calm, cloudless winter spells deliver long runs of nights under 32°F.
9. Hibbing

Days below freezing: 198.9
Temperature range: January lows near −4°F; July highs in the mid to upper 70s.
Where it is: High on the Mesabi Range in northeastern Minnesota.
Why so many freezing days: Elevation and interior distance from Superior lock in continental cold. Even when daytime highs climb above freezing, overnight lows often tumble back below 32°F.
8. International Falls

Days below freezing: 199.0
Temperature range: January lows near −7°F; July highs in the mid 70s.
Where it is: Along the Rainy River on the Canadian border.
Why so many freezing days: Often called the Icebox of the Nation, it pairs high latitude with very low winter moisture. Clear skies and long nights bring nearly 200 subfreezing nights each year.
7. Eveleth

Days below freezing: 204.4
Temperature range: January lows near 1°F; July highs around 77°F.
Where it is: Central Iron Range, south of Virginia.
Why so many freezing days: Inland terrain and repeated Arctic intrusions keep nighttime temperatures suppressed. Snow cover accumulates and persists, enhancing overnight cooling for months.
6. Hoyt Lakes

Days below freezing: 204.6
Temperature range: January lows near −7°F; July highs in the upper 70s.
Where it is: Eastern Iron Range, roughly 25 miles inland from Lake Superior.
Why so many freezing days: Just far enough from the lake to avoid moderation, Hoyt Lakes chills quickly under clear skies. Forested surroundings and gentle topography encourage cold-air pooling.
5. Mountain Iron

Days below freezing: 205.2
Temperature range: January lows near −5°F; July highs around 77°F.
Where it is: On the Mesabi Range plateau west of Virginia.
Why so many freezing days: Elevation, dry Arctic air, and frequent high-pressure systems mean long strings of frosty nights. The snowpack’s high albedo helps keep evening temperatures dropping.
4. Virginia

Bjoertvedt, CC BY-SA 3.0, via Wikimedia Commons
Days below freezing: 205.5
Temperature range: January lows near −2°F; July highs in the mid 70s.
Where it is: Northeastern Minnesota, atop the Mesabi.
Why so many freezing days: Ridge-top exposure allows rapid evening heat loss. With limited lake influence and persistent winter inversions, nights fall below 32°F far into spring.
3. Biwabik

Days below freezing: 208.4
Temperature range: January lows near −7°F; July highs near 79°F.
Where it is: Eastern Mesabi Range, close to Giants Ridge.
Why so many freezing days: Dry, continental air and clear skies dominate winter. The combination of interior distance from Superior, elevation, and long nights puts Biwabik over 200 freezing days per year.
2. Aurora

Days below freezing: 208.8
Temperature range: January lows near −7°F; July highs around 77°F.
Where it is: Eastern Iron Range, surrounded by lakes and mixed forest.
Why so many freezing days: Aurora sits far inland, so there is little lake moderation in winter. Cold air funnels into low spots after sunset, snow cover sticks around, and frequent Arctic highs deliver week-long stretches of subfreezing nights.
1. Babbitt

Days below freezing: 211.2
Temperature range: January lows near −4°F; July highs around 77°F.
Where it is: Northern St. Louis County, between Ely and the Birch Lake country.
Why so many freezing days: High latitude, interior location, and long winter nights make Babbitt Minnesota’s frost marathoner. Snow tends to persist, skies clear out under high pressure, and cold air pools in nearby basins, pushing the freeze season from early autumn deep into late spring.
References
- Babbitt, MN Climate – BestPlaces
- Aurora, MN Climate – U.S. Climate Data
- Biwabik, MN Climate – Climate-Data.org
- Virginia, MN Weather Averages – Weather Spark
- Mountain Iron, MN Climate – BestPlaces
- Hoyt Lakes, MN Climate – U.S. Climate Data
- Eveleth, MN Climate – Climate-Data.org
- International Falls, MN Climate – BestPlaces
- Hibbing, MN Weather Averages – Weather Spark
- Tower, MN Climate – U.S. Climate Data
- Orr, MN Climate – BestPlaces
- Ely, MN Climate – Climate-Data.org
- Cook, MN Weather Averages – Weather Spark
- Hallock, MN Climate – U.S. Climate Data
- Bagley, MN Climate – BestPlaces
- Bemidji, MN Weather Averages – Weather Spark
- Roseau, MN Climate – Climate-Data.org
- Warroad, MN Climate – BestPlaces
- Park Rapids, MN Climate – U.S. Climate Data
- Fosston, MN Climate – BestPlaces
- Bigfork, MN Weather Averages – Weather Spark
- Grand Rapids, MN Climate – BestPlaces
- Mahnomen, MN Climate – Climate-Data.org
- Silver Bay, MN Climate – U.S. Climate Data
- Cloquet, MN Weather Averages – Weather Spark
- Wadena, MN Climate – BestPlaces
- Moose Lake, MN Climate – Climate-Data.org
- Crookston, MN Weather Averages – Weather Spark
- Staples, MN Climate – U.S. Climate Data
- Sauk Centre, MN Climate – BestPlaces
- Minnesota DNR – Frost and Freeze Dates
- NOAA NCEI – 1991 to 2020 U.S. Climate Normals