Ranked Choice Voting – I am starting over!
- Decided by lot
- Most votes in previous round
- Predetermined tie-breaking order and include in configuration or algorithm.
I am frustrated. What should have been an easy 1-2-3 project has turned into a mess.
It seems by offering people ranking, people are getting to the point of “throwing” away their votes – even may be enjoying it.
Just when I think we are making progress towards declaring a winner, the dreaded write-ins come into play AND we are losing people along the way with their votes becoming spoiled or exhausted. We are at the point were we are exhausting ballots of those who picked 5 – and none of them are cracking the top 10.
Take for example this round, we eliminated “Pitstachio” (which is a damn fine flavor, sorry to see it go….) however, Pitaschio voters are a non-compromising bunch – writing in “Green Tea” and “Birthday Cake” (which had already been eliminated).
In attempting to code this, I seem to be spending an incredibly inordinate amount of time dealing with write ins and “exceptions”. While this is not abnormal for coding, it is reducing my enthusiam…and we persist.
But really – damn it, I want to know the “answer” not continue to deal with Pistachio’s garbage.
I am at the point, were I am going to run the code and not paste each round. Next post will declare the winner….
Stay tuned….
WE ALL SCREAM FOR ICE CREAM!
I thought this was going to be easy….it is not. It is complicated and it goes back to the old saying “those who county the votes…..”
Here is the challenge, again suppose to be easy….you eliminate the bottom vote getter and re-allocate their next choice.
Great – from last round we eliminate
Chocolate Peanut Butter
Then Neapolitan….
OK
Then we have a tie….again….in this case the random number generator says we should eliminate Strawberry.
Side / authors note: Neapolitan. It isn’t even a FLAVOR – it is a trash “flavor” for those who can’t make a decision. Come one, cowboy up and make yup your mind!
So we eliminate Strawberry. We should be moving on and making progress – next for elimination is Chocolate Chip. RIGHT?
DARN IT – Now we have another issue. These Strawberry ranked choice voters are making my life hellish.
Eliminated | Next Vote |
Strawberry | Chocolate |
Strawberry | Chocolate Chip Cookie Dough |
Strawberry | Cookies and Cream |
Strawberry | Rocky Road |
Strawberry | Cookies and Cream |
Strawberry | Vanilla |
Strawberry | Butter Pecan |
Strawberry | Mint Chocolate Chip |
Some of the Strawberry’s next votes are for flavors that have already been eliminated!
What to do now?
Do I add these flavors back into the count and start eliminating from the smallest again?
Do I spoil those ballots, if you insist on voting for a crazy flavor with zero chance of winning, do I spoil your ballot now since that choice has already been eliminated? OR do I keep on applying them until the ballot is exhausted (remember, you only get 5 choices).
In this case, because I am a kind and benevolent dictator, I am NOT going to spoil the ballot and play it out to the end, but know this – I don’t like you.
Stay tuned…..
And the winner is……
Nobody. yet.
If you are flow charting out the tabulation, here are the easy as 1-2-3 steps:
Step 2 is causing me some heartburn, because we immediately begin to run into issues / challenges.
The lead vote getter is Mint Chocolate Chip with 21% of the vote.
It would appear we should eliminate “Neapolitan”, but that would be incorrect. Neapolitan has three round 1 votes.
We first must deal with write ins, because some of them receive less than 3 votes.
The verbatim write ins are as follows:
We now have to decide on a classification for write ins. Is Chocolate peanut butter the same as Chocolate/Peanut Butter? Is it the same as Peanut butter cup?
We have to be extremely careful here for a couple of reasons, hypothetically “M. Mouse” as a write-in could mean “Mickey Mouse” or “Minnie Mouse”. We shouldn’t be in the business of guessing or interpreting voter intent.
The next issue is what order, if tied, do we eliminate ballots and re-allocate votes. This matters in the situation where the first place vote getter is one or two short of achieving victory. It would also matter if the reallocation caused a selection to be eliminated in the following round or surviving another round. Yes, the odds of these situations are small – but they do exist, and we need to consider this. In addition, you have to make these decision when coding.
In what order do we eliminate tied lower tier ballots? Do I eliminate “Coffee” or “Peach” first? What reasoning do i code-in?
In this case, we have the following write ins with 1 vote:
We have 2 votes for “Peanut Butter Cup”
We have 3 votes for “Chocolate peanut butter”
So, these are the coding decisions I am making:
I will ignore capitalization, but will not ignore spelling when classifying write ins. If a voter misspells a write in, then so be it. I am sure each state will have different rules if they enact RCV as to write ins (see Alaska and Murkowski write in election as an example of rules regarding write ins). I simply can’t interpret voting intent and need to take the write in as presented.
I will alphabetize … no…. changed my mind ….. I will randomize the tied ballots to determine the order they are eliminated and second choice reallocated.
I created a random number generated and sorted low to high and I will eliminate the write ins in the following order:
I stress this is a decision that I made. I don’t know if it is the “correct” way to do this, and that could be a potential issue. I am not sure enacting legislation considers this or is specific.
Again, the chances the order that I eliminated and re-allocate write ins will have a material effect on the eventual outcome is small – HOWEVER, if it were the decision I just made as a coder would be an issue. I will need to talk to an RCV expert to explore this further.
Round 1 | Round 2 |
Peach | Mint Chocolate Chip |
Tiger tail | Mint Chocolate Chip |
New York Super Fudge Chunk | New York Super Fudge Chunk** |
Spumoni | Chocolate Chip Cookie Dough |
Chocolate/Peanut butter | Rocky Road |
Pralines ‘n Cream | Butter Pecan |
Black raspberry | Mint Chocolate Chip |
Strawberry cheesecake | Butter Pecan |
Raspberry | Butter Pecan |
Coffee | Mint Chocolate Chip |
Peanut butter chocolate | Chocolate Chip Cookie Dough |
We immediately experience an additional issue. The rules require that one does not vote any one choice more than once, and if one does – the ballot becomes “spoiled”. Our voter with his love for “New York Super Fudge Chunk” is proving to be an issue. An additional question, is the entire ballot spoiled? Say for example, “NYSFC” voter in round three voted for Vanilla. Do we count round 3 or is the entire ballot spoiled for all future rounds? If we immediately spoil the entire ballot are we disinfranchising the voter for additional rounds?
I think for our excercise, I am going to make the decision that if a voter doesn’t follow directions and votes for one choice more than once – the ballot becomes spoiled for future rounds. Sorry, NYSFC – your strident love for “New York Super Fudge Chunk” has invalidated your ballot because we are a strict father.
So, to recap – we aren’t even out of the write-ins, and we have three major coding / tabulation issues:
I am going to need another cup of coffee.
So, after dealing with the write-ins, Mint-Chocolate Chip has increased its lead, and we start again. Thankfully, it’s not close enough to get sued…..yet.
As we observed in the previous post, it is the accumulation of small errors that could lead to a catastrophic failure.
So far we have seen possible issues with:
Yes, agreed, the chances are small – BUT – if some error were to cast doubt on the tabulations, it would be terrible for confidence in the process.
With the pending Democrat primary race for Mayor in NYC using Ranked Choice Voting (RCV), we are thinking through the process of how to properly poll Rank Choice Voting and how to write the back-end code to do the analysis.
What I thought would be a weekend in project has turning into a completely different beast. If you ever want to move from theory to execution of something – write code for it. Writing code forces you to explore the details and try to attempt to anticipate errors etc.
In these blogs posts, I will not attempt to give a primer on Ranked Choice Voting. Others have done that well:
Bias Alert – you should know that I am not sold on RCV as a method of voting in the United States because it adds layers of complexity to a system – counting votes – that we are currently struggling with in the United States. As we will soon discover, each detail / decision is a thread for someone to pull on that could further cast doubt on our voting systems.
What I will attempt to do is walk through our fake data set and explain our logic on polling / coding and address various decision making. I will highlight issues that I see as potential problems in polling / casting votes.
In our exercise, we were going to ask people to “rank choice vote” flavors of ice cream. What could possibly go wrong???
As a rule when polling, you want the poll to resemble the actual voting process as much as possible.
Even before collecting data, we were presented with a couple of issues / deicision points:
As one of the people who took the poll pointed out, there are multiple ways of actually presenting the ballot – and it appears New York City is using two different methods.
There is an array and a multi-screen approach. NYC’s sample ballot shows an array and online NYC demonstrates RCV on something called an ‘AutoMark Ballot Marking Device’ uses the multi-screen approach (https://www.vote.nyc/page/ranked-choice-voting).
NYC isn’t clear on what method is used when, and finding out the details was outside the scope of my weekend project.
While our online software has the ability to do either type of question, I decided for this exercise to use the multi-screen approach. Why, to allow for error….
As another reader pointed out, it would have been helpful, if we would have removed their previous choices from screens. Example, if they picked Vanilla, it should be removed from future choices. It would NOT have been difficult to do; however…..
It doesn’t appear that is what is being done in NYC on the printed ballot or the multi-screen approach. It appears that errors are allowed (butterfly ballot anyone). I would need to speak to an electronic voting machine expert to explore IF machines allow a voter to error or not, but with paper ballots we can’t code out human error.
Therefore, when programming the survey, we “errored” on allowing the voter to “error” – even though the “rules” clearly state if you vote twice for something your vote will be “spoiled” (We will have much more on that later).
As a “voter” / “survey respondent” pointed out – we had a problem with definitions / unclear instructions. The instructions were to “Rank Choice Vote” for ice cream flavors. We did this purposefully to mimic the ballot instructions.
Some people were confused asking should I vote for “my favorite” or “my least favorite”, requesting more descriptive instructions. I assume this confusion would exist on any ballot.
In addition, it appears many “voters” “survey respondents” didn’t realize there was a space on each choice for a “write in.”
Even before data collection or simulated voting – we made two decisions (ballot presentation and error handling) that could potentially have a material effect(s) on the results, and we haven’t even started coding results yet.
The challenge with this when you study system failures of any kind, it is not normally one huge error that causes failure, it is an accumulation and compounding of smaller errors.
But for now with those decisions made, we collect data….
In the early 1960, William McGuire began to build the theory of inoculation in and around communication and persuasion.
The theory has since been studied extensively with nuances offered (a large debt to Michael Pfau).
The communication theory uses a metaphor from biology that is especially relevant with COVID as the topic of the day.
A person or entity can expose individuals to a weakened argument (line of attack) and by doing so can “inoculate” the individuals exposed to future, potentially more robust attacks.
The theory is not without detractors, and some researchers have dismissed the theory all together.
However, research continues and the field, like all social science, continues to develop.
In the political context, we often come across the theory when dealing with negative information we have found out about our own client and are wrestling with how to deal with a potential line(s) of attack.
It works.
It will be found.
We have established that negative campaigning works and that a good opposition research investigation will uncover your deep secrets. If they aren’t uncovered by a researcher, your secrets will be likely hand-delivered by a jilted ex or an upset past acquaintance that does not share your politics. (Trust me on all of this).
We have learned from experience, you must “hang a lantern” on your issues and by doing so inoculate yourself.
The theory works like this, I hang a lantern on my problem and I attack my own campaign. In this case, I am open about my problem, but most importantly I tell you!
Critical to this is the individual must perceive a threat.
How do we do this?
“My opponent is going to attack me (or our campaign, our movement) by saying…..”
I then work to pre-empt their argument or refute it. I simply give the audience the ammunition to refute and / or build additional refutations.
By doing so I am weakening the “shock” and the effectiveness, but more importantly I am inviting you to generate counter arguments or I am providing you the counter arguments.
This is extremely effective when the attack is likely to come from the other party in the hyper-polarized times. Why? The threat appears greater and often the audience is then more motivated to generate counter arguments.
I am going to point you to two studies.
The first is one of my go to research tactics – look for a meta study on your topic. Meta-studies are fantastic – they are a review and summation of available research on a topic. If you can find a good, recent one, you’ll save a lot of time AND have a fantastic reference sheet for further study.
In this case, we have a meta-analysis done by Banas & Rains in 2010. It offers a much better in-depth coverage of the nuance in the field than I can offer in this post.
It concludes while there is counter-findings in the field, a review of the available research finds “inoculation treatments are more effective than no-treatment controls or supportive treatments in fostering resistance to attitude change. “
The second study is an older study (1990), but I include it because it is specific towards campaigns.
Michael Pfau, et al look at inoculations via direct mail in the 1988 presidential campaign. Dukakis v GH Bush. In my kind of experiment (and to be fair), the researchers attacked both candidates. The Bush messages attacked Dukakis for being weak on crime, and the Dukakis messages attacked Bush for support of agriculture policies and policies that hurt rural America. (A criticism is these lines of attack appear almost cute or quaint in the current times, but that is an issue for another day. Another criticism is the study is a relative low sample study and likely due for a replication study using a larger sample.)
In short, they find inoculation to outperform post-hoc refutation – and the experiment was conducted via direct mail. This finding was robust among strong party identifiers.