Ranked Choice Voting is getting popular in the US and fortunately, you don’t need a super sophisticated program to determine the results of an election conducted using Ranked Choice Voting. This blog post explains a super simple, yet a little sophisticated, semi-automated method of determining the winner in a Ranked Choice Voting electoral system.
If you’re new to the world of Ranked Choice Voting, watch this amazing video explaining what it is, and how officials determine the winner in a Ranked Choice Voting electoral system.
The input data consists of the choices from each voter (respondent), laid out in individual columns as Choice 1, Choice 2, … and so on, depending on the number of choices.
In this example, 100 respondents (voters) laid out their preferences (voted) for their preferred flavor of ice cream (candidates).
The core idea behind the process to find the winner in Ranked Choice Voting is to find the % votes each candidate has after each iteration of the evaluation.
If at any point, a single candidate has >50% votes, it is declared the winner of the election.
Until a clear winner is determined based on the above rule, eliminate the choice with the least number of votes, and substitute that choice with the next choice for that respondent. For e.g., in the above example, at the end of round one of evaluation, Rocky Road is being eliminated, and every respondent who had Rocky Road as their choice (row 14 onward), is now being assigned their next best choice after Rocky Road. Essentially, it means that eliminating Rocky Road as a choice altogether from the list of preferences for all respondents.
At the end of each iteration, if a clear winner is still not found, continue the process of eliminating the choice with the least number of votes, and replacing all their occurrences with the next choice available.
Implementation in MS Excel/Google Sheets
The high-level steps can be identified as follows:
- Calculate the number of votes for each candidate (COUNTIFS).
- Stop if there is a clear winner (>50% votes).
- Identify the least preferred choice.
- Substituting all occurrences of the least preferred choice with the next choice (COUNTIFS, IF)
- Go to Step 1.
The maximum number of times you’ll have to iterate through this entire process is (n – 2), where n is the number of candidates.
If you have any questions and comments, leave it in the comments section of this post.