{"id":"MI-02","state":"MI","label":"Michigan's 2nd Congressional District","election_id":"87202","status":"called","winner_id":"civic-87202-c4d7d88522927e58","reporting":92,"previous_party":"R","afi_rating":{"rating":"Safe Republican","rating_tier":"safe_r","category":"Safe","favored_party":"R","gop_win_chance":99,"color":"#a21a15","updated":"2026-08-27T14:26:38+00:00","projected_flip":false,"flip_direction":null,"incumbent_party":"R","incumbent_name":"Moolenaar, John","open_seat":false,"freshman":false,"flipped_in_24":false,"trump_margin_2024":30,"gop_margin_2024":33.4,"redraw":false,"margin_change":null,"source":"AFI Ratings Admin","source_updated":"2026-10-14T18:12:10+00:00"},"updated":"2026-10-15T15:36:57.011Z","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","votes":83941,"color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","source_name":"John Moolenaar","identity_aliases":[],"incumbent":false,"endorsed":false,"match_method":"exact","display_priority":0,"pct":76.40098662953153},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","votes":25928,"color":"#0f4b8f","photo_url":"","source_name":"Benjamin Ambrose","identity_aliases":[],"incumbent":false,"endorsed":false,"match_method":"exact","pct":23.599013370468466}],"featured_candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","votes":83941,"color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","source_name":"John Moolenaar","identity_aliases":[],"incumbent":false,"endorsed":false,"match_method":"exact","display_priority":0,"pct":76.40098662953153},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","votes":25928,"color":"#0f4b8f","photo_url":"","source_name":"Benjamin Ambrose","identity_aliases":[],"incumbent":false,"endorsed":false,"match_method":"exact","pct":23.599013370468466}],"matching_review":[],"office":"house","election_type":"House of Representatives","county_data_status":"available","county_data_note":"","counties_updated":"2026-10-12T17:46:48.825Z","counties_stale":false,"counties_complete":false,"total_votes":109869,"winner_party":"R","leader_party":"R","leader_name":"John Moolenaar","leader_color":"#a21a15","vote_margin":58013,"margin":52.80197325906306,"counties_path":"shards/eb68330d9fd7b3cbab66c96f9bb88cbea28383b77456918c5972e2673b688069.json","counties":[{"name":"Barry","fips":"26015","reporting":73,"total_votes":94053,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":56108,"pct":59.65572602681467},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":37945,"pct":40.34427397318533}]},{"name":"Clare","fips":"26035","reporting":22,"total_votes":16502,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":9137,"pct":55.36904617622106},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":7365,"pct":44.63095382377894}]},{"name":"Eaton","fips":"26045","reporting":10,"total_votes":165378,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":93826,"pct":56.73426937077483},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":71552,"pct":43.26573062922517}]},{"name":"Gladwin","fips":"26051","reporting":83,"total_votes":133432,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":81208,"pct":60.86096288746328},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":52224,"pct":39.13903711253672}]},{"name":"Gratiot","fips":"26057","reporting":39,"total_votes":129240,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":73746,"pct":57.061281337047355},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":55494,"pct":42.938718662952645}]},{"name":"Ionia","fips":"26067","reporting":1,"total_votes":91722,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":47358,"pct":51.63210571073461},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":44364,"pct":48.36789428926539}]},{"name":"Isabella","fips":"26073","reporting":66,"total_votes":10861,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":6521,"pct":60.040511923395634},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":4340,"pct":39.959488076604366}]},{"name":"Kent","fips":"26081","reporting":5,"total_votes":124881,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":66536,"pct":53.279522105044},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":58345,"pct":46.720477894956}]},{"name":"Lake","fips":"26085","reporting":97,"total_votes":164244,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":95074,"pct":57.88582840164633},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":69170,"pct":42.11417159835367}]},{"name":"Manistee","fips":"26101","reporting":80,"total_votes":178626,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":123868,"pct":69.34488820216542},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":54758,"pct":30.655111797834582}]},{"name":"Mason","fips":"26105","reporting":29,"total_votes":31834,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":17556,"pct":55.148583275742915},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":14278,"pct":44.851416724257085}]},{"name":"Mecosta","fips":"26107","reporting":0,"total_votes":92069,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":49213,"pct":53.45230207778948},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":42856,"pct":46.54769792221052}]},{"name":"Midland","fips":"26111","reporting":0,"total_votes":149645,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":87638,"pct":58.56393464532727},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":62007,"pct":41.43606535467273}]},{"name":"Montcalm","fips":"26117","reporting":71,"total_votes":40811,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":27457,"pct":67.27842983509348},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":13354,"pct":32.721570164906524}]},{"name":"Muskegon","fips":"26121","reporting":72,"total_votes":69384,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":39334,"pct":56.69030323994004},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":30050,"pct":43.30969676005996}]},{"name":"Newaygo","fips":"26123","reporting":6,"total_votes":19353,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":9725,"pct":50.25060714101173},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":9628,"pct":49.74939285898827}]},{"name":"Oceana","fips":"26127","reporting":53,"total_votes":95614,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":61082,"pct":63.883950049155985},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":34532,"pct":36.116049950844015}]},{"name":"Osceola","fips":"26133","reporting":79,"total_votes":85031,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":51757,"pct":60.86838917571239},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":33274,"pct":39.13161082428761}]},{"name":"Ottawa","fips":"26139","reporting":46,"total_votes":123806,"leader":"Benjamin Ambrose","candidates":[{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":64392,"pct":52.01040337301908},{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":59414,"pct":47.98959662698092}]},{"name":"Wexford","fips":"26165","reporting":6,"total_votes":40088,"leader":"John Moolenaar","candidates":[{"id":"civic-87202-c4d7d88522927e58","name":"John Moolenaar","party":"R","color":"#a21a15","photo_url":"https://americafirstinsight.com/wp-content/uploads/2026/08/MoolenaarIcon.webp","votes":32288,"pct":80.5428058271802},{"id":"civic-87202-4f43fd76398323b4","name":"Benjamin Ambrose","party":"D","color":"#0f4b8f","photo_url":"","votes":7800,"pct":19.457194172819797}]}]}