Muskegon County, Michigan
Precinct data
Results by precinct
120 precincts · 95,181 votes
Precinct boundaries and identifiers are cycle-specific. This table does not join rows across years without a validated crosswalk.
| Precinct -City of Norton Shores, Precinct 1City of Norton Shores, Precinct 1 | 1,916 | 1,707 | 51 | 3,674 | 52.2% | 46.5% | D+5.7 |
|---|---|---|---|---|---|---|---|
| Precinct -City of Norton Shores, Precinct 4City of Norton Shores, Precinct 4 | 1,401 | 1,612 | 50 | 3,063 | 45.7% | 52.6% | R+6.9 |
| Precinct -Laketon Township, Precinct 1Laketon Township, Precinct 1 | 1,379 | 1,599 | 54 | 3,032 | 45.5% | 52.7% | R+7.3 |
| Precinct -Muskegon Charter Township, Precinct 2Muskegon Charter Township, Precinct 2 | 1,284 | 1,487 | 31 | 2,802 | 45.8% | 53.1% | R+7.2 |
| Precinct -City of North Muskegon, Precinct 1City of North Muskegon, Precinct 1 | 1,332 | 1,299 | 31 | 2,662 | 50.0% | 48.8% | D+1.2 |
| Precinct -Dalton Township, Precinct 3Dalton Township, Precinct 3 | 963 | 1,573 | 33 | 2,569 | 37.5% | 61.2% | R+23.7 |
| Precinct -City of Muskegon, Ward 4, Precinct 8City of Muskegon, Ward 4, Precinct 8 | 1,582 | 876 | 43 | 2,501 | 63.3% | 35.0% | D+28.2 |
| Precinct -City of Muskegon, Ward 2, Precinct 4City of Muskegon, Ward 2, Precinct 4 | 1,763 | 598 | 41 | 2,402 | 73.4% | 24.9% | D+48.5 |
| Precinct -City of Roosevelt Park, Precinct 1City of Roosevelt Park, Precinct 1 | 1,326 | 962 | 42 | 2,330 | 56.9% | 41.3% | D+15.6 |
| Precinct -Muskegon Charter Township, Precinct 1Muskegon Charter Township, Precinct 1 | 1,168 | 1,071 | 34 | 2,273 | 51.4% | 47.1% | D+4.3 |
| Precinct -City of Muskegon, Ward 4, Precinct 9City of Muskegon, Ward 4, Precinct 9 | 1,313 | 857 | 31 | 2,201 | 59.7% | 38.9% | D+20.7 |
| Precinct -Muskegon Charter Township, Precinct 3Muskegon Charter Township, Precinct 3 | 955 | 1,179 | 31 | 2,165 | 44.1% | 54.5% | R+10.3 |
| Precinct -Egelston Township, Precinct 2Egelston Township, Precinct 2 | 787 | 1,314 | 25 | 2,126 | 37.0% | 61.8% | R+24.8 |
| Precinct -City of Norton Shores, Precinct 2City of Norton Shores, Precinct 2 | 1,059 | 1,034 | 25 | 2,118 | 50.0% | 48.8% | D+1.2 |
| Precinct -Fruitland Township, Precinct 2Fruitland Township, Precinct 2 | 832 | 1,234 | 28 | 2,094 | 39.7% | 58.9% | R+19.2 |
| Precinct -Fruitport Township, Precinct 3Fruitport Township, Precinct 3 | 802 | 1,248 | 23 | 2,073 | 38.7% | 60.2% | R+21.5 |
| Precinct -Fruitport Township, Precinct 4Fruitport Township, Precinct 4 | 864 | 1,156 | 24 | 2,044 | 42.3% | 56.6% | R+14.3 |
| Precinct -Cedar Creek Township, Precinct 1Cedar Creek Township, Precinct 1 | 668 | 1,322 | 29 | 2,019 | 33.1% | 65.5% | R+32.4 |
| Precinct -Laketon Township, Precinct 2Laketon Township, Precinct 2 | 902 | 1,060 | 27 | 1,989 | 45.3% | 53.3% | R+7.9 |
| Precinct -City of Norton Shores, Precinct 7City of Norton Shores, Precinct 7 | 950 | 966 | 38 | 1,954 | 48.6% | 49.4% | R+0.8 |
| Precinct -Egelston Township, Precinct 1Egelston Township, Precinct 1 | 717 | 1,147 | 32 | 1,896 | 37.8% | 60.5% | R+22.7 |
| Precinct -City of Muskegon, Ward 1, Precinct 1City of Muskegon, Ward 1, Precinct 1 | 1,354 | 487 | 23 | 1,864 | 72.6% | 26.1% | D+46.5 |
| Precinct -City of Muskegon, Ward 1, Precinct 2City of Muskegon, Ward 1, Precinct 2 | 1,290 | 533 | 36 | 1,859 | 69.4% | 28.7% | D+40.7 |
| Precinct -City of Whitehall, Precinct 1City of Whitehall, Precinct 1 | 886 | 923 | 21 | 1,830 | 48.4% | 50.4% | R+2.0 |
| Precinct -Ravenna Township, Precinct 1Ravenna Township, Precinct 1 | 464 | 1,336 | 26 | 1,826 | 25.4% | 73.2% | R+47.8 |
| Precinct -Fruitport Township, Precinct 1Fruitport Township, Precinct 1 | 622 | 1,175 | 25 | 1,822 | 34.1% | 64.5% | R+30.4 |
| Precinct -Fruitport Township, Precinct 5Fruitport Township, Precinct 5 | 712 | 1,083 | 23 | 1,818 | 39.2% | 59.6% | R+20.4 |
| Precinct -Muskegon Charter Township, Precinct 4Muskegon Charter Township, Precinct 4 | 781 | 983 | 27 | 1,791 | 43.6% | 54.9% | R+11.3 |
| Precinct -Fruitland Township, Precinct 1Fruitland Township, Precinct 1 | 854 | 907 | 29 | 1,790 | 47.7% | 50.7% | R+3.0 |
| Precinct -Sullivan Township, Precinct 1Sullivan Township, Precinct 1 | 504 | 1,203 | 28 | 1,735 | 29.0% | 69.3% | R+40.3 |
| Precinct -Fruitport Township, Precinct 2Fruitport Township, Precinct 2 | 688 | 997 | 30 | 1,715 | 40.1% | 58.1% | R+18.0 |
| Precinct -Egelston Township, Precinct 3Egelston Township, Precinct 3 | 778 | 895 | 27 | 1,700 | 45.8% | 52.6% | R+6.9 |
| Precinct -Dalton Township, Precinct 1Dalton Township, Precinct 1 | 596 | 1,069 | 31 | 1,696 | 35.1% | 63.0% | R+27.9 |
| Precinct -City of Norton Shores, Precinct 6City of Norton Shores, Precinct 6 | 779 | 819 | 38 | 1,636 | 47.6% | 50.1% | R+2.4 |
| Precinct -Casnovia Township, Precinct 1Casnovia Township, Precinct 1 | 406 | 1,142 | 22 | 1,570 | 25.9% | 72.7% | R+46.9 |
| Precinct -City of Montague, Precinct 1City of Montague, Precinct 1 | 721 | 801 | 24 | 1,546 | 46.6% | 51.8% | R+5.2 |
| Precinct -City of Norton Shores, Precinct 5City of Norton Shores, Precinct 5 | 709 | 794 | 25 | 1,528 | 46.4% | 52.0% | R+5.6 |
| Precinct -City of Muskegon, Ward 3, Precinct 7City of Muskegon, Ward 3, Precinct 7 | 919 | 523 | 19 | 1,461 | 62.9% | 35.8% | D+27.1 |
| Precinct -Blue Lake Township, Precinct 1Blue Lake Township, Precinct 1 | 507 | 935 | 17 | 1,459 | 34.7% | 64.1% | R+29.3 |
| Precinct -Holton Township, Precinct 1Holton Township, Precinct 1 | 451 | 928 | 21 | 1,400 | 32.2% | 66.3% | R+34.1 |
| Precinct -City of Norton Shores, Precinct 3City of Norton Shores, Precinct 3 | 646 | 640 | 24 | 1,310 | 49.3% | 48.9% | D+0.5 |
| Precinct -Dalton Township, Precinct 2Dalton Township, Precinct 2 | 437 | 757 | 17 | 1,211 | 36.1% | 62.5% | R+26.4 |
| Precinct -City of Muskegon, Ward 3, Precinct 6City of Muskegon, Ward 3, Precinct 6 | 865 | 239 | 19 | 1,123 | 77.0% | 21.3% | D+55.7 |
| Precinct -Whitehall Township, Precinct 1Whitehall Township, Precinct 1 | 486 | 604 | 18 | 1,108 | 43.9% | 54.5% | R+10.6 |
| Precinct -City of Muskegon, Ward 2, Precinct 3City of Muskegon, Ward 2, Precinct 3 | 859 | 206 | 16 | 1,081 | 79.5% | 19.1% | D+60.4 |
| Precinct -City of Muskegon Heights, Precinct 4City of Muskegon Heights, Precinct 4 | 873 | 126 | 15 | 1,014 | 86.1% | 12.4% | D+73.7 |
| Precinct -White River Township, Precinct 1White River Township, Precinct 1 | 419 | 577 | 18 | 1,014 | 41.3% | 56.9% | R+15.6 |
| Precinct -Montague Township, Precinct 1Montague Township, Precinct 1 | 390 | 581 | 11 | 982 | 39.7% | 59.2% | R+19.5 |
| Precinct -City of Muskegon Heights, Precinct 1City of Muskegon Heights, Precinct 1 | 852 | 81 | 14 | 947 | 90.0% | 8.6% | D+81.4 |
| Precinct -Moorland Township, Precinct 1Moorland Township, Precinct 1 | 221 | 695 | 17 | 933 | 23.7% | 74.5% | R+50.8 |
| Precinct -City of Muskegon Heights, Precinct 3City of Muskegon Heights, Precinct 3 | 706 | 128 | 13 | 847 | 83.4% | 15.1% | D+68.2 |
| Precinct -City of Muskegon, Ward 3, Precinct 5City of Muskegon, Ward 3, Precinct 5 | 580 | 208 | 12 | 800 | 72.5% | 26.0% | D+46.5 |
| Precinct -City of Muskegon Heights, Precinct 2City of Muskegon Heights, Precinct 2 | 710 | 57 | 11 | 778 | 91.3% | 7.3% | D+83.9 |
| 1210934000001121-09340-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1211384000001121-13840-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1211410000001121-14100-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1211966000001121-19660-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1211966000002121-19660-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1211966000003121-19660-00003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1211966000004121-19660-00004 | 0 | 0 | 0 | 0 | — | — | Even |
| 1212508000001121-25080-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1212508000002121-25080-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1212508000003121-25080-00003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1213098000001121-30980-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1213098000002121-30980-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1213102000001121-31020-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1213102000002121-31020-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1213102000003121-31020-00003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1213102000004121-31020-00004 | 0 | 0 | 0 | 0 | — | — | Even |
| 1213882000001121-38820-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1214516000001121-45160-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1214516000002121-45160-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1214516000003121-45160-00003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215510000001121-55100-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215512000001121-55120-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215544000001121-55440-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632001001121-56320-01001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632001002121-56320-01002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632001003121-56320-01003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632001004121-56320-01004 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632002005121-56320-02005 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632002006121-56320-02006 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632002007121-56320-02007 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632003008121-56320-03008 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632003009121-56320-03009 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632003010121-56320-03010 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632004011121-56320-04011 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632004012121-56320-04012 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632004013121-56320-04013 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215632004014121-56320-04014 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215634000001121-56340-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215634000002121-56340-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215634000003121-56340-00003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215634000004121-56340-00004 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215634000005121-56340-00005 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215634000006121-56340-00006 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215634000007121-56340-00007 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215636000001121-56360-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215636000002121-56360-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215636000003121-56360-00003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215636000004121-56360-00004 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215864000001121-58640-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215864000002121-58640-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914001001121-59140-01001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914001002121-59140-01002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914001003121-59140-01003 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914001004121-59140-01004 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914001005121-59140-01005 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914002006121-59140-02006 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914002007121-59140-02007 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914002008121-59140-02008 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914002009121-59140-02009 | 0 | 0 | 0 | 0 | — | — | Even |
| 1215914002010121-59140-02010 | 0 | 0 | 0 | 0 | — | — | Even |
| 1216730000001121-67300-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1216952000001121-69520-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1216952000002121-69520-00002 | 0 | 0 | 0 | 0 | — | — | Even |
| 1217710000001121-77100-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1218678000001121-86780-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1218680000001121-86800-00001 | 0 | 0 | 0 | 0 | — | — | Even |
| 1218698000001121-86980-00001 | 0 | 0 | 0 | 0 | — | — | Even |
Presidential margin, 1892–2024
Democratic minus Republican, by election
| Year | Margin (D minus R) |
|---|---|
| 1892 | −6.9% |
| 1896 | −19.7% |
| 1900 | −29.7% |
| 1904 | −59.9% |
| 1908 | −44.7% |
| 1912 | +1.9% |
| 1916 | −11.2% |
| 1920 | −51.9% |
| 1924 | −71.2% |
| 1928 | −53.1% |
| 1932 | +5.8% |
| 1936 | +29.1% |
| 1940 | +12.5% |
| 1944 | +9.3% |
| 1948 | +14.1% |
| 1952 | −4.2% |
| 1956 | −8.4% |
| 1960 | −6.3% |
| 1964 | +24.8% |
| 1968 | −6.4% |
| 1972 | −22.3% |
| 1976 | −13.5% |
| 1980 | −14.5% |
| 1984 | −21.8% |
| 1988 | −7.3% |
| 1992 | +12.2% |
| 1996 | +21.2% |
| 2000 | +11.3% |
| 2004 | +11.2% |
| 2008 | +29.3% |
| 2012 | +17.7% |
| 2016 | +1.5% |
| 2020 | +0.6% |
| 2024 | −1.8% |
U.S. Senate
Registered voters
Total registered voters, over time
| Year | Total registered |
|---|---|
| 2016 | 128,799 |
| 2018 | 129,496 |
| 2020 | 141,197 |
| 2022 | 144,241 |
| 2024 | 148,028 |
Who moves in and out
Net migration over time, and who arrivals are — where they came from and what those places vote
+731 net domestic migration · 2025
Net +1,249 over 2011–2025 · gain loss
Arrivals reported $55,381 in average income, against $64,260 for residents who stayed — 14% lower. (IRS SOI, 2022–23)
The places arrivals came from lean R+13.1 on average — 11 points more Republican-leaning than Muskegon County, MI itself (R+1.8).
Where arrivals came from lean of each source
- Ottawa County, MI885R+20.4
- Kent County, MI569D+5.4
- Oceana County, MI208R+30.0
- Newaygo County, MI174R+42.8
- Allegan County, MI67R+27.2
- Oakland County, MI43D+10.6
Where departures went households, 2022–23
- Ottawa County, MI696
- Kent County, MI505
- Oceana County, MI187
- Newaygo County, MI156
- Cook County, IL52
- Kalamazoo County, MI48
Migration is one input to a place’s political change, not its cause — a shift can also come from residents changing their minds, generational turnover, or turnout. These figures describe the places people moved between; they do not measure how any mover voted.
| Year | Net domestic migration |
|---|---|
| 2011 | −2,454 |
| 2012 | −419 |
| 2013 | +1,599 |
| 2014 | −499 |
| 2015 | −173 |
| 2016 | +280 |
| 2017 | +20 |
| 2018 | −447 |
| 2019 | −362 |
| 2021 | +951 |
| 2022 | +239 |
| 2023 | +965 |
| 2024 | +818 |
| 2025 | +731 |
Muskegon shifted from a reliably Democratic stronghold to near-even territory over the past decade, with its mix of industrial workers, mid-sized city voters, and rural townships producing some of Michigan's tightest county-level results.
Across the recorded series it reached a Democratic high of 29.3 points in 2008 and a Republican high of 71.2 points in 1924. Between 2020 and 2024 the county moved 2.3 points toward the Republican candidate; the 2024 margin was 1.8 points.
A population of 175,961, a 75% non-Hispanic-white share, and a median household income of $65,024 describe the county. The county's voting pattern over the last decade is most similar to that of Calhoun County and Genesee County.
The counties whose fingerprint — 2000–2024 trajectory, demographics, ancestry, religion — sits closest to this one, and why.
Twin score (0–100) = weighted cosine between tier-standardized fingerprints: presidential margins 2000–2024 with 12-yr trend and elasticity, ACS income, age, education, population and race, top reported ancestries, and religious adherence — chips name the closest-shared dimensions and the widest gap. Re-weight the groups in the twins explorer.
Browse places by community — income, education, race & ethnicity, language — all community cuts →
Compare two places, side by side
Twelve curated comparisons line up election history, demographics, and the divergence story for two places at a glance. Browse all comparisons →
Muskegon County, Michigan. Akashic. https://akashic.app/county/26121/. Accessed May 20, 2026. License: CC BY 4.0.