Michigan Air Quality
Grand Rapids is the worst air in Michigan right now at an index of 48, which is Good, from fine particles (PM2.5). AirNow carries 14 reporting areas in the state. No air quality alert is in force.
- Reporting areas
- 14
- Worst index now
- 48
- Alerts in force
- 0
- Towns under smoke
- Unavailable
Radar
Reflectivity now over Michigan. Open it to see the particulate forecast on the map.























Radar mosaic and map layers from NOAA MRMS and NOAA National Air Quality Forecast Capability. Boundaries from the Iowa Environmental Mesonet.
Alerts in force
An Air Quality Alert is issued by the National Weather Service on behalf of a state or local agency when pollution is expected to reach a level that harms health. An Air Stagnation Advisory means the air will not move enough to clear what is already in it.
None are in force in Michigan right now. All Michigan warnings.
By city, now and the days ahead14
Every AirNow reporting area in Michigan: what its monitors measured this hour, and what the state or local agency that forecasts for it expects today and tomorrow. Each area links to the nearest town’s page.
| Reporting area | Now | Category now | Today | Tomorrow | Pollutant |
|---|---|---|---|---|---|
| Grand Rapids | 48 | Good | Good | Good | PM2.5 |
| Jackson | 32 | Good | Good | Good | PM2.5 |
| Mt Pleasant | 32 | Good | Good | Good | PM2.5 |
| Northcentral-Northeast Lower | 32 | Good | Good | Good | PM2.5 |
| Flint | 31 | Good | Good | Good | PM2.5 |
| Bay Area-Thumb Area | 29 | Good | Good | Good | PM2.5 |
| Southeast | 29 | Good | Good | Good | PM2.5 |
| Lansing | 21 | Good | Good | Good | PM2.5 |
| Northwest Lower | 20 | Good | Good | Good | PM2.5 |
| Eastern Upper Peninsula | 17 | Good | Good | Good | Ozone |
| Kalamazoo | 16 | Good | Good | Good | PM2.5 |
| Western Upper Peninsula | 16 | Good | Good | Good | PM2.5 |
| Ludington | 13 | Good | Good | Good | Ozone |
| Southwest | 7 | Good | Good | Good | Ozone |
The forecaster’s discussion
Written by Michigan Department of Environment, Great Lakes, and Energy for Grand Rapids and filed with AirNow.
Friday will likely be our lone dry day, following a mostly cloudy, drizzly work week and what looks to be a fairly wet weekend. The quasi-stationary front, to our south, which was responsible for most of the week’s gloomy weather, has been pushed further south, which will allow us to dry out during Friday. That dry period will be short-lived, however, as low pressure lifts into the Midwest, overnight. This will usher in an area of fairly widespread rain for Saturday. Additional showers are likely Saturday night into Sunday. High pressure builds back into northern Ontario during Sunday providing a shot of dry air that should discourage any lingering showers later in the day. Cool and mostly cloudy conditions should carry over into the early week as the stalled front remains active over the Ohio Valley. As for Air Quality, I expect ozone to remain the Good range, which is enforced by the lower sun angle, shorter days and cooler nights. Fine Particulates should also be mostly Good with a few scattered Moderates. EXTENDED FORECAST: Air Quality is expected to remain mostly Good to begin the upcoming work week.
Smoke
NOAA’s Hazard Mapping System smoke analysis could not be read just now.
What this means
The index runs from 0 to 500. Good is 0 to 50, Moderate to 100, Unhealthy for Sensitive Groups to 150, Unhealthy to 200, Very Unhealthy to 300, and Hazardous above that. The figure reported for a place is the highest index among the pollutants measured there, and the pollutant that produced it is named beside it.
What these numbers are. An index beside a monitor’s name is a measurement, published hourly by AirNow and preliminary until the operating agency certifies it. A category for today or tomorrow is a state or local agency forecaster’s own forecast for a reporting area. An hourly index is NOAA’s air quality model on a five-kilometer grid, not a reading from any instrument. Where a town has no monitor within reach, only the model figures appear, and the page says so.
Towns
Air quality for any town in Michigan: what is measured nearby, the category forecast for today and tomorrow, and NOAA’s model hour by hour. Largest first.
- Detroit645,705 people
- Grand Rapids195,097 people
- Warren134,056 people
- Sterling Heights132,052 people
- Ann Arbor117,070 people
- Lansing112,644 people
- Clinton Township99,753 people
- Flint98,310 people
- Dearborn95,171 people
- Livonia94,635 people
- Canton86,825 people
- Troy83,280 people
- Westland82,000 people
- Farmington Hills81,330 people
- Kalamazoo76,041 people
- Waterford75,737 people
- Wyoming75,275 people
- Shelby74,099 people
- Rochester Hills73,424 people
- Southfield73,156 people
- West Bloomfield Township64,690 people
- Taylor61,568 people
- Pontiac59,917 people
- Saint Clair Shores59,715 people
- Royal Oak59,008 people
- Novi58,723 people
- Dearborn Heights56,145 people
- Battle Creek51,589 people
- Kentwood51,357 people
- Redford49,936 people
- Saginaw49,347 people
- East Lansing48,471 people
- Portage48,177 people
- Roseville47,637 people
- Midland42,200 people
- Muskegon38,401 people
- Lincoln Park37,012 people
- Bay City33,917 people
- Holland33,742 people
- Jackson33,133 people
- Eastpointe32,657 people
- Madison Heights30,198 people
- Oak Park29,752 people
- Port Huron29,330 people
- Southgate29,293 people
- Burton28,788 people
- Allen Park27,425 people
- Garden City26,920 people
- Mount Pleasant26,060 people
- Forest Hills25,867 people
- Wyandotte25,156 people
- Saginaw Township North24,994 people
- Inkster24,672 people
- Walker24,647 people
- Norton Shores24,208 people
- Holt23,973 people
- Waverly23,925 people
- Romulus23,417 people
- Auburn Hills22,672 people
- Hamtramck22,002 people
- Okemos21,369 people
- Marquette21,297 people
- Birmingham20,857 people
- Adrian20,691 people
- Ferndale20,177 people
- Monroe20,092 people
- Ypsilanti19,945 people
- Haslett19,220 people
- Trenton18,380 people
- Allendale17,579 people
- Wayne17,081 people
- Hazel Park16,597 people
- Jenison16,538 people
- Mount Clemens16,400 people
- Grandville15,953 people
- Grosse Pointe Woods15,762 people
- Berkley15,268 people
- Traverse City15,218 people
- Owosso14,699 people
- Fraser14,636 people
- Northview14,541 people
- Cutlerville14,370 people
- Harper Woods13,836 people
- Sault Ste. Marie13,827 people
- Wixom13,746 people
- Rochester12,993 people
- Woodhaven12,539 people
- New Baltimore12,354 people
- Escanaba12,334 people
- Riverview12,181 people
- Clawson12,015 people
- South Lyon11,722 people
- Fenton11,442 people
- Ionia11,372 people
- Grosse Ile11,361 people
- Niles11,333 people
- East Grand Rapids11,311 people
- Grosse Pointe Park11,220 people
- Grand Haven11,062 people
- Highland Park10,949 people
- Sturgis10,896 people
- Coldwater10,844 people
- Muskegon Heights10,796 people
- Farmington10,523 people
- Melvindale10,404 people
- Big Rapids10,397 people
- Cadillac10,373 people
- Beverly Hills10,267 people
- Beecher10,232 people
- Alpena10,175 people
- Comstock Park10,088 people
- Benton Harbor9,976 people
- Lambertville9,953 people
- Flat Rock9,914 people
- Marysville9,757 people
- Howell9,521 people
- Ecorse9,257 people
- Belmont9,244 people
- Grosse Pointe Farms9,232 people
- Alma9,193 people
- Saline9,100 people
- Charlotte9,054 people
- Plymouth8,905 people
- Lapeer8,790 people
- Westwood8,653 people
- Temperance8,517 people
- Greenville8,444 people
- Mason8,427 people
- Menominee8,382 people
- Tecumseh8,372 people
- Saint Joseph8,365 people
- Center Line8,320 people
- Albion8,229 people
- Hillsdale8,163 people
- Flushing8,086 people
- Ludington8,058 people
- Grand Blanc7,993 people
- Houghton7,970 people
- Saint Johns7,865 people
- Grand Ledge7,791 people
- Three Rivers7,752 people
- Fair Plain7,631 people
- Brighton7,609 people
- River Rouge7,546 people
- Iron Mountain7,504 people
- Saint Louis7,482 people
- Hudsonville7,324 people
- Hastings7,284 people
- Walled Lake7,110 people
- Marshall7,045 people
- Freeland6,969 people
- Bridgeport6,950 people
- Buena Vista6,816 people
- Shields6,587 people
- Carrollton6,583 people
- Ishpeming6,483 people
- Milford6,472 people
- South Monroe6,433 people
- Whitmore Lake6,423 people
- Eastwood6,340 people
- Huntington Woods6,340 people
- Holly6,169 people
- Rockford6,134 people
- Manistee6,084 people
- Northville6,010 people
- Milan5,983 people
- Richmond5,864 people
- Dowagiac5,851 people
- Byron Center5,822 people
- Belding5,769 people
- Bay Harbor5,749 people
- Petoskey5,719 people
- Zeeland5,626 people
- Swartz Creek5,567 people
- Lake Fenton5,559 people
- Saint Clair5,485 people
- Comstock Northwest5,455 people
- Grosse Pointe5,232 people
- Eaton Rapids5,225 people
- Chelsea5,205 people
- Springfield5,192 people
- New Haven5,123 people
- Allegan5,071 people
- Kingsford5,069 people
- Frankenmuth5,025 people
- Ironwood5,002 people
- Davison4,965 people
- Utica4,942 people
- Gladstone4,830 people
- Cheboygan4,733 people
- Vandercook Lake4,721 people
- New Haven4,694 people
- Michigan Center4,672 people
- DeWitt4,655 people
- Negaunee4,582 people
- Hancock4,555 people
- Gibraltar4,531 people
- Buchanan4,362 people
- South Haven4,359 people
- Coopersville4,351 people
244 smaller towns
- Wolverine Lake4,312 people
- Sparta4,311 people
- Wayland4,166 people
- Marine City4,143 people
- Lathrup Village4,135 people
- Wolf Lake4,104 people
- Caro4,099 people
- Benton Heights4,084 people
- Dexter4,067 people
- Algonac4,055 people
- Fremont4,036 people
- Bloomfield Hills4,004 people
- Dundee3,994 people
- Otsego3,991 people
- Portland3,923 people
- Lowell3,906 people
- Williamston3,883 people
- Belleville3,880 people
- Linden3,839 people
- Plainwell3,822 people
- Roosevelt Park3,821 people
- North Muskegon3,779 people
- Boyne City3,776 people
- Gaylord3,660 people
- Romeo3,625 people
- Cedar Springs3,624 people
- Imlay City3,573 people
- Oxford3,534 people
- Paw Paw Lake3,511 people
- West Monroe3,503 people
- Paw Paw3,455 people
- Houghton Lake3,427 people
- Level Park-Oak Park3,409 people
- Corunna3,404 people
- Essexville3,396 people
- Skidway Lake3,392 people
- Durand3,338 people
- Middleville3,301 people
- Blissfield3,255 people
- Franklin3,237 people
- Vicksburg3,230 people
- Rockwood3,199 people
- Clare3,082 people
- Lake Orion3,051 people
- Keego Harbor3,029 people
- Beechwood3,015 people
- Bad Axe3,011 people
- Ferrysburg2,993 people
- Manistique2,982 people
- Mount Morris2,964 people
- Kilmanagh2,944 people
- Iron River2,904 people
- Fowlerville2,895 people
- Spring Arbor2,881 people
- Gladwin2,880 people
- Ithaca2,834 people
- Pearl Beach2,829 people
- Norway2,798 people
- Canadian Lakes2,756 people
- East Tawas2,747 people
- Almont2,723 people
- Grosse Pointe Shores2,718 people
- Rogers City2,712 people
- Whitehall2,711 people
- Saint Helen2,668 people
- West Ishpeming2,662 people
- K. I. Sawyer Air Force Base2,624 people
- Vassar2,620 people
- Potterville2,618 people
- Hartford2,617 people
- Sandusky2,596 people
- Pleasant Ridge2,556 people
- Charlevoix2,540 people
- Clio2,536 people
- Argentine2,525 people
- Spring Lake2,480 people
- Saint Ignace2,452 people
- Pinckney2,436 people
- Reed City2,390 people
- East Jordan2,371 people
- Montague2,362 people
- Edgemont Park2,358 people
- Cass City2,357 people
- Carleton2,338 people
- Croswell2,338 people
- Bronson2,335 people
- Chesaning2,288 people
- Munising2,288 people
- Clinton2,272 people
- Bridgman2,258 people
- Orchard Lake2,245 people
- Hudson2,241 people
- Jonesville2,220 people
- Morenci2,187 people
- Trowbridge Park2,176 people
- Manchester2,143 people
- Auburn2,113 people
- Brownlee Park2,108 people
- Harrison2,107 people
- Perry2,100 people
- Hart2,098 people
- Detroit Beach2,087 people
- Bath2,083 people
- Atlantic Mine2,082 people
- West Branch2,067 people
- Constantine2,064 people
- Saint Charles2,054 people
- Woodland Beach2,049 people
- Galesburg2,043 people
- Kalkaska2,038 people
- Lake Odessa2,029 people
- Manitou Beach-Devils Lake2,019 people
- Shelby2,018 people
- Baraga1,996 people
- Indian River1,959 people
- Newaygo1,957 people
- Mattawan1,947 people
- Laurium1,941 people
- L'Anse1,934 people
- Gwinn1,917 people
- Yale1,905 people
- New Buffalo1,876 people
- Lawton1,866 people
- Leslie1,866 people
- Evart1,861 people
- Bangor1,850 people
- Capac1,849 people
- Stony Point1,849 people
- Parchment1,848 people
- Grayling1,844 people
- Goodrich1,831 people
- Mio1,826 people
- Marlette1,801 people
- Howard City1,792 people
- Tawas City1,786 people
- Sylvan Lake1,785 people
- Bessemer1,770 people
- Decatur1,767 people
- Berrien Springs1,764 people
- Armada1,744 people
- Cassopolis1,729 people
- Wakefield1,725 people
- Stony Point1,724 people
- Twin Lake1,720 people
- Sebewaing1,692 people
- Watervliet1,692 people
- Prudenville1,682 people
- Lake Isabella1,652 people
- South Rockwood1,642 people
- Quincy1,640 people
- Harbor Beach1,634 people
- Nashville1,633 people
- Homer1,630 people
- Elk Rapids1,615 people
- Ovid1,612 people
- Olivet1,610 people
- Caledonia1,590 people
- Montrose1,587 people
- Union City1,584 people
- Three Oaks1,579 people
- Zilwaukee1,577 people
- Schoolcraft1,566 people
- Kingsley1,559 people
- Greilickville1,530 people
- White Pigeon1,514 people
- Shepherd1,507 people
- Birch Run1,479 people
- Hemlock1,466 people
- Ortonville1,463 people
- Coloma1,455 people
- Newberry1,455 people
- Standish1,452 people
- Wacousta1,440 people
- Centreville1,415 people
- Crystal Falls1,414 people
- Stanton1,414 people
- Sand Lake1,412 people
- Reese1,408 people
- Au Sable1,404 people
- Fennville1,400 people
- Harvey1,393 people
- Lewiston1,392 people
- Luna Pier1,389 people
- White Cloud1,383 people
- Manton1,371 people
- Mancelona1,365 people
- Rapid City1,352 people
- Litchfield1,347 people
- Shorewood-Tower Hills-Harbert1,344 people
- Saranac1,333 people
- Ontonagon1,324 people
- Breckenridge1,305 people
- Lakewood Club1,288 people
- Douglas1,284 people
- Frankfort1,283 people
- Bellevue1,278 people
- Laingsburg1,277 people
- Brown City1,274 people
- Webberville1,274 people
- Pinconning1,271 people
- Napoleon1,258 people
- Dimondale1,245 people
- Stockbridge1,232 people
- Burt1,228 people
- Edwardsburg1,227 people
- Fowler1,225 people
- Lake Michigan Beach1,216 people
- Stambaugh, Iron River1,215 people
- Ravenna1,213 people
- Scottville1,213 people
- Coleman1,205 people
- Harbor Springs1,201 people
- Avoca1,200 people
- Brooklyn1,198 people
- Edmore1,196 people
- Quinnesec1,191 people
- Memphis1,182 people
- South Gull Lake1,182 people
- Grass Lake1,166 people
- Pigeon1,166 people
- Baldwin1,159 people
- Colon1,159 people
- Marcellus1,157 people
- Bingham Farms1,133 people
- Petersburg1,131 people
- Lexington1,128 people
- Stevensville1,119 people
- Lakeview1,115 people
- Fruitport1,111 people
- Kent City1,102 people
- Barnes Lake-Millers Lake1,093 people
- Carson City1,090 people
- Dollar Bay1,082 people
- Bellaire1,065 people
- Roscommon1,061 people
- Reading1,056 people
- Concord1,050 people
- Beaverton1,049 people
- Millington1,037 people
- Clarkston1,035 people
- North Branch1,029 people
- Lakeview1,010 people
- Athens1,007 people
- Hubbard Lake1,002 people
Smaller places have pages too; search for one on the air quality landing page.
Sources
Observations and daily forecasts from AirNow, the US Environmental Protection Agency’s program with NOAA, the National Park Service, NASA, tribal, state and local agencies. Hourly forecasts from NOAA’s National Air Quality Forecast Capability. Smoke analysis from NOAA’s Hazard Mapping System. Alerts from the National Weather Service. Index categories and breakpoints are EPA’s, as revised in 2024.