Skip to content

2026 Primary Precinct Election Results #85

Description

@dwillis

Using Tabula, OCR or whatever method you can, parse precinct-level results for the following counties. Original sources are in individual county files in the sources-mi repository.

The goal is to create a single CSV file for each county, with the following headers:

county, precinct, office, district, party, candidate, votes

Here's an example of a finished CSV file. The files should go in the 2026/counties/ folder in this repository and should have the following filename structure:

20260804__mi__primary__{county}__precinct.csv, where county is the lower case version of the county name, with punctuation removed.

If the county file also provides a breakdown of votes by method, include that using the following headers, where applicable:

early_voting, election_day, provisional, mail

If there are other possible vote types, include them, using a lowercase version of the vote type with underscores instead of spaces for the column name.

Include all offices.

If a county provides precinct results for Write-in candidates, they should be grouped in a single row for each precinct and office with a candidate value of Write-ins.

If a county provides Under Votes or Over Votes, those should be recorded in the same way, with a single row per precinct and office with Over Votes and Under Votes as the candidate values.

  • Alcona
  • Alger
  • Allegan
  • Alpena
  • Antrim
  • Arenac
  • Baraga
  • Barry
  • Bay
  • Benzie
  • Berrien
  • Branch
  • Calhoun
  • Cass
  • Charlevoix
  • Cheboygan
  • Chippewa
  • Clare
  • Clinton
  • Crawford
  • Delta
  • Dickinson
  • Eaton
  • Emmet
  • Genesee
  • Gladwin
  • Gogebic
  • Grand Traverse
  • Gratiot
  • Hillsdale
  • Houghton
  • Huron
  • Ingham
  • Ionia
  • Iosco
  • Iron
  • Isabella
  • Jackson
  • Kalamazoo
  • Kalkaska
  • Kent
  • Keweenaw
  • Lake
  • Lapeer
  • Leelanau
  • Lenawee
  • Livingston
  • Luce
  • Mackinac
  • Macomb
  • Manistee
  • Marquette
  • Mason
  • Mecosta
  • Menominee
  • Midland
  • Missaukee
  • Monroe
  • Montcalm
  • Montmorency
  • Muskegon
  • Newaygo
  • Oakland
  • Oceana
  • Ogemaw
  • Ontonagon
  • Osceola
  • Oscoda
  • Otsego
  • Ottawa
  • Presque Isle
  • Roscommon
  • Saginaw
  • St. Clair
  • St. Joseph
  • Sanilac
  • Schoolcraft
  • Shiawassee
  • Tuscola
  • Van Buren
  • Washtenaw
  • Wayne
  • Wexford

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions