May 30, 2024

Barcodes on paper ballots: the good, the bad, and the stealth

Paper ballots should not have barcodes to mark votes; paper ballots should have barcodes to mark ballot styles.  Why is that?  What’s the difference?  And at the end, I describe a useful innovation from a company called  

One of the most important reasons we use paper ballots in elections is to protect our elections against the possibility of computer hacking or error.  If the optical-scan voting machines miscount the votes, we can recount the paper ballots by hand.  To save the trouble and expense of always recounting by hand, we can do a risk-limiting audit of a well-chosen sample of the ballots.  In those recounts or audits, teams of human auditors inspect the marks made by human voters.  And even if the mark wasn’t made by a human, suppose it was a touch-screen ballot-marking device (BMD) that marked the vote onto the paper, then at least (in theory if not in practice) that vote can be inspected and verified by the voter before they cast the ballots.

This principle assumes that the votes are printed onto the paper ballot in a form that the voter can read.  But some BMDs print the vote onto the paper in the form of a barcode or QR code, in addition to printing the candidate selection in human-readable form.  The voter can verify what the human-readable text says, but that’s not the mark that will be read and counted by the optical scanner.   This leads to serious problems, as described in the “Votes Encoded in Barcodes” section of the experts’ letter on Suggested Principles for State Statutes Regarding Ballot Marking and Vote Tabulation.

So therefore: Votes should not be marked on ballots in the form of barcodes or QR codes.

But there’s another use of barcodes or QR codes in paper ballots that’s actually quite useful, reasonable, and effective.  That is, to mark a ballot style.

In a typical jurisdiction, such as a county, there are hundreds of voting precincts.  Not every precinct has the same contests and candidates on the ballot. Some of the precincts are in one town, some in another, so there will be different choices for Mayor on one ballot than on the other.  Similarly, different precincts might be in different legislative districts.  That is, different precincts will have different ballot styles, and each ballot style will have its own set of contests and candidates to vote for.  The county election administrator must deliver to each local precinct the appropriate ballot style.

In modern times, we have vote centers.  In a county with vote centers, you don’t have to vote in your local polling place, you can go to any vote center in your county.  They will look up your name and address, and give you a ballot with the right ballot style for your own local precinct.  Because all the ballots at the vote center go into the same ballot boxes or optical scanners, each ballot must be marked with a ballot style number, saying what precinct it belongs to. And this ballot style number should be marked in machine-readable form, such as a barcode, so that the optical scanners can know how to interpret the votes on the ballot.  The ballot-style number should also be marked in human-readable form, so that election workers (or even voters) can easily check what kind of ballot it is.

The same applies to mail-in ballots.  To avoid confusion, it’s a good idea for each mail-in ballot to be marked with a ballot-style number, in both machine-readable and human-readable form.

So, if you’re going to have vote centers or absentee voting, ballot-style numbers should be marked on ballots in the form of barcodes or QR codes, and also in ordinary text.  And even in local precincts those numbers can help catch mistakes (like, wrong ballots delivered to this precinct).

Some people are suspicious of barcodes or QR codes on paper ballots; and I would say they are half right: barcodes that encode votes, a bad idea; barcodes that encode ballot styles, useful and necessary to run modern elections.  But because people are suspicious, some voting-machine makers go out of their way to hide the barcodes in plain sight.  Consider this paper ballot from a Dominion voting system:

Ballot from Mercer County election showing barcode indicating ballot ID
Optical-scan paper ballot with a barcode that encodes ballot-style number 264

 Down the left-hand side of the ballot, those are not barcodes, those are timing marks to help the voting machine see exactly what row the filled-in bubbles are in.  Along the top and bottom those are also timing marks.  Those timing marks can’t encode any information, because they’re so regularly spaced–there’s no choice about where to put them.  At the extreme right-hand side those are also timing marks.  But near the extreme right there are four black rectangles that sort of blend in with the timing marks; that’s a barcode that indicates the ballot style.

There’s nothing wrong with that barcode, and it’s perfectly appropriate for Dominion to put it there.  It needs to be there to run the election.  But it’s interesting that Dominion goes out of its way to make that barcode as subtle and unobtrusive as possible, to avoid worrying people.

Suppose you vote that ballot by filling in the bubble for Bob Healey, in Column B.  The optical-scan voting machine looks up ballot-style 264 to find that Column B in this precinct is a vote for Healey.  In some other precinct that falls within a different congressional district, that same position might be a vote for someone else entirely.  So it’s really important that the printed ballot agrees with the optical scan voting machine about what each ballot style means.  If the ballot-producing system (the county-central computers that generate the PDF files from which ballots are printed) thinks that 264 stands for one arrangement of names, and the scanner thinks that 264 stands for a different arrangement, then things can go badly wrong. 

Things went wrong just that way in Antrim County, Michigan in 2020:  after the ballots were designed, and the layouts were programmed into the optical scanners, election officials had to make a change to the ballot PDFs before printing; so the ballot design printed on the paper didn’t match the layout that the optical scanners were expecting.  The voters’ marks were interpreted wrong by the scanners.  [Correction 4/15/24: that’s true, but the main problem was that the scanners’ interpretations of ballot positions was inconsistent with the county-central election-management software’s configuration.] This was noticed on election night–the totals looked screwy–and it was corrected by a hand recount of the paper ballots before results were certified.

Excerpt of optical scan ballot with QR code that encodes not just the ballot style number but a hash of the ballot style
Excerpt of an optical-scan paper ballot with a QR code that encodes ballot-style number and a hash of the ballot layout (but does not encode votes)

Could we automatically detect screwups like the Antrim County one?  A voting-machine company called Voting.Works has a good solution:  print onto the (hand-markable) paper ballot a QR code that contains not only the ballot-style number, but a hash-code of the entire ballot design–that is, a “digest” of where the contests and candidates are located on the page, so that different ballot styles will have different digests.  The optical scanners will be looking for that hash-code.  If they don’t match, then it’s immediately detectable that something is wrong.  This is more foolproof than the conventional ballot-style barcode.  And it’s quite safe:  it’s not votes that are encoded in non-human-readable form, it’s only the ballot style.

Ballot-style numbers should be marked on ballots in ordinary text, and a summary of the entire ballot style (but not who you voted for) should be marked in the form of barcodes or QR codes.


When you’re voting, how can you tell the difference between a “good” barcode and a “bad” barcode?  It’s pretty simple:  If the barcode is marked on a preprinted paper ballot before you mark your votes on the paper, then that barcode is “good”:  It’s surely not encoding your votes.   If the barcode is marked on the paper at the same time your votes are printed on the paper, then it’s probably “bad”:  your votes are marked on the paper in a way that you have no way to verify.

P.S. Just to make things more complicated:  What about serial numbers on ballots?   The “good” barcodes I’ve been talking about so far are ballot-style barcodes, and this barcode will be identical for every ballot in that ballot-style.  But you could also imagine pre-marking a ballot serial number onto each paper ballot, with every ballot having a different identifiable number.  Over a hundred years ago some states were doing this.  But most states prohibit ballot serial numbers, for a very good reason:  the secret ballot.  If a local political boss wants to pay (or coerce) people to vote a certain way, how can the boss know which voters kept their side of the deal?  By keeping track of the serial number of each voter’s ballot, and (after the election) looking through the ballot boxes to check up on how they voted.  In 1902 “a judge in Ohio found that 26 percent of voters in Adams County had been routinely selling their votes.” [Steal This Vote, p. 118]   After widespread vote-buying scandals over a hundred years ago, U.S. states reinforced their secret-ballot protections.

Assuming that a preprinted barcode on a paper ballot encodes only a ballot style, and not a ballot serial number, then it’s fine.


  1. Shymaa Arafat says

    If the serial numbers are randomized like cryptocurrencies addresses for example, no one but the number owner can track it (unless it showed it to the coercer)
    Maybe countries needs differ, but I think end-to-end verifiability is very important to prove election has not been manipulated.

  2. Kathleen Mumme says

    Thank you! I retired as an election administrator right after the 2020 election. Some people need and want to know the lengths counties and states go to to insure fair, secure and accurate elections. Others need to know but have no desire to upset their already biased view. Articles like this and new measures taken by companies in the business will go a long way in helping restore faith in our great, decentralized voring system. For many of us the last eight years have been so frustrating and the accusations so heartbreaking. I am so proud of this country’s election works and administrators who put politics aside and simply follow the laws as they are sworn to do. Paper ballots and optical and digital tabulators are the ONLY way to go. Again, thank you.

Speak Your Mind