Frost dates in Wisconsin
Across Wisconsin's 204 NOAA stations with a frost every year, the typical last spring frost ranges from April 19 at Kenosha (600 feet above sea level) to June 3 at North Pelican (1,610 feet above sea level). The middle station's date is May 5.
Look up your ZIP code
Last frost across Wisconsin
The frost-free season runs from 106 days at North Pelican to 192 days at Milwaukee Mitchell Airport.
The station with the latest frost is about 210 miles farther north than the one with the earliest.
At 1 station, all high or far north, frost is possible in every month.
These are typical dates: in half of springs the last frost comes later. Each place's page, and each ZIP code lookup, also gives the late-year date, after which only 1 spring in 10 has a frost. That's the safer date for tender plants.
Frost dates for Wisconsin's larger places
| Place | Last spring frost | First fall frost | Season | Zone |
|---|---|---|---|---|
| Green Bay | April 30 | October 9 | 161 days | 5b |
| Madison | May 1 | October 10 | 160 days | 5a |
| Milwaukee | April 19 | October 29 | 192 days | 6a |
Typical (1-in-2) dates. Each place's page has the early and late years, a planting calendar and a printable planner. Zones are for the ZIP code nearest each place's center.
Hardiness zones in Wisconsin
Wisconsin's 872 ZIP codes in the USDA list fall in zones 3b to 6a: 3b (under 1 percent), 4a (8 percent), 4b (27 percent), 5a (29 percent), 5b (30 percent) and 6a (5 percent). Compared with the 2012 map, 44 percent of them moved to a warmer half zone (3 by a full zone or more), 56 percent stayed the same and 2 moved to a colder one.
A hardiness zone is about the coldest night of winter, which decides which shrubs, trees and perennials survive. Frost dates are about spring and fall, which decide when to plant. You need both. Read more about what the zones mean and what changed in 2023.
Every NOAA station in Wisconsin
All 205 stations in Wisconsin with frost statistics in NOAA's 1991 to 2020 normals, from A to Z. Station names are usually a town, an airport, or a distance and direction from a town. Find one near you and at a similar elevation.
| Station | Elevation (feet) | Last spring frost | First fall frost | Season (days) |
|---|---|---|---|---|
| Afton - Janesville WWTP | 760 | April 26 | October 15 | 170 |
| Alma Dam 4 | 670 | April 28 | October 14 | 168 |
| Amery | 1,070 | May 5 | October 4 | 151 |
| Antigo | 1,520 | May 14 | September 30 | 139 |
| Appleton | 790 | May 4 | October 6 | 154 |
| Arlington | 1,050 | May 4 | October 6 | 154 |
| Ashland 3 S | 830 | May 20 | October 2 | 133 |
| Ashland Kennedy Mem Airport | 830 | May 23 | September 29 | 125 |
| Augusta RS | 960 | May 7 | October 1 | 146 |
| Baldwin | 1,100 | May 6 | October 2 | 148 |
| Baraboo | 820 | May 5 | October 5 | 152 |
| Bayfield 6 N | 820 | May 20 | October 8 | 141 |
| Bayfield Fish Hatchery | 620 | May 23 | October 2 | 131 |
| Beaver Dam WWTP | 860 | May 2 | October 9 | 157 |
| Belgium WWTP | 730 | May 5 | October 12 | 159 |
| Beloit | 790 | May 1 | October 12 | 162 |
| Berlin WWTP | 770 | May 1 | October 8 | 158 |
| Big Falls Hydro | 1,200 | May 7 | October 3 | 147 |
| Blair | 860 | May 9 | October 1 | 143 |
| Bloomer | 990 | May 5 | October 3 | 151 |
| Boscobel Airport | 670 | May 3 | October 7 | 155 |
| Brillion | 810 | May 6 | October 6 | 151 |
| Brodhead WWTP | 780 | April 29 | October 12 | 165 |
| Brookfield WWTP | 830 | April 30 | October 14 | 164 |
| Brule RS | 1,000 | May 24 | September 26 | 124 |
| Burlington | 750 | May 5 | October 9 | 156 |
| Butternut 3 SW | 1,570 | May 22 | September 24 | 126 |
| Cashton | 1,370 | April 27 | October 14 | 170 |
| Cashton 3 NNW | 940 | May 6 | October 3 | 150 |
| Charmany Farm | 1,050 | April 28 | October 15 | 169 |
| Chilton | 840 | May 1 | October 14 | 162 |
| Clam Lake 4 W | 1,500 | May 16 | September 30 | 136 |
| Clinton WWTP | 930 | April 30 | October 10 | 161 |
| Clintonville | 800 | May 4 | October 6 | 154 |
| Couderay 7 W | 1,300 | Frost possible any month | 100 | |
| Crivitz High Falls | 950 | May 26 | September 22 | 118 |
| Cumberland | 1,240 | May 5 | October 4 | 152 |
| Dalton | 860 | May 6 | October 2 | 150 |
| Danbury | 950 | May 11 | September 30 | 138 |
| Darlington WWTP | 850 | May 3 | October 4 | 153 |
| Delavan WWTP | 880 | April 28 | October 14 | 168 |
| Denmark WWTP | 810 | May 6 | October 12 | 158 |
| Dodge | 690 | May 5 | October 5 | 152 |
| Dodgeville WWTP | 1,120 | May 3 | October 7 | 157 |
| Drummond | 1,340 | May 20 | October 1 | 132 |
| Durand | 710 | May 1 | October 10 | 162 |
| Eagle River | 1,620 | May 25 | September 24 | 121 |
| Eau Claire 3 SW | 880 | April 24 | October 14 | 170 |
| Eau Claire Regional Airport | 890 | May 8 | October 4 | 149 |
| Ellsworth 1 E | 1,030 | May 13 | September 29 | 139 |
| Ephraim 1 NE-WWTP | 730 | May 14 | October 18 | 155 |
| Florence | 1,300 | May 24 | September 25 | 121 |
| Fond Du Lac 2 SW | 770 | April 27 | October 19 | 174 |
| Fond Du Lac Co Airport | 810 | May 1 | October 10 | 160 |
| Fond Du Lac WWTP | 750 | May 1 | October 12 | 162 |
| Forestville-4 E | 690 | May 6 | October 17 | 163 |
| Fort Atkinson | 800 | April 28 | October 13 | 166 |
| Foxboro | 930 | June 1 | September 22 | 113 |
| Friendship | 940 | May 9 | October 3 | 147 |
| Gays Mills | 690 | May 3 | October 7 | 156 |
| Genoa Dam 8 | 640 | April 22 | October 17 | 178 |
| Germantown | 850 | May 6 | October 8 | 154 |
| Goodman Sanitary Dist | 1,450 | May 24 | September 30 | 128 |
| Gordon | 1,040 | May 22 | September 26 | 126 |
| Grafton WWTP | 740 | April 23 | October 24 | 182 |
| Grantsburg | 990 | May 11 | October 1 | 141 |
| Green Bay | 680 | April 30 | October 9 | 161 |
| Green Bay Botanical | 700 | May 7 | October 9 | 154 |
| Green Bay WFO | 680 | May 1 | October 11 | 160 |
| Hales Corners/whitnall Park/bo | 770 | May 3 | October 14 | 162 |
| Hancock Exp Farm | 1,090 | May 10 | October 3 | 146 |
| Hartford WWTP | 960 | May 8 | October 3 | 148 |
| Hayward Municipal Airport | 1,200 | May 23 | September 22 | 122 |
| Hayward RS | 1,200 | May 22 | September 23 | 124 |
| Hillsboro | 940 | May 5 | October 4 | 153 |
| Hillsboro 2 SW | 1,040 | May 12 | September 29 | 138 |
| Hingham WWTP | 760 | May 3 | October 16 | 165 |
| Holcombe | 1,060 | May 5 | October 2 | 149 |
| Horicon WWTP | 880 | May 1 | October 10 | 158 |
| Hurley | 1,440 | May 24 | September 28 | 128 |
| Hustisford WWTP | 860 | April 28 | October 10 | 164 |
| Jackson | 900 | April 30 | October 15 | 167 |
| Jefferson WWTP | 780 | April 25 | October 18 | 173 |
| Jim Falls 3 NW | 1,070 | May 1 | October 8 | 158 |
| Jump River 3 E | 1,270 | May 20 | September 23 | 125 |
| Kenosha | 600 | April 19 | October 26 | 189 |
| Kenosha Regional Airport | 740 | April 28 | October 19 | 174 |
| Kewaunee | 590 | May 1 | October 18 | 168 |
| La Crosse Municipal Airport | 650 | April 23 | October 17 | 177 |
| La Crosse WFO | 1,310 | April 27 | October 13 | 167 |
| Ladysmith 3 W | 1,130 | May 27 | September 22 | 117 |
| Lake Geneva WWTP | 850 | April 25 | October 21 | 179 |
| Lake Mills WWTP | 810 | April 29 | October 14 | 167 |
| Lakewood 3 NE | 1,200 | May 22 | September 28 | 129 |
| Lancaster 4 WSW | 1,040 | April 27 | October 11 | 166 |
| Laona 6 SW | 1,700 | May 19 | September 29 | 131 |
| Lodi | 820 | May 1 | October 10 | 162 |
| Lone Rock Tri Co Airport | 720 | April 30 | October 9 | 161 |
| Luck | 1,220 | May 6 | October 4 | 149 |
| Lynxville Dam 9 | 630 | April 24 | October 17 | 175 |
| Madeline Island | 660 | May 20 | October 9 | 140 |
| Madison Dane Regional Airport | 870 | May 1 | October 10 | 160 |
| Manitowoc | 580 | April 30 | October 20 | 171 |
| Marinette | 590 | May 4 | October 11 | 160 |
| Markesan | 860 | May 8 | October 2 | 144 |
| Marshfield Exp Farm | 1,240 | May 5 | October 5 | 150 |
| Marshfield Municipal Airport | 1,260 | May 5 | October 5 | 152 |
| Mather 3 NW | 980 | May 6 | October 3 | 148 |
| Mauston 1 SE | 870 | May 2 | October 7 | 158 |
| Mazomanie WWTP | 760 | May 7 | October 1 | 148 |
| Medford | 1,470 | May 11 | October 1 | 141 |
| Mellen 4 NE | 1,300 | May 26 | September 27 | 125 |
| Menomonie | 780 | May 9 | October 1 | 143 |
| Merrill | 1,250 | May 11 | September 30 | 139 |
| Milwaukee Mitchell Airport | 670 | April 19 | October 29 | 192 |
| Minocqua | 1,600 | May 23 | September 27 | 127 |
| Minong 5 WSW | 1,080 | May 10 | October 4 | 144 |
| Mondovi | 830 | May 10 | October 2 | 144 |
| Monroe WWTP | 990 | April 27 | October 14 | 170 |
| Montello | 790 | May 3 | October 5 | 153 |
| Mount Mary College | 720 | April 26 | October 18 | 173 |
| Necedah | 920 | May 17 | September 25 | 131 |
| Necedah 5 WNW | 930 | May 1 | October 3 | 157 |
| Neillsville 3 ESE | 1,080 | May 10 | October 1 | 144 |
| New London | 800 | May 4 | October 6 | 153 |
| North Pelican | 1,610 | June 3 | September 18 | 106 |
| Oconomowoc WWTP | 860 | April 30 | October 12 | 164 |
| Oconto 4 W | 660 | May 9 | October 6 | 150 |
| Oshkosh | 750 | April 24 | October 20 | 178 |
| Oshkosh Wittman Airport | 780 | April 30 | October 13 | 165 |
| Owen 1 E | 1,240 | May 13 | September 26 | 136 |
| Paddock Lake | 770 | April 30 | October 15 | 167 |
| Park Falls DNR HQ | 1,530 | May 15 | September 28 | 134 |
| Pattison Ranger Staion | 1,100 | May 18 | October 3 | 135 |
| Pell Lake | 840 | April 30 | October 13 | 164 |
| Peshtigo | 600 | May 11 | October 5 | 145 |
| Platteville | 990 | April 30 | October 13 | 166 |
| Plymouth WWTP | 830 | May 3 | October 10 | 159 |
| Port Washington | 590 | April 27 | October 22 | 176 |
| Port Wing | 650 | May 31 | October 2 | 123 |
| Portage WWTP | 780 | April 28 | October 10 | 164 |
| Prairie Du Chien | 660 | April 28 | October 12 | 166 |
| Prentice #2 | 1,540 | May 23 | September 23 | 124 |
| Racine | 590 | April 20 | October 24 | 184 |
| Racine Batten Airport | 670 | April 24 | October 24 | 180 |
| Reedsburg | 930 | May 2 | October 7 | 156 |
| Rest Lake | 1,610 | May 25 | September 21 | 117 |
| Rhinelander | 1,570 | May 22 | September 24 | 125 |
| Rhinelander 4 NE | 1,580 | May 23 | September 23 | 124 |
| Rhinelander Oneida Airport | 1,600 | May 26 | September 23 | 120 |
| Rice Lake | 1,100 | May 8 | October 2 | 145 |
| Rice Reservoir Tomahawk-2 | 1,460 | May 10 | October 4 | 146 |
| Richfield 3 SSW | 980 | April 30 | October 16 | 167 |
| Richland Center | 730 | May 5 | October 6 | 154 |
| Ridgeland 1 NNE | 1,080 | May 10 | September 29 | 140 |
| Ripon 5 NE | 930 | May 1 | October 11 | 163 |
| River Falls | 940 | May 11 | October 1 | 143 |
| Rochester WWTP | 780 | May 5 | October 10 | 156 |
| Rock Springs 3 SW | 1,260 | April 24 | October 20 | 178 |
| Rosholt 9 NNE | 1,180 | May 6 | October 5 | 150 |
| Sauk City WWTP | 750 | May 4 | October 6 | 155 |
| Saukville WWTP | 770 | May 5 | October 11 | 158 |
| Saxon 1 WSW | 1,160 | May 23 | October 1 | 132 |
| Shawano 2 SSW | 810 | May 9 | October 2 | 144 |
| Sheboygan | 650 | April 25 | October 23 | 179 |
| Sheboygan Co Mem Airport | 740 | May 5 | October 8 | 154 |
| Sheboygan WWTP | 600 | May 2 | October 21 | 169 |
| Slinger WWTP | 1,030 | May 5 | October 5 | 152 |
| Solon Springs | 1,130 | May 12 | October 2 | 142 |
| South Milwaukee WWTP | 650 | April 22 | October 26 | 184 |
| Sparta | 780 | May 9 | October 1 | 144 |
| Spooner Ag Res Station | 1,100 | May 14 | September 28 | 135 |
| St Croix Falls | 750 | May 4 | October 8 | 156 |
| St Germain | 1,640 | May 19 | October 3 | 136 |
| Stanley WWTP | 1,080 | May 7 | October 3 | 147 |
| Steuben 4 SE | 1,010 | April 22 | October 20 | 179 |
| Stevens Point | 1,080 | May 4 | October 7 | 155 |
| Stockbridge-Munsee Reservation | 1,050 | May 13 | September 30 | 141 |
| Stoughton | 840 | April 30 | October 11 | 163 |
| Sturgeon Bay Exp Farm | 700 | May 8 | October 13 | 157 |
| Sullivan 3 SE | 930 | May 3 | October 9 | 157 |
| Superior | 610 | May 6 | October 9 | 154 |
| Suring | 790 | May 14 | October 1 | 139 |
| Town of Westford | 880 | May 1 | October 11 | 163 |
| Trempealeau Dam 6 | 660 | April 29 | October 11 | 165 |
| Two Rivers | 590 | April 27 | October 21 | 175 |
| Union Grove | 730 | May 5 | October 8 | 156 |
| Uw Arboretum - Madison | 870 | May 1 | October 9 | 161 |
| Viroqua | 1,260 | May 7 | October 2 | 148 |
| W Bend Public Works | 980 | May 1 | October 12 | 161 |
| Washington Is | 690 | May 15 | October 14 | 152 |
| Waterloo WWTP | 800 | April 30 | October 9 | 163 |
| Watertown WWTP | 830 | April 28 | October 12 | 167 |
| Waukesha WWTP | 790 | May 1 | October 13 | 162 |
| Waupaca | 840 | May 8 | October 6 | 151 |
| Wausau Downtown Airport | 1,180 | May 6 | October 4 | 150 |
| West Allis | 720 | April 26 | October 22 | 177 |
| West Bend | 940 | May 4 | October 11 | 157 |
| Weyerhaeuser 1 N | 1,190 | May 9 | September 29 | 140 |
| Whitewater | 880 | May 2 | October 9 | 157 |
| Willow Reservoir | 1,530 | May 13 | October 3 | 141 |
| Winter | 1,350 | May 19 | September 27 | 129 |
| Wisconsin Dells | 840 | May 8 | October 3 | 146 |
| Wisconsin Rapids | 1,030 | May 9 | September 30 | 142 |
| Wisconsin Rapids Alexander Field | 1,020 | May 8 | October 1 | 145 |
Typical (1-in-2) dates at 32°F. For the early and late years, and a planting calendar built from your own dates, look up your ZIP code.