Ranked Choice Voting

September 7th, 2022 by David Simms

Categorized as: Election Tips, Product Development

Ranked Choice Voting

Skypunch supports Ranked Choice Voting. Among other names, this is sometimes referred to as Single Transferable Vote, preferential voting, or when being used to fill only a single vacancy, Instant Runoff. Frankly none of the alternative names are particularly descriptive in helping voters understand how it differs from plurality voting where the candidate with the most votes wins, which in many parts of the world, voters are much more likely to already be familiar with, so Ranked Choice is what we’ll go with and recommend you do the same should you be presenting this to an electorate as a change from some previous method of voting.

What is ranked choice voting?

Wikipedia explains it thoroughly, but for a very simplistic example, suppose a voter has the following three choices for a single vacancy:

  • Candidate A
  • Candidate B
  • Candidate C

Our voter most wants Candidate B to win, but understands that is a long shot and wants more than anything for Candidate C to not win. In an election where the voter may only make a single choice, they may recognize that a vote for Candidate B will likely go to waste and instead vote for Candidate A given Candidate A has a better shot at defeating Candidate C.

But in a ranked choice system, the voter could make multiple selections, and rank those selections in their order of preference. In this example then, the voter would mark Candidate B as a top preference, but also mark Candidate A as a second preference. In effect, voters may vote in a manner consistent with their sentiment which says, “I most want Candidate B to win, but if I can’t have Candidate B, please transfer my votes to Candidate A.” Ballots are then tabulated using a counting method that honors the voter’s wishes and moves votes around so that they do not go to waste.

The Counting Method

Within ranked choice voting systems, there are multiple options for how this counting method is performed, with the differences lying mostly in the redistribution of votes from one candidate to another. Skypunch performs this part of the process using the Wright Method with one little twist. Using the Wright method, after surplus voters, when they exist, have been distributed and there are still more continuing candidates than there are open seats, then the next step is to exclude the candidate with the fewest votes. But if there is a tie among candidates at the bottom, that tie is broken by a random draw. Instead, Skypunch uses the Borda Count to determine which of the tied candidates has the lowest score and excludes that candidate. If performing a manual count of ballots, this would be burdensome. Performing the count electronically is trivial and makes the election results more defensible as it attempts to remove the randomness of excluding candidates with a coin toss. There is no guarantee however, that the Borda count will break the tie, and in that case, Skypunch resorts to random selection to determine the candidate to exclude.

Reading the results

When a position uses plurality voting, there is no explanation necessary for how to read the election results. The winner—or winners in multi-seat elections—with the most votes wins. Even with a ranked choice system, while it would be very easy to perform all the tabulation iterations behind the scenes and simply dump out the winners on the election results report, it would not be very helpful to the election manager who wants to understand how those results were determined. Recognizing that ranked choice tabulation requires multiple iterations of counts with votes transferring from one candidate to another means the Skypunch results report is formatted so as to walk the viewer through the process of gathering the ballots to begin the process, and then describing all the decisions made on the way to declaring winners. That thoroughness however, can make the report a bit lengthy and require some explanation.

To help, this article is accompanied by two sample election results for Favorite Looney Tunes Characters. Because, Looney Tunes. Realize that when tabulating ranked choice results, there can be multiple iterations of counting with decisions made along the way that cause the count to sometimes go in one direction and other times go in another. In other words, sometimes surplus votes from candidates provisionally declared as winners might be redistributed to other candidates while another iteration instead excludes candidates from the bottom of the vote count. That is the reason there are two examples provided, to demonstrate both, and you should not necessarily expect your election results to follow either of these flows. The results page for ranked choice voting is designed to explain to the viewer what is happening at each step of the process, so hopefully after studying these two examples, you’ll be ready to make sense out of whatever your own election results produce.

Example One

Open the example results in a separate tab in your browser and follow along. While you’re at it, you may also wish to open the Wright System Flowchart on Wikipedia as it will be referenced below and is useful for furthering your understanding of the flow. In this example, we have four candidates trying to fill two open vacancies.

  1. Tabulation begins by querying the database for all distinct ballots and counting the number of each. For example, at the top of example one, we see the heading Distinct ballots above a table. The first row of that table shows us there are two ballots where the voter selections were Bugs Bunny,Foghorn Leghorn. In other words, Bugs Bunny is the voter’s top preference and Foghorn Leghorn the second. On the next row, there are two ballots where the voters chose Daffy Duck,Bugs Bunny meaning Daffy Duck is the top preference and Bugs Bunny second. The table continues on for all distinct ballot configurations. There is another column in this table called Value of the Vote. All ballots begin with a Value of the Vote equal to 1. As we’ll see in example two, that can and does change as the count progresses and surplus votes from winning candidates are redistributed. Lastly, on the Voter selections column, when the length of the candidates is wider than the space allowed, it will be trimmed with an ellipsis. That is only for display purposes and does not indicate that the voter selections have gone anywhere. If you’re also referring to the Wright System Flowchart on Wikipedia, this is the step labeled Distribution of preferences and calculation of quota to start the process.
  2. Once we have all distinct ballots before us, we’re able to calculate the quota. This is the number of votes needed to win. By far the most commonly used quota is the Droop Quota which may be calculated with the following formula:

    floor((total ballots / (vacancies+1)) + 1

    In our example, the total number of ballots is 11. The number of vacancies to be filled (sometimes called seats) is 2. So our formula looks like:

    floor((11 / (2+1) + 1) which turns into
    floor((11 / 3 + 1) which turns into
    floor(3.666 + 1) which turns into
    floor(4.666) which turns into

    You will see the Droop quota as the second bullet point on the example results page.
  3. Next, we calculate the sum of all top preference votes. This calculation also considers the value of the vote because as we will see in example two, it is not always 1 once a count gets past the opening stages. The result of this calculation is found under the CTVV column which stands for Candidate’s Total Value of Vote. If you were wondering about the Make no selection entry, that is from a single voter who chose to submit the ballot without making any selections at all. If you force voters to make at least one selection in your ballot setup, you will never see that but it’s included here just for demonstration purposes.
  4. Once we know the CTVV, we can see if anyone reached the Droop Quota and declare them as provisional winners if so. In our example, Yosemite Sam has satisfied the quota and is declared a winner.
  5. Are all vacancies filled? There are three vacancies in this example, so the answer is no since we need to declare two more winners.
  6. Do surplus votes exist for any candidate? In this example, no candidates have surplus votes above the quota, so we move on.
  7. Does the number of remaining vacancies match the number of continuing candidates? We have more continuing candidates than there are remaining vacancies so we must exclude a candidate from continuing in the count. The candidate with the lowest CTVV is Make no selection and is removed. While Make no selection is obviously not a real candidate, it is still present on the ballots as if it were and so is treated as such.
  8. Immediately after excluding a candidate, another check is made to determine if the number of continuing candidates equals remaining vacancies. In this example the answer is no, so the process continues.
  9. Before restarting the count, the Droop quota is reset. In our example, re-calculating the Droop quota produces the same value, 4. But it is part of the flow of the process that must be performed and can sometimes produce a different value.
  10. The process continues as before, but if we look down to check if the number of remaining vacancies matches the number of continuing candidates, we see that we can not so easily exclude a candidate as we did earlier with Make no selection. There is now a three-way tie for lowest points. The Wright system calls for ties like this to be broken by random draw. Skypunch improves on that and attempts to break ties using the Borda count as mentioned earlier. Because this is a three-way tie, using the Borda count does work to prevent Foghorn Leghorn from being excluded by random draw since he has the highest Borda count. However, there is still a two-way tie between Bugs Bunny and Daffy Duck which can only be broken by random draw. In our example, Daffy Duck is chosen for exclusion.
  11. After excluding Daffy Duck we again check to see if continuing candidates equals remaining seats and when that returns no, we reset the Droop quota and start again. In this example, resetting the Droop quota produces the same value as previously, 4, but it’s part of the process that must be performed regardless.
  12. With Daffy Duck out of the count, Bugs Bunny is now able to add 2 new votes to the 2 he already had for a total of 4 which satisfies the quota so he is declared a winner.
  13. Now when we run the check to determine if all vacancies are filled, the response is yes and we are able to declare Bugs Bunny and Yosemite Sam as the winners.

Example Two

With example two, we have four candidates running for three vacancies. In this example, you will see the distribution of surplus votes from a winning candidate.

  1. As always, the counting process begins with getting all distinct ballots and the total counts of each before us.
  2. We are then able to calculate the Droop quota which is 3 in this example.
  3. We calculate the sum of all first preference votes and see that Elmer Fudd and Wile E Coyote have both reached the quota right off the bat and may be declared winners.
  4. Checking to see if all vacancies are filled shows we need to declare one more winner.
  5. Instead of excluding candidates as was done in example one, we first distribute surplus votes. Elmer Fudd has a surplus of one, which will be redistributed proportionately across all ballots where he had been the top preference. There are four such ballots so the Value of the Vote for his one surplus vote will equal .25 and be distributed across those four ballots to the next preference as you may observe in the table under the Distribute surplus votes heading. Wile E Coyote remains in the count because it is not his surplus (if he had any) that is being redistributed. He does not however pick up any of Elmer Fudd’s surplus vote. Look back at the start of the count under distinct ballots and notice there are two ballots configured like: Elmer Fudd,Wile E Coyote,Tasmanian Devil. Because we have now removed Elmer Fudd from the top preference of all ballots, you might think part of his surplus would go to Wile E Coyote since that is the next preference on those two ballots. But because Wile E Coyote has already been declared a winner he is prevented from receiving any surplus distribution and the surplus instead goes to Tasmanian Devil.
  6. We again calculate the sum of all top preference votes and see that even after distributing Elmer Fudd’s surplus, no new candidates have reached the quota.
  7. In this example, if Wile E Coyote also had surplus to distribute, we would do that before going on. He does not, so we instead move on to excluding a candidate.
  8. Porky Pig is the candidate with the lowest CTVV and so is excluded.
  9. After exclusion we check to see if the number of vacancies matches the number of continuing candidates. It does, so we declare that one remaining candidate, Tasmanian Devil, a winner and conclude the count.

Position-Specific Application

Ranked choice voting does not need to be applied across an entire ballot. You may choose to implement it on some positions, while others on the same ballot use plurality voting as might be the case when there are two candidates contesting a single position.