My flirtation with Ranked Choice Voting has ended as many of my flirtations end: bewildered and alone with my thoughts.
As I disclosed early in the process, I went into this project thinking the United States isn’t ready for RCV, and this exercise and the recent stories from NYC confirm it.
exhibit A:
NYC Board of Elections throws mayoral primary into chaos by counting test ballots
Here is my working hypothesis, at this time, America’s Democracy is not strong enough to adopt Ranked Choice Voting. It is too complex and that complexity invites doubts and questions. Given that America can’t seem to handle counting first past the post ballots well, RCV is a ‘luxury’ that will do more harm than good.
ICE CREAM and RANKED CHOICE VOTING
This began as a simple weekend project. Noting NYC was preparing the use RCV in their NYC Mayor’s race, we should practice polling and writing the code to tabulate / allocate the votes.
In theory, it should be easy.
1) Test, does one “vote getter” receive more than 50% of the vote? If so, declare winner, if not continue.
2) Tabulate and rank vote getters.
3) Eliminate lowest vote getter.
4) Re-allocate votes of eliminated voter getter to next choice.
5) Goto Step 1.
Easy, right?
It has proven to be a challenge.
In part because I am not an expert. In part because RCV has been implemented slightly differently in different jurisdictions. In part because the press doesn’t understand or report the details past the superficial Steps 1-5.
Here are some of the challenges I ran into:
When presenting the ballot, which format do we use? An array or multi-screen selection? Both are used. Do we program in error detection to stop people from making errors like repeating choices? Paper ballots don’t, so we chose to allow people taking the poll to make errors.
When ranking, the first issue is write-ins. Is ‘Peanut Butter Cup’ the same as ‘Peanutbutter Cup’? We immediately have a classification issue. I think best to avoid trying to interpret voter intent, so I ignored capitalization, but not spelling or spacing. Not a huge deal, but a decision.
When ranking, how does one handle ties? If three candidates / flavors are ranked and all tied – in what order does one eliminate the ties? Turns out, my research showed there are three ways in use now.
In our case study, we had 219 respondents. You can download the datafile here. Each respondent had up to 5 choices, each choice included the opportunity for a write in. Some opted to make no choice or turned in a blank ballot. Some used all 5 choices, some used 1 choice. Some didn’t follow the rules and voted the same choice 5 times or repeated choices.
So essentially, we have a array of 219 rows x 5 choices.
When eliminating, how do we eliminate ?
For example, if we eliminate ‘Lemon’ in the first round, is ‘Lemon’ only eliminated for Round 1 OR is ‘Lemon’ eliminated from the entire array? Meaning if ‘Lemon’ is eliminated in round 1, ‘Lemon’ is eliminated as a choice in all ballots in all subsequent rounds.
When spoiling a ballot, when do you spoil it and for how long?
I can write code in the beginning that can test for errors. Did a voter rank ‘Lemon’ more than once? If so, is the ballot spoiled at the beginning of counting completely – OR does it become spoiled at the time of counting the second erroneous “Lemon”? Furthermore, if someone doesn’t follow the instructions in their 3rd ranking, is their ballot spoiled for all further counting? or do we eliminate the error and move the the next ‘valid’ choice after the error?
If a choice is eliminated in a round and removes a ballot with an error, is the ballot still good? Do we ignore the error and keep the additional choices?
Say, a ranking of:
Butter Pecan, Lemon, Lemon, Chocolate, Vanilla.
Clearly this voter didn’t follow instructions. They ranked Lemon twice.
If Lemon is eliminated in the very first round, does that allow become Butter Pecan, Chocolate, Vanilla and remain in the mix or do we throw it out at the beginning? Is the ballot spoiled or a vote for Chocolate?
Finally, how do we define WINNER? Do I use a fraction (any % over 50%) or whole numbers? What is the denominator? If a person’s ballot is exhausted, are they still counted in the denominator or are they now an under-vote?
It is exhausting. Can you imagine the Cyber Ninjas involved in this mess?
An Experiment in Ranked Choice Voting
So, here we go. Here are my assumptions / decisions:
I erred on the side of trying to count votes.
I grouped write-ins only if they matched, but didn’t consider capitalization.
I did no error checking in the beginning, except for removing blank ballots. They were undervotes and not counted in the calculations.
So, we began with 219 respondents. Removing 11 blank ballots. 208 votes cast. This is the first challenge, when testing if someone gets >50%, do we divide by 219 or 208? In this case, I am using 208.