- Lead
- 36,480
- Total
- 178,507
- vs nation
- R+19.0
- Turnout
- 79.9%
Ottawa County, MI
President margin by year
Place winner margin
President results by year
2024 turnout 79.9% of 225,044 citizens 18+
- Lead
- 36,208
- Total
- 168,713
- vs nation
- R+25.9
- Turnout
- 79.3%
- Lead
- 43,494
- Total
- 143,848
- vs nation
- R+32.3
- Turnout
- 72.2%
- Lead
- 45,429
- Total
- 132,757
- vs nation
- R+38.1
- Turnout
- —
- Lead
- 32,502
- Total
- 136,268
- vs nation
- R+31.1
- Turnout
- —
- Lead
- 56,496
- Total
- 128,643
- vs nation
- R+41.5
- Turnout
- —
- Lead
- 49,103
- Total
- 110,599
- vs nation
- R+44.9
- Turnout
- —
- Lead
- 34,412
- Total
- 95,416
- vs nation
- R+44.6
- Turnout
- —
Key facts
- 2024 presidential margin
- R+20.4MIT Election Lab
- Population
- 301,2032024 5-year
- Median household income
- $90,5022024 5-year
- White (non-Hispanic)
- 81.7%2024 5-year
- Black
- 1.5%2024 5-year
- Hispanic / Latino
- 10.3%2024 5-year
- Peak Democratic margin
- D+2.4 in 1912MIT Election Lab
- Peak Republican margin
- R+71.5 in 1928MIT Election Lab
- Most similar
- Hamilton County, IN · twin score 89.4
Midterm durability
Total general-election participants divided by same-year citizen voting-age population. These are total ballots or participating voters—not presidential candidate votes.
- 2024 total turnout
- 79.9%179,858 participants ÷ 225,044 CVAP
- 2020→2022 drop-off
- +12.8 ptsVolatile
- Drop-off versus state
- -2.4 ptsPositive means a larger decline than the statewide pattern
- Mechanical 2026 scenario
- 67.2%–68.8%Recent-cycle and two-cycle persistence scenarios; not a forecast
| Election | Participants | CVAP | Turnout | Quality |
|---|---|---|---|---|
| 2016 · Presidential | 144,902 | 200,734 | 72.2% | A/A |
| 2018 · Midterm | 130,019 | 207,593 | 62.6% | A/A |
| 2020 · Presidential | 169,960 | 214,210 | 79.3% | A/A |
| 2022 · Midterm | 147,273 | 221,190 | 66.6% | A/A |
| 2024 · Presidential | 179,858 | 225,044 | 79.9% | A/A |
Sources and methods
- 2016: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:native; allocation share 0.0%; series 293/111.
- 2018: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:native; allocation share 0.0%; series 297/138.
- 2020: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:native; allocation share 0.0%; series 301/2.
- 2022: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:native; allocation share 0.0%; series 306/183.
- 2024: numerator source 158, denominator source 157; total voters participating; eavs-f1a-v1:observed:native; allocation share 0.0%; series 311/228.
Precinct data
Results by precinct
206 precincts · 178,507 votes
Precinct boundaries and identifiers are cycle-specific. This table does not join rows across years without a validated crosswalk.
| Precinct -Blendon Township, Precinct 2Blendon Township, Precinct 2 | 681 | 2,755 | 47 | 3,483 | 19.6% | 79.1% | R+59.5 |
|---|---|---|---|---|---|---|---|
| Precinct -Park Township, Precinct 1Park Township, Precinct 1 | 1,369 | 1,393 | 37 | 2,799 | 48.9% | 49.8% | R+0.9 |
| Precinct -Park Township, Precinct 3Park Township, Precinct 3 | 1,406 | 1,358 | 35 | 2,799 | 50.2% | 48.5% | D+1.7 |
| Precinct -Allendale Township, Precinct 3Allendale Township, Precinct 3 | 762 | 1,890 | 28 | 2,680 | 28.4% | 70.5% | R+42.1 |
| Precinct -Allendale Township, Precinct 1Allendale Township, Precinct 1 | 838 | 1,762 | 34 | 2,634 | 31.8% | 66.9% | R+35.1 |
| Precinct -Holland Charter Township, Precinct 9Holland Charter Township, Precinct 9 | 1,021 | 1,572 | 37 | 2,630 | 38.8% | 59.8% | R+21.0 |
| Precinct -Park Township, Precinct 5Park Township, Precinct 5 | 1,184 | 1,400 | 34 | 2,618 | 45.2% | 53.5% | R+8.3 |
| Precinct -City of Coopersville, Precinct 1City of Coopersville, Precinct 1 | 898 | 1,592 | 45 | 2,535 | 35.4% | 62.8% | R+27.4 |
| Precinct -Jamestown Township, Precinct 1Jamestown Township, Precinct 1 | 596 | 1,871 | 34 | 2,501 | 23.8% | 74.8% | R+51.0 |
| Precinct -Georgetown Township, Precinct 1Georgetown Township, Precinct 1 | 968 | 1,435 | 33 | 2,436 | 39.7% | 58.9% | R+19.2 |
| Precinct -Georgetown Township, Precinct 13Georgetown Township, Precinct 13 | 733 | 1,590 | 37 | 2,360 | 31.1% | 67.4% | R+36.3 |
| Precinct -Spring Lake Township, Precinct 5Spring Lake Township, Precinct 5 | 1,118 | 1,163 | 43 | 2,324 | 48.1% | 50.0% | R+1.9 |
| Precinct -Georgetown Township, Precinct 7Georgetown Township, Precinct 7 | 766 | 1,519 | 32 | 2,317 | 33.1% | 65.6% | R+32.5 |
| Precinct -Georgetown Township, Precinct 4Georgetown Township, Precinct 4 | 785 | 1,475 | 25 | 2,285 | 34.4% | 64.6% | R+30.2 |
| Precinct -Georgetown Township, Precinct 5Georgetown Township, Precinct 5 | 826 | 1,395 | 45 | 2,266 | 36.5% | 61.6% | R+25.1 |
| Precinct -Allendale Township, Precinct 2Allendale Township, Precinct 2 | 741 | 1,477 | 47 | 2,265 | 32.7% | 65.2% | R+32.5 |
| Precinct -Georgetown Township, Precinct 15Georgetown Township, Precinct 15 | 735 | 1,485 | 14 | 2,234 | 32.9% | 66.5% | R+33.6 |
| Precinct -Spring Lake Township, Precinct 3Spring Lake Township, Precinct 3 | 896 | 1,277 | 28 | 2,201 | 40.7% | 58.0% | R+17.3 |
| Precinct -Tallmadge Charter Township, Precinct 3Tallmadge Charter Township, Precinct 3 | 673 | 1,457 | 32 | 2,162 | 31.1% | 67.4% | R+36.3 |
| Precinct -Georgetown Township, Precinct 14Georgetown Township, Precinct 14 | 551 | 1,584 | 26 | 2,161 | 25.5% | 73.3% | R+47.8 |
| Precinct -City of Ferrysburg, Precinct 1City of Ferrysburg, Precinct 1 | 1,031 | 1,074 | 40 | 2,145 | 48.1% | 50.1% | R+2.0 |
| Precinct -City of Grand Haven, Precinct 3City of Grand Haven, Precinct 3 | 1,074 | 1,023 | 43 | 2,140 | 50.2% | 47.8% | D+2.4 |
| Precinct -Zeeland Charter Township, Precinct 2Zeeland Charter Township, Precinct 2 | 666 | 1,435 | 38 | 2,139 | 31.1% | 67.1% | R+36.0 |
| Precinct -Georgetown Township, Precinct 10Georgetown Township, Precinct 10 | 755 | 1,338 | 42 | 2,135 | 35.4% | 62.7% | R+27.3 |
| Precinct -Port Sheldon Township, Precinct 1Port Sheldon Township, Precinct 1 | 810 | 1,300 | 23 | 2,133 | 38.0% | 60.9% | R+23.0 |
| Precinct -Park Township, Precinct 6Park Township, Precinct 6 | 936 | 1,158 | 32 | 2,126 | 44.0% | 54.5% | R+10.4 |
| Precinct -Georgetown Township, Precinct 11Georgetown Township, Precinct 11 | 694 | 1,409 | 20 | 2,123 | 32.7% | 66.4% | R+33.7 |
| Precinct -Grand Haven Charter Township, Precinct 5Grand Haven Charter Township, Precinct 5 | 1,092 | 992 | 31 | 2,115 | 51.6% | 46.9% | D+4.7 |
| Precinct -Allendale Township, Precinct 4Allendale Township, Precinct 4 | 815 | 1,238 | 40 | 2,093 | 38.9% | 59.1% | R+20.2 |
| Precinct -Wright Township, Precinct 1Wright Township, Precinct 1 | 522 | 1,532 | 32 | 2,086 | 25.0% | 73.4% | R+48.4 |
| Precinct -Grand Haven Charter Township, Precinct 7Grand Haven Charter Township, Precinct 7 | 971 | 1,079 | 27 | 2,077 | 46.8% | 51.9% | R+5.2 |
| Precinct -Georgetown Township, Precinct 9Georgetown Township, Precinct 9 | 686 | 1,340 | 40 | 2,066 | 33.2% | 64.9% | R+31.7 |
| Precinct -Georgetown Township, Precinct 12Georgetown Township, Precinct 12 | 637 | 1,390 | 32 | 2,059 | 30.9% | 67.5% | R+36.6 |
| Precinct -Holland Charter Township, Precinct 5Holland Charter Township, Precinct 5 | 662 | 1,368 | 27 | 2,057 | 32.2% | 66.5% | R+34.3 |
| Precinct -Georgetown Township, Precinct 2Georgetown Township, Precinct 2 | 735 | 1,286 | 34 | 2,055 | 35.8% | 62.6% | R+26.8 |
| Precinct -Tallmadge Charter Township, Precinct 1Tallmadge Charter Township, Precinct 1 | 714 | 1,310 | 25 | 2,049 | 34.8% | 63.9% | R+29.1 |
| Precinct -Holland Charter Township, Precinct 7Holland Charter Township, Precinct 7 | 1,016 | 1,004 | 27 | 2,047 | 49.6% | 49.0% | D+0.6 |
| Precinct -Crockery Township, Precinct 1Crockery Township, Precinct 1 | 768 | 1,243 | 34 | 2,045 | 37.6% | 60.8% | R+23.2 |
| Precinct -Georgetown Township, Precinct 3Georgetown Township, Precinct 3 | 669 | 1,332 | 37 | 2,038 | 32.8% | 65.4% | R+32.5 |
| Precinct -Zeeland Charter Township, Precinct 3Zeeland Charter Township, Precinct 3 | 602 | 1,385 | 31 | 2,018 | 29.8% | 68.6% | R+38.8 |
| Precinct -City of Holland, Ward 6, Precinct 15City of Holland, Ward 6, Precinct 15 | 1,078 | 843 | 35 | 1,956 | 55.1% | 43.1% | D+12.0 |
| Precinct -City of Grand Haven, Precinct 4City of Grand Haven, Precinct 4 | 1,085 | 826 | 32 | 1,943 | 55.8% | 42.5% | D+13.3 |
| Precinct -Georgetown Township, Precinct 8Georgetown Township, Precinct 8 | 615 | 1,277 | 41 | 1,933 | 31.8% | 66.1% | R+34.2 |
| Precinct -City of Holland, Ward 1, Precinct 1City of Holland, Ward 1, Precinct 1 | 944 | 916 | 33 | 1,893 | 49.9% | 48.4% | D+1.5 |
| Precinct -Grand Haven Charter Township, Precinct 3Grand Haven Charter Township, Precinct 3 | 864 | 994 | 17 | 1,875 | 46.1% | 53.0% | R+6.9 |
| Precinct -Spring Lake Township, Precinct 4Spring Lake Township, Precinct 4 | 963 | 876 | 35 | 1,874 | 51.4% | 46.7% | D+4.6 |
| Precinct -City of Hudsonville, Ward 3, Precinct 1City of Hudsonville, Ward 3, Precinct 1 | 494 | 1,309 | 39 | 1,842 | 26.8% | 71.1% | R+44.2 |
| Precinct -Georgetown Township, Precinct 6Georgetown Township, Precinct 6 | 580 | 1,221 | 30 | 1,831 | 31.7% | 66.7% | R+35.0 |
| Precinct -Georgetown Township, Precinct 16Georgetown Township, Precinct 16 | 677 | 1,094 | 33 | 1,804 | 37.5% | 60.6% | R+23.1 |
| Precinct -Park Township, Precinct 4Park Township, Precinct 4 | 813 | 923 | 23 | 1,759 | 46.2% | 52.5% | R+6.3 |
| Precinct -Robinson Township, Precinct 1Robinson Township, Precinct 1 | 639 | 1,074 | 23 | 1,736 | 36.8% | 61.9% | R+25.1 |
| Precinct -Allendale Township, Precinct 5Allendale Township, Precinct 5 | 1,137 | 573 | 17 | 1,727 | 65.8% | 33.2% | D+32.7 |
| Precinct -Olive Township, Precinct 2Olive Township, Precinct 2 | 369 | 1,335 | 23 | 1,727 | 21.4% | 77.3% | R+55.9 |
| Precinct -Grand Haven Charter Township, Precinct 1Grand Haven Charter Township, Precinct 1 | 725 | 961 | 34 | 1,720 | 42.2% | 55.9% | R+13.7 |
| Precinct -Tallmadge Charter Township, Precinct 2Tallmadge Charter Township, Precinct 2 | 496 | 1,190 | 19 | 1,705 | 29.1% | 69.8% | R+40.7 |
| Precinct -Spring Lake Township, Precinct 1Spring Lake Township, Precinct 1 | 814 | 851 | 30 | 1,695 | 48.0% | 50.2% | R+2.2 |
| Precinct -Holland Charter Township, Precinct 3Holland Charter Township, Precinct 3 | 742 | 927 | 22 | 1,691 | 43.9% | 54.8% | R+10.9 |
| Precinct -Polkton Charter Township, Precinct 1Polkton Charter Township, Precinct 1 | 404 | 1,255 | 27 | 1,686 | 24.0% | 74.4% | R+50.5 |
| Precinct -Port Sheldon Township, Precinct 2Port Sheldon Township, Precinct 2 | 743 | 907 | 36 | 1,686 | 44.1% | 53.8% | R+9.7 |
| Precinct -City of Grand Haven, Precinct 2City of Grand Haven, Precinct 2 | 1,031 | 615 | 18 | 1,664 | 62.0% | 37.0% | D+25.0 |
| Precinct -Holland Charter Township, Precinct 4Holland Charter Township, Precinct 4 | 863 | 764 | 26 | 1,653 | 52.2% | 46.2% | D+6.0 |
| Precinct -Zeeland Charter Township, Precinct 1Zeeland Charter Township, Precinct 1 | 475 | 1,154 | 19 | 1,648 | 28.8% | 70.0% | R+41.2 |
| Precinct -Blendon Township, Precinct 1Blendon Township, Precinct 1 | 276 | 1,337 | 19 | 1,632 | 16.9% | 81.9% | R+65.0 |
| Precinct -Jamestown Township, Precinct 4Jamestown Township, Precinct 4 | 512 | 1,093 | 23 | 1,628 | 31.4% | 67.1% | R+35.7 |
| Precinct -City of Holland, Ward 4, Precinct 8City of Holland, Ward 4, Precinct 8 | 819 | 753 | 22 | 1,594 | 51.4% | 47.2% | D+4.1 |
| Precinct -Holland Charter Township, Precinct 6Holland Charter Township, Precinct 6 | 777 | 767 | 20 | 1,564 | 49.7% | 49.0% | D+0.6 |
| Precinct -Grand Haven Charter Township, Precinct 4Grand Haven Charter Township, Precinct 4 | 699 | 839 | 23 | 1,561 | 44.8% | 53.7% | R+9.0 |
| Precinct -Jamestown Township, Precinct 2Jamestown Township, Precinct 2 | 219 | 1,325 | 17 | 1,561 | 14.0% | 84.9% | R+70.9 |
| Precinct -Holland Charter Township, Precinct 12Holland Charter Township, Precinct 12 | 452 | 1,075 | 25 | 1,552 | 29.1% | 69.3% | R+40.1 |
| Precinct -City of Grand Haven, Precinct 1City of Grand Haven, Precinct 1 | 845 | 653 | 23 | 1,521 | 55.6% | 42.9% | D+12.6 |
| Precinct -Holland Charter Township, Precinct 11Holland Charter Township, Precinct 11 | 743 | 733 | 24 | 1,500 | 49.5% | 48.9% | D+0.7 |
| Precinct -City of Hudsonville, Ward 1, Precinct 1City of Hudsonville, Ward 1, Precinct 1 | 481 | 992 | 24 | 1,497 | 32.1% | 66.3% | R+34.1 |
| Precinct -Holland Charter Township, Precinct 10Holland Charter Township, Precinct 10 | 740 | 699 | 29 | 1,468 | 50.4% | 47.6% | D+2.8 |
| Precinct -Grand Haven Charter Township, Precinct 2Grand Haven Charter Township, Precinct 2 | 671 | 776 | 15 | 1,462 | 45.9% | 53.1% | R+7.2 |
| Precinct -Spring Lake Township, Precinct 2Spring Lake Township, Precinct 2 | 569 | 798 | 14 | 1,381 | 41.2% | 57.8% | R+16.6 |
| Precinct -City of Zeeland, Precinct 4City of Zeeland, Precinct 4 | 379 | 963 | 18 | 1,360 | 27.9% | 70.8% | R+42.9 |
| Precinct -Zeeland Charter Township, Precinct 4Zeeland Charter Township, Precinct 4 | 344 | 999 | 17 | 1,360 | 25.3% | 73.5% | R+48.2 |
| Precinct -City of Holland, Ward 3, Precinct 6City of Holland, Ward 3, Precinct 6 | 891 | 409 | 45 | 1,345 | 66.2% | 30.4% | D+35.8 |
| Precinct -Chester Township, Precinct 1Chester Township, Precinct 1 | 316 | 1,010 | 10 | 1,336 | 23.7% | 75.6% | R+51.9 |
| Precinct -City of Hudsonville, Ward 2, Precinct 1City of Hudsonville, Ward 2, Precinct 1 | 418 | 867 | 24 | 1,309 | 31.9% | 66.2% | R+34.3 |
| Precinct -Grand Haven Charter Township, Precinct 6Grand Haven Charter Township, Precinct 6 | 603 | 633 | 20 | 1,256 | 48.0% | 50.4% | R+2.4 |
| Precinct -Olive Township, Precinct 1Olive Township, Precinct 1 | 373 | 835 | 23 | 1,231 | 30.3% | 67.8% | R+37.5 |
| Precinct -Robinson Township, Precinct 3Robinson Township, Precinct 3 | 333 | 882 | 16 | 1,231 | 27.1% | 71.6% | R+44.6 |
| Precinct -City of Holland, Ward 6, Precinct 14City of Holland, Ward 6, Precinct 14 | 784 | 396 | 25 | 1,205 | 65.1% | 32.9% | D+32.2 |
| Precinct -Holland Charter Township, Precinct 1Holland Charter Township, Precinct 1 | 582 | 601 | 21 | 1,204 | 48.3% | 49.9% | R+1.6 |
| Precinct -Robinson Township, Precinct 2Robinson Township, Precinct 2 | 384 | 803 | 17 | 1,204 | 31.9% | 66.7% | R+34.8 |
| Precinct -City of Holland, Ward 1, Precinct 3City of Holland, Ward 1, Precinct 3 | 598 | 583 | 11 | 1,192 | 50.2% | 48.9% | D+1.3 |
| Precinct -City of Holland, Ward 3, Precinct 7City of Holland, Ward 3, Precinct 7 | 575 | 513 | 32 | 1,120 | 51.3% | 45.8% | D+5.5 |
| Precinct -City of Holland, Ward 2, Precinct 4City of Holland, Ward 2, Precinct 4 | 670 | 419 | 17 | 1,106 | 60.6% | 37.9% | D+22.7 |
| Precinct -Spring Lake Township, Precinct 6Spring Lake Township, Precinct 6 | 478 | 613 | 15 | 1,106 | 43.2% | 55.4% | R+12.2 |
| Precinct -Holland Charter Township, Precinct 8Holland Charter Township, Precinct 8 | 599 | 471 | 21 | 1,091 | 54.9% | 43.2% | D+11.7 |
| Precinct -Crockery Township, Precinct 2Crockery Township, Precinct 2 | 337 | 656 | 12 | 1,005 | 33.5% | 65.3% | R+31.7 |
| Precinct -Jamestown Township, Precinct 3Jamestown Township, Precinct 3 | 226 | 748 | 14 | 988 | 22.9% | 75.7% | R+52.8 |
| Precinct -Park Township, Precinct 2Park Township, Precinct 2 | 439 | 485 | 15 | 939 | 46.8% | 51.7% | R+4.9 |
| Precinct -Holland Charter Township, Precinct 2Holland Charter Township, Precinct 2 | 474 | 443 | 16 | 933 | 50.8% | 47.5% | D+3.3 |
| Precinct -City of Holland, Ward 4, Precinct 10City of Holland, Ward 4, Precinct 10 | 518 | 376 | 21 | 915 | 56.6% | 41.1% | D+15.5 |
| Precinct -City of Holland, Ward 2, Precinct 5City of Holland, Ward 2, Precinct 5 | 576 | 271 | 12 | 859 | 67.1% | 31.5% | D+35.5 |
| Precinct -City of Zeeland, Precinct 3City of Zeeland, Precinct 3 | 301 | 479 | 27 | 807 | 37.3% | 59.4% | R+22.1 |
| Precinct -City of Zeeland, Precinct 1City of Zeeland, Precinct 1 | 258 | 464 | 14 | 736 | 35.1% | 63.0% | R+28.0 |
| Precinct -Georgetown Township, Precinct 17Georgetown Township, Precinct 17 | 170 | 470 | 8 | 648 | 26.2% | 72.5% | R+46.3 |
| Precinct -City of Zeeland, Precinct 2City of Zeeland, Precinct 2 | 271 | 333 | 12 | 616 | 44.0% | 54.1% | R+10.1 |
| 1390136000001139-01360-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1390136000002139-01360-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1390136000003139-01360-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1390136000004139-01360-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1390136000005139-01360-00005 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1390894000001139-08940-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1390894000002139-08940-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1390894000003139-08940-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1391530000001139-15300-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1391802000001139-18020-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1391802000002139-18020-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1391880000001139-18800-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1391880000002139-18800-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1392796000001139-27960-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000001139-31880-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000002139-31880-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000003139-31880-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000004139-31880-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000005139-31880-00005 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000006139-31880-00006 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000007139-31880-00007 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000008139-31880-00008 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000009139-31880-00009 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000010139-31880-00010 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000011139-31880-00011 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000012139-31880-00012 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000013139-31880-00013 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000014139-31880-00014 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000015139-31880-00015 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000016139-31880-00016 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393188000017139-31880-00017 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393334000001139-33340-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393334000002139-33340-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393334000003139-33340-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393334000004139-33340-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393336000001139-33360-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393336000002139-33360-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393336000003139-33360-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393336000004139-33360-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393336000005139-33360-00005 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393336000006139-33360-00006 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393336000007139-33360-00007 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864001001139-38640-01001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864001002139-38640-01002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864001003139-38640-01003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864002004139-38640-02004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864002005139-38640-02005 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864003006139-38640-03006 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864003007139-38640-03007 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864004008139-38640-04008 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864004010139-38640-04010 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864006014139-38640-06014 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393864006015139-38640-06015 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000001139-38660-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000002139-38660-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000003139-38660-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000004139-38660-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000005139-38660-00005 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000006139-38660-00006 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000007139-38660-00007 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000008139-38660-00008 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000009139-38660-00009 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000010139-38660-00010 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000011139-38660-00011 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393866000012139-38660-00012 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393980001001139-39800-01001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393980002001139-39800-02001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1393980003001139-39800-03001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1394152000001139-41520-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1394152000002139-41520-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1394152000003139-41520-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396046000001139-60460-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396046000002139-60460-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396246000001139-62460-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396246000002139-62460-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396246000003139-62460-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396246000004139-62460-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396246000005139-62460-00005 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396246000006139-62460-00006 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396246000007139-62460-00007 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396532000001139-65320-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396594000001139-65940-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396594000002139-65940-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396900000001139-69000-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396900000002139-69000-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1396900000003139-69000-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397584000001139-75840-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397584000002139-75840-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397584000003139-75840-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397584000004139-75840-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397584000005139-75840-00005 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397584000006139-75840-00006 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397798000001139-77980-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397798000002139-77980-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1397798000003139-77980-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398882000001139-88820-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398882000002139-88820-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398926000001139-89260-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398926000002139-89260-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398926000003139-89260-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398926000004139-89260-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398928000001139-89280-00001 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398928000002139-89280-00002 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398928000003139-89280-00003 | 0 | 0 | 0 | 0 | — | — | No votes |
| 1398928000004139-89280-00004 | 0 | 0 | 0 | 0 | — | — | No votes |
Presidential margin, 1892–2024
Democratic minus Republican, by election
| Year | Margin (D minus R) |
|---|---|
| 1892 | −9.0% |
| 1896 | −18.3% |
| 1900 | −26.6% |
| 1904 | −55.5% |
| 1908 | −37.7% |
| 1912 | +2.4% |
| 1916 | −15.8% |
| 1920 | −60.9% |
| 1924 | −66.0% |
| 1928 | −71.5% |
| 1932 | −19.8% |
| 1936 | −7.1% |
| 1940 | −25.5% |
| 1944 | −33.2% |
| 1948 | −28.6% |
| 1952 | −47.3% |
| 1956 | −50.1% |
| 1960 | −50.8% |
| 1964 | −9.7% |
| 1968 | −42.4% |
| 1972 | −46.2% |
| 1976 | −49.4% |
| 1980 | −43.4% |
| 1984 | −59.8% |
| 1988 | −52.9% |
| 1992 | −36.0% |
| 1996 | −36.1% |
| 2000 | −44.4% |
| 2004 | −43.9% |
| 2008 | −23.9% |
| 2012 | −34.2% |
| 2016 | −30.2% |
| 2020 | −21.5% |
| 2024 | −20.4% |
U.S. House
Each row shows U.S. House votes counted inside this Place. “Vote lead” is the local lead here, not necessarily the winner of the full contest.
U.S. Senate
Each row shows U.S. Senate votes counted inside this Place. “Vote lead” is the local lead here, not necessarily the winner of the full contest.
Governor
Each row shows Governor votes counted inside this Place. “Vote lead” is the local lead here, not necessarily the winner of the full contest.
Registered voters
Total registered voters, over time
| Year | Total registered |
|---|---|
| 2016 | 197,977 |
| 2018 | 200,990 |
| 2020 | 220,910 |
| 2022 | 228,316 |
| 2024 | 237,324 |
Who moves in and out
Net migration over time, and who arrivals are — where they came from and what those places vote
+1,166 net domestic migration · 2025
Net +16,672 over 2011–2025 · gain loss
Arrivals reported $71,022 in average income, against $102,255 for residents who stayed — 31% lower. (IRS SOI, 2022–23)
The places arrivals came from lean R+0.3 on average — 20 points more Democratic-leaning than Ottawa County, MI itself (R+20.4).
Where arrivals came from lean of each source
- Kent County, MI2,811D+5.4
- Allegan County, MI710R+27.2
- Muskegon County, MI696R+1.8
- Oakland County, MI155D+10.6
- Cook County, IL134D+41.6
- Kalamazoo County, MI130D+17.7
Where departures went households, 2022–23
- Kent County, MI2,465
- Muskegon County, MI885
- Allegan County, MI874
- Cook County, IL123
- Kalamazoo County, MI119
- Oakland County, MI109
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 | +692 |
| 2012 | +1,603 |
| 2013 | +1,415 |
| 2014 | +1,499 |
| 2015 | +1,242 |
| 2016 | +801 |
| 2017 | +1,152 |
| 2018 | +1,694 |
| 2019 | +438 |
| 2021 | +541 |
| 2022 | +1,798 |
| 2023 | +1,539 |
| 2024 | +1,092 |
| 2025 | +1,166 |
Ottawa County's Dutch Reformed heritage and suburban-rural mix have anchored it among Michigan's most reliably Republican counties for decades, with the 2024 presidential margin landing at R+20.4 despite modest population growth drawing in new residents.
Across the recorded series it reached a Democratic high of 2.4 points in 1912 and a Republican high of 71.5 points in 1928. Between 2020 and 2024 the county moved 1.0 points toward the Democratic candidate; the 2024 margin was 20.4 points.
A population of 301,203, a 82% non-Hispanic-white share, and a median household income of $90,502 describe the county. The county's voting pattern over the last decade is most similar to that of Hamilton County and Sarpy 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 →
Ottawa County, Michigan. Akashic. https://akashic.app/county/26139/. Accessed May 20, 2026. License: CC BY 4.0.