Michigan last frost dates, station by station
Half of Michigan's 211 weather stations record their last spring frost by May 8. That single date hides a 51-day spread: Apr 17 at South Haven to Jun 7 at Vanderbilt. Eight stations in ten fall between Apr 28 and May 25. Find yours below — the date for your town is the one that matters.
One state, 51 days of last frost
The darker band is where eight stations in ten sit — Apr 28 to May 25, a spread of 27 days on its own. The pale ends are real places too: South Haven, at 590 feet, clears frost around Apr 17, and Vanderbilt at 905 feet is still at risk until Jun 7. Those two sit about 191 miles apart north to south, and that is what the gap is: latitude rather than elevation.
This is why one date for a state is not an answer. Plant to the state median in the wrong half of Michigan and you are either throwing away 21 days of season or losing the plants.
Find your nearest station
Every Michigan station in NOAA’s 1991–2020 normals, earliest last frost first. Cautious is the date frost is done by in nine years out of ten. Even odds is the coin flip most seed packets mean. Early is a date frost usually still follows, for gardeners who own row cover and don’t mind using it. Season is that station’s growing season in days, which almost nobody publishes per station.
| Station | Cautious10% | Even odds50% | Early90% | Season | Elev. |
|---|---|---|---|---|---|
| S Haven | May 4 | Apr 17 | Apr 3 | 201 d | 590 ft |
| Port Huron | May 4 | Apr 19 | Apr 7 | 196 d | 590 ft |
| Detroit Metro AP | May 8 | Apr 20 | Apr 6 | 188 d | 631 ft |
| Detroit City AP | May 6 | Apr 21 | Apr 7 | 190 d | 626 ft |
| Eau Claire 4 NE | May 7 | Apr 22 | Apr 6 | 189 d | 840 ft |
| Monroe | May 7 | Apr 23 | Apr 8 | 182 d | 586 ft |
| Detroit Willow Run AP | May 11 | Apr 24 | Apr 10 | 179 d | 777 ft |
| Milan WWTP | May 9 | Apr 26 | Apr 13 | 175 d | 680 ft |
| Pontiac WWTP | May 12 | Apr 26 | Apr 15 | 177 d | 890 ft |
| Saginaw Mbs Intl AP | May 13 | Apr 26 | Apr 13 | 172 d | 660 ft |
| Carleton 2W | May 13 | Apr 27 | Apr 12 | 176 d | 627 ft |
| Dearborn #2 | May 11 | Apr 27 | Apr 12 | 181 d | 605 ft |
| Dundee | May 13 | Apr 27 | Apr 14 | 176 d | 660 ft |
| Essexville | May 11 | Apr 27 | Apr 15 | 173 d | 588 ft |
| Holland Wtp | May 12 | Apr 27 | Apr 13 | 178 d | 617 ft |
| Newport 4SSE | May 12 | Apr 27 | Apr 12 | 177 d | 578 ft |
| Niles | May 14 | Apr 27 | Apr 10 | 180 d | 650 ft |
| Adrian Lenawee Co AP | May 14 | Apr 27 | Apr 13 | 173 d | 796 ft |
| East Lansing 4 S | May 16 | Apr 28 | Apr 13 | 173 d | 880 ft |
| Saint Johns | May 12 | Apr 28 | Apr 12 | 179 d | 743 ft |
| Holland Tulip City AP | May 16 | Apr 28 | Apr 13 | 175 d | 689 ft |
| Kalamazoo Battle Ck Intl AP | May 13 | Apr 28 | Apr 13 | 172 d | 868 ft |
| Port Hope | May 14 | Apr 28 | Apr 13 | 187 d | 590 ft |
| Blissfield 1NNE | May 15 | Apr 29 | Apr 15 | 168 d | 690 ft |
| Grosse Pointe Farms | May 13 | Apr 29 | Apr 15 | 176 d | 613 ft |
| Gull Lake Biological Stn | May 18 | Apr 29 | Apr 12 | 173 d | 925 ft |
| Midland | May 16 | Apr 29 | Apr 16 | 167 d | 640 ft |
| Saginaw #3 | May 13 | Apr 29 | Apr 14 | 175 d | 600 ft |
| Pontiac Oakland Co Intl AP | May 14 | Apr 29 | Apr 16 | 172 d | 976 ft |
| Grand Rapids | May 15 | Apr 29 | Apr 14 | 174 d | 778 ft |
| Chelsea | May 17 | Apr 30 | Apr 18 | 163 d | 900 ft |
| Eaton Rapids | May 16 | Apr 30 | Apr 16 | 165 d | 870 ft |
| Grand Haven WWTP | May 16 | Apr 30 | Apr 17 | 175 d | 605 ft |
| Hell | May 17 | Apr 30 | Apr 16 | 166 d | 890 ft |
| Manchester | May 16 | Apr 30 | Apr 16 | 165 d | 965 ft |
| Central Michigan Univ | May 16 | Apr 30 | Apr 17 | 171 d | 795 ft |
| NW Michigan Rsch Farm | May 15 | Apr 30 | Apr 16 | 182 d | 820 ft |
| Nwsfo Grand Rapids | May 17 | Apr 30 | Apr 16 | 167 d | 775 ft |
| Three Rivers | May 15 | Apr 30 | Apr 16 | 170 d | 810 ft |
| Mt Clemens Ang Base | May 15 | Apr 30 | Apr 16 | 174 d | 580 ft |
| Battle Creek Kellogg AP | May 17 | Apr 30 | Apr 16 | 170 d | 928 ft |
| Muskegon Co AP | May 18 | Apr 30 | Apr 17 | 170 d | 625 ft |
| Adrian 2 NNE | May 17 | May 1 | Apr 18 | 164 d | 760 ft |
| Alma | May 19 | May 1 | Apr 17 | 164 d | 729 ft |
| Charlevoix | May 16 | May 1 | Apr 18 | 178 d | 593 ft |
| Charlotte | May 18 | May 1 | Apr 19 | 164 d | 902 ft |
| Dearborn | May 18 | May 1 | Apr 17 | 166 d | 605 ft |
| Farmington | May 16 | May 1 | Apr 19 | 165 d | 720 ft |
| Goodrich | May 18 | May 1 | Apr 20 | 164 d | 910 ft |
| Owosso WWTP | May 17 | May 1 | Apr 17 | 164 d | 730 ft |
| Richmond 4 NNW | May 17 | May 1 | Apr 18 | 170 d | 765 ft |
| Jackson Reynolds Fld | May 18 | May 1 | Apr 16 | 164 d | 998 ft |
| Lansing Capital City AP | May 18 | May 1 | Apr 18 | 162 d | 841 ft |
| Coldwater St School | May 18 | May 2 | Apr 18 | 163 d | 984 ft |
| Frankfort 2NE | May 20 | May 2 | Apr 19 | 175 d | 948 ft |
| Harbor Beach 1 SSE | May 17 | May 2 | Apr 19 | 173 d | 595 ft |
| Saline WWTP | May 18 | May 2 | Apr 17 | 160 d | 750 ft |
| Saline 4SW | May 18 | May 2 | Apr 19 | 160 d | 840 ft |
| Sandusky | May 17 | May 2 | Apr 19 | 165 d | 774 ft |
| Algonac WWTP | May 23 | May 3 | Apr 20 | 167 d | 580 ft |
| Ann Arbor U Of Mich | May 20 | May 3 | Apr 20 | 160 d | 813 ft |
| Auburn 2NE | May 23 | May 3 | Apr 20 | 161 d | 605 ft |
| Durand WWTP | May 19 | May 3 | Apr 21 | 159 d | 770 ft |
| Flint 7W | May 20 | May 3 | Apr 20 | 162 d | 679 ft |
| Frankenmuth 1SE | May 20 | May 3 | Apr 19 | 161 d | 635 ft |
| Hastings | May 22 | May 3 | Apr 20 | 158 d | 821 ft |
| Hillsdale | May 19 | May 3 | Apr 20 | 161 d | 1,080 ft |
| Ionia 2SSW | May 21 | May 3 | Apr 17 | 161 d | 805 ft |
| Linden WWTP | May 20 | May 3 | Apr 21 | 161 d | 863 ft |
| Milan 4 ESE | May 25 | May 3 | Apr 17 | 158 d | 670 ft |
| Tecumseh | May 18 | May 3 | Apr 20 | 160 d | 780 ft |
| Allegan 5NE | May 22 | May 4 | Apr 22 | 160 d | 750 ft |
| Dowagiac 1 W | May 22 | May 4 | Apr 21 | 158 d | 740 ft |
| Howell WWTP | May 21 | May 4 | Apr 20 | 156 d | 917 ft |
| Lapeer WWTP | May 22 | May 4 | Apr 22 | 160 d | 820 ft |
| Lapeer 2W | May 21 | May 4 | Apr 21 | 161 d | 837 ft |
| Lexington Wtp | May 20 | May 4 | Apr 20 | 171 d | 622 ft |
| Morenci | May 19 | May 4 | Apr 22 | 156 d | 770 ft |
| Port Austin WWTP | May 19 | May 4 | Apr 20 | 172 d | 605 ft |
| Benton Harbor AP | May 22 | May 4 | Apr 19 | 164 d | 643 ft |
| Ann Arbor SE | May 20 | May 5 | Apr 21 | 157 d | 832 ft |
| Bad Axe | May 20 | May 5 | Apr 22 | 163 d | 715 ft |
| Benton Harbor AP | May 26 | May 5 | Apr 20 | 161 d | 625 ft |
| Corunna 2 NE | May 20 | May 5 | Apr 20 | 160 d | 762 ft |
| Detour Village | May 20 | May 5 | Apr 24 | 167 d | 595 ft |
| Port Hope | May 21 | May 5 | Apr 21 | 169 d | 600 ft |
| Standish 4NE | May 23 | May 5 | Apr 21 | 156 d | 615 ft |
| Tipton 2WNW | May 23 | May 5 | Apr 22 | 157 d | 970 ft |
| Whitmore Lake 1NW | May 21 | May 5 | Apr 22 | 160 d | 906 ft |
| Alpena WWTP | May 21 | May 5 | Apr 21 | 163 d | 590 ft |
| Battle Creek 5NW | May 23 | May 6 | Apr 21 | 158 d | 923 ft |
| E Grand Rapids | May 23 | May 6 | Apr 24 | 157 d | 746 ft |
| Milford Gm Proving Ground | May 22 | May 6 | Apr 21 | 157 d | 970 ft |
| Petoskey | May 21 | May 6 | Apr 23 | 166 d | 599 ft |
| Flint Bishop Intl AP | May 23 | May 6 | Apr 21 | 155 d | 770 ft |
| Beulah 7SSW | May 25 | May 7 | Apr 23 | 163 d | 773 ft |
| Bloomingdale | May 22 | May 7 | Apr 23 | 156 d | 736 ft |
| Caro WWTP | May 24 | May 7 | Apr 24 | 154 d | 690 ft |
| Cass City 1 SSW | May 22 | May 7 | Apr 25 | 152 d | 698 ft |
| St Ignace Mackinac Br | May 22 | May 7 | Apr 25 | 167 d | 595 ft |
| Burton 4N | May 22 | May 8 | Apr 28 | 148 d | 757 ft |
| E Tawas | May 26 | May 8 | Apr 26 | 148 d | 586 ft |
| Filion 5NNW | May 22 | May 8 | Apr 24 | 162 d | 635 ft |
| Fremont 4 WSW | May 25 | May 8 | Apr 24 | 155 d | 800 ft |
| Harrisville 2NNE | May 24 | May 8 | Apr 26 | 160 d | 585 ft |
| Marquette | May 23 | May 8 | Apr 26 | 164 d | 665 ft |
| Ann Arbor Muni AP | May 26 | May 8 | Apr 23 | 147 d | 839 ft |
| Manistique WWTP | May 23 | May 9 | Apr 27 | 154 d | 600 ft |
| Northport 2W | May 24 | May 9 | Apr 24 | 169 d | 746 ft |
| Traverse City Munson | May 23 | May 9 | Apr 26 | 156 d | 635 ft |
| Vassar | May 24 | May 9 | Apr 26 | 150 d | 630 ft |
| Gladwin | May 23 | May 9 | Apr 26 | 148 d | 775 ft |
| Sault Ste Marie Sanderson Fld | May 27 | May 9 | Apr 27 | 151 d | 722 ft |
| Rogers City | May 24 | May 10 | Apr 28 | 154 d | 615 ft |
| White Lake 4E | May 26 | May 10 | Apr 25 | 148 d | 1,053 ft |
| Copper Harbor | Jun 2 | May 10 | Apr 26 | 161 d | 626 ft |
| Atlanta 5 WNW | May 31 | May 11 | Apr 27 | 146 d | 1,180 ft |
| Cheboygan | May 25 | May 11 | Apr 29 | 152 d | 588 ft |
| St James 4SSW Beaver | May 26 | May 11 | Apr 27 | 159 d | 672 ft |
| Gaylord 9SSW | May 29 | May 12 | Apr 27 | 147 d | 1,468 ft |
| Hart 3 WSW | May 28 | May 12 | Apr 25 | 151 d | 770 ft |
| Yale 1 NNW | May 26 | May 12 | Apr 29 | 147 d | 820 ft |
| Traverse City Cherry Cptl AP | May 27 | May 12 | Apr 26 | 155 d | 618 ft |
| Alpena 10NW | May 30 | May 13 | Apr 30 | 141 d | 740 ft |
| Big Rapids Wtp | May 28 | May 13 | Apr 28 | 142 d | 898 ft |
| Ki Sawyer WWTP | May 29 | May 13 | Apr 28 | 141 d | 1,116 ft |
| Old Mission 3SSW | May 29 | May 13 | Apr 28 | 158 d | 656 ft |
| Escanaba | May 31 | May 13 | Apr 30 | 147 d | 590 ft |
| Kent City 2 SW | May 31 | May 14 | Apr 29 | 135 d | 840 ft |
| Manistee 3SE | May 31 | May 14 | Apr 27 | 151 d | 670 ft |
| Cadillac 9&10 News | May 30 | May 15 | Apr 30 | 139 d | 1,363 ft |
| Cross Village 1E | May 30 | May 15 | Apr 30 | 152 d | 721 ft |
| Oil City 2S | Jun 2 | May 15 | Apr 30 | 134 d | 680 ft |
| W Branch 3SE | May 29 | May 15 | Apr 29 | 143 d | 885 ft |
| Gaylord 9 SSW | May 30 | May 15 | Apr 28 | 145 d | 1,461 ft |
| E Jordan 2NW | May 30 | May 16 | Apr 29 | 144 d | 646 ft |
| Garden Corners | Jun 3 | May 16 | May 1 | 129 d | 587 ft |
| Hale Loud Dam | May 30 | May 16 | May 1 | 143 d | 728 ft |
| Munising | Jun 2 | May 16 | May 1 | 148 d | 680 ft |
| Petoskey Ncmc | May 31 | May 16 | Apr 30 | 147 d | 748 ft |
| St Ignace | May 29 | May 16 | Apr 30 | 149 d | 661 ft |
| Covington 1NNW | May 30 | May 17 | May 2 | 134 d | 1,611 ft |
| Hesperia 4 WNW | Jun 1 | May 17 | Apr 30 | 137 d | 780 ft |
| Iron Mtn-Kingsford WWTP | May 31 | May 17 | May 2 | 135 d | 1,071 ft |
| Ludington 4 SE | Jun 1 | May 17 | Apr 28 | 144 d | 690 ft |
| Hancock Houghton Co AP | Jun 3 | May 17 | May 1 | 138 d | 1,063 ft |
| Alpena Co Rgnl AP | May 31 | May 17 | May 1 | 136 d | 684 ft |
| Greenville 2 NNE | Jun 3 | May 18 | Apr 29 | 133 d | 882 ft |
| Rapid Rvr 4SSE | Jun 2 | May 18 | May 3 | 137 d | 598 ft |
| Cornell 5SE | Jun 3 | May 19 | May 2 | 133 d | 794 ft |
| Glennie 2SE | Jun 2 | May 19 | May 3 | 133 d | 894 ft |
| Ironwood #2 | Jun 3 | May 19 | May 2 | 130 d | 1,520 ft |
| Mio Hydro Plt | May 31 | May 19 | May 1 | 136 d | 960 ft |
| Montague 4 NW | Jun 6 | May 19 | May 1 | 136 d | 650 ft |
| Cadillac | Jun 3 | May 19 | May 2 | 135 d | 1,295 ft |
| Houghton Lk Roscommon AP | Jun 3 | May 19 | Apr 30 | 125 d | 1,151 ft |
| Copper Harbor Ft Wilkins | Jun 3 | May 20 | May 3 | 148 d | 625 ft |
| Houghton Lake 2NW | Jun 3 | May 20 | May 2 | 136 d | 1,161 ft |
| Ironwood | Jun 3 | May 20 | May 2 | 132 d | 1,430 ft |
| Mio WWTP | Jun 2 | May 20 | May 2 | 133 d | 1,037 ft |
| Lupton 1S | Jun 5 | May 21 | May 5 | 129 d | 908 ft |
| Newberry Correctional Facility | Jun 4 | May 21 | May 4 | 135 d | 886 ft |
| Pellston AP #2 | Jun 5 | May 21 | May 4 | 128 d | 712 ft |
| Trout Lake 1SW | Jun 5 | May 21 | May 4 | 131 d | 823 ft |
| Atlanta | Jun 5 | May 22 | May 5 | 127 d | 879 ft |
| Big Bay 1NW | Jun 5 | May 22 | May 3 | 137 d | 765 ft |
| Lake City Exp Farm | Jun 6 | May 22 | May 8 | 125 d | 1,230 ft |
| Maple City 1E | Jun 6 | May 22 | May 4 | 140 d | 799 ft |
| Onaway 4N | Jun 2 | May 22 | May 3 | 135 d | 745 ft |
| Sault Ste Marie | Jun 4 | May 22 | May 5 | 136 d | 630 ft |
| Stephenson 5WSW | Jun 4 | May 22 | May 7 | 126 d | 690 ft |
| Gaylord Otsego Co AP | Jun 6 | May 22 | May 2 | 130 d | 1,335 ft |
| Marquette | Jun 4 | May 22 | May 6 | 129 d | 1,411 ft |
| Alberta Ford For Ctr | Jun 8 | May 23 | May 4 | 128 d | 1,310 ft |
| Boyne Falls | Jun 6 | May 23 | May 4 | 133 d | 728 ft |
| E Jordan | Jun 6 | May 23 | May 5 | 131 d | 587 ft |
| Grayling | Jun 7 | May 23 | May 6 | 124 d | 1,137 ft |
| Greenland 6N | Jun 8 | May 23 | May 6 | 128 d | 791 ft |
| Hale 5SSW #2 | Jun 7 | May 23 | May 5 | 127 d | 816 ft |
| Moran | Jun 6 | May 23 | May 6 | 130 d | 695 ft |
| Whitefish Pt | Jun 8 | May 23 | May 7 | 144 d | 622 ft |
| Munsing Lakeshore | Jun 8 | May 23 | May 7 | 138 d | 612 ft |
| Fife Lake 2WNW | Jun 6 | May 24 | May 7 | 130 d | 1,052 ft |
| Kalkaska | Jun 7 | May 24 | May 7 | 128 d | 1,035 ft |
| Rudyard 4N | Jun 10 | May 24 | May 8 | 127 d | 753 ft |
| S Boardman 2W | Jun 8 | May 24 | May 3 | 133 d | 1,046 ft |
| Baraga 7NW | Jun 9 | May 25 | May 9 | 119 d | 652 ft |
| Gaylord | Jun 8 | May 25 | May 8 | 125 d | 1,318 ft |
| Watton 2WSW | Jun 11 | May 25 | May 7 | 123 d | 1,394 ft |
| Iron Mtn Ford AP | Jun 6 | May 25 | May 10 | 121 d | 1,149 ft |
| Bergland Dam | Jun 8 | May 26 | May 9 | 123 d | 1,300 ft |
| Engadine Mdot | Jun 10 | May 26 | May 12 | 127 d | 685 ft |
| Ishpeming WWTP | Jun 8 | May 26 | May 10 | 119 d | 1,406 ft |
| Kalkaska 11SE | Jun 13 | May 27 | May 8 | 117 d | 1,083 ft |
| Ontonagon 6 SE | Jun 13 | May 27 | May 7 | 127 d | 790 ft |
| Grand Marais 2 E | Jun 13 | May 27 | May 7 | 138 d | 624 ft |
| Chatham 1 SE | Jun 12 | May 27 | May 11 | 124 d | 875 ft |
| Wellston 1N | Jun 13 | May 28 | May 13 | 119 d | 773 ft |
| Chatham Exp Farm 2 | Jun 21 | May 30 | May 14 | 119 d | 870 ft |
| Houghton Lake 6 WSW | Jun 19 | May 30 | May 12 | 106 d | 1,135 ft |
| Herman | Jun 17 | May 31 | May 12 | 115 d | 1,717 ft |
| Paradise | Jun 16 | May 31 | May 15 | 122 d | 628 ft |
| Paulding | Jun 13 | May 31 | May 16 | 111 d | 1,367 ft |
| Pickford 3NE | Jun 14 | May 31 | May 14 | 116 d | 629 ft |
| Pellston Rgnl AP | Jun 21 | May 31 | May 16 | 108 d | 705 ft |
| Jacobsville | Jun 17 | Jun 1 | May 14 | 115 d | 650 ft |
| Rudyard 5SE | Jun 20 | Jun 1 | May 18 | 110 d | 667 ft |
| Stambaugh 2SSE | Jun 26 | Jun 4 | May 22 | 95 d | 1,450 ft |
| Clarksburg | Jun 24 | Jun 5 | May 23 | 96 d | 1,554 ft |
| Amasa 1W | Jul 7 | Jun 6 | May 23 | 94 d | 1,470 ft |
| Vanderbilt 11ENE | Jun 29 | Jun 7 | May 23 | 95 d | 905 ft |
211 stations listed. Every date is for 32 °F. A station is not your garden. If the nearest one is on the other side of a ridge or a lake from you, it is describing different air — see how far wrong a nearest-station answer can be.
What to do with the spread
Pick the end that matches what you are willing to lose. The cautious date costs you a couple of weeks of season and buys near-certainty. The early date gets the season back and will have you covering plants some years. Most people want the middle and should know it is a coin flip, not a promise.
Our frost lookup does this for your own address rather than your state. It doesn’t read this table. It reads an 820-foot grid built from 26 years of NASA Daymet daily lows, corrected for each square’s own elevation and checked against NOAA’s stations. Different data, same question, answered for your patch of ground rather than the nearest airport.
And once your garden’s in GardenTrack, you get a heads-up when frost’s in your local forecast, so the date stops being something you have to remember.
How we know
Every figure here comes from NOAA NCEI’s U.S. Climate Normals, 1991–2020, the official 30-year record. We keep only stations that freeze in at least nine years out of ten (244 left out nationally), because a station that rarely freezes has no meaningful “last frost” to report and would drag the early end of every warm state to nonsense.
The whole extract is published as a free CSV under CC BY 4.0, so nothing here has to be taken on trust. The method, including the attempts that failed, is written up at how we research frost dates.
A normal is not a forecast. These are thirty-year averages. They tell you what to plan around; they do not tell you what next April will do.