A primer on ranked-choice voting

With EP2.2.5 up for voting at the moment using ranked-choice voting, this seems like a good time to provide a primer on how ranked-choice voting works, and some insight into how your vote can affect the outcome.

What is ranked-choice voting?

Ranked-choice (RC) is a class of voting systems where rather than simply voting for the outcome you want to win, you instead rank the options from best to worst. In some systems, such as the one Snapshot uses, it is mandatory to rank all the choices, while in others you only have choose at least one.

Why not use simple voting?

First-past-the-post (FPTP) voting, where each voter selects only a single option, has some surprising failure modes, particularly when it’s possible to see outcomes during the voting period.

Suppose we are trying to select a mascot for the DAO. The options are:

  1. Woodpecker
  2. Manatee
  3. Capybara

You would like to see Woodpecker win - but you’d do anything to stop Manatee winning. You have 10 votes, and on voting day you see the current standing is:

  • Woodpecker: 5 votes
  • Manatee: 20 votes
  • Capybara: 12 votes

If you vote for Woodpecker, it will still be in second place to Manatee. Unacceptable! So instead, you vote for Capybara, pushing it over the top to 22 votes. Because of the limitations of FPTP, you voted for an option that wasn’t your first choice, because you didn’t want to risk ‘wasting’ your vote and getting an outcome that was worse for you. There’s no way to tell how many other people are using the same strategy - so maybe nobody really wanted Capybara, they just voted strategically and that was the result.

How does ranked-choice voting help?

Ranked Choice voting allows voters to express their preferences more granularly. In the situation above, you could rank the choices in the order 1. Woodpecker, 2. Capybara, 3. Manatee. Your vote will be first counted towards Woodpecker, and only if Woodpecker cannot win will the other preferences be taken into account.

Under ranked choice voting, the strategic way to vote is also the obvious way to vote: simply rank your preferences in order.

How does ranked choice voting work?

Ranked Choice works by successively eliminating options that cannot win until one option has more than 50% of votes. Suppose we have the following voters:

  • Alice: 5 votes, voting for 1. Woodpecker, 2. Manatee, 3. Capybara
  • Bob: 20 votes, voting for 1. Manatee, 2. Woodpecker, 4. Capybara
  • Charlie: 12 votes, voting for 1. Capybara, 2. Woodpecker, 3. Manatee
  • Dave: 2 votes, voting for 1. Capybara, 2. Manatee, 3. Woodpecker

In the first round of voting, everyone’s first choices are totalled up, yielding:

  • Woodpecker: 5 votes from Alice
  • Manatee: 20 votes from Bob
  • Capybara: 12 votes from Charlie + 2 votes from Dave = 14 votes

Nobody yet has the majority, so we eliminate the least popular, Woodpecker, and reassign Alice’s votes, yielding:

  • Woodpecker: Eliminated (0 votes)
  • Manatee: 25 votes from Alice (2nd choice) and Bob (1st choice)
  • Capybara 12 votes from Charlie (1st choice) + 2 votes from Dave = 14 votes

Manatee now has more than 50% of the votes, so it is declared the winner. Notice also how Woodpecker appears to have 0 votes, even though it was Alice’s first choice. This is because it was eliminated in a previous round. This is how Snapshot presently shows voting totals in ranked choice voting; only the results of the last round are shown.

We can visualise the process of a ranked choice vote using a Sankey diagram. Each horizontal step represents a round, and the flows show how votes are reassigned between choices. Here’s the scenario above:

Now assume you submit your vote as above: 1. Woodpecker, 2. Capybara, 3. Manatee. The effect is dramatic. Round 1 is now:

  • Woodpecker: 5 votes from Alice + 10 votes from you = 15 votes
  • Manatee: 20 votes from Bob
  • Capybara: 12 votes from Charlie + 2 votes from Dave = 14 votes

This time, Capybara has the fewest votes, and is eliminated; Charlie’s and Dave’s votes are reallocated to their second choices, yielding:

  • Woodpecker: 5 votes from Alice + 10 votes from you + 12 votes from Charlie = 27 votes
  • Manatee: 20 votes from Bob + 2 votes from Dave = 22 votes
  • Capybara: Eliminated (0 votes)

Woodpecker now has more than 50% of the votes, and wins, despite appearing to be an obvious loser before you placed your vote; your vote was enough to save it from elimination, causing it to win. Here’s the result in visual form:

Why do I have to rank all the options?

While some implementations of ranked choice voting allow you to choose not to rank some options, Snapshot requires you to rank them all. People are sometimes discouraged from voting at all, because they do not want to lend any support to an option they believe is a bad choice by ranking it.

However, the implementation of ranked choice voting means that the order of options further down your list can never affect the chance of options higher up your list winning; they are considered only if all of your more preferred options have already been eliminated from consideration. Take the example of Dave’s vote above; after Capybara was eliminated, his votes went to Manatee; if he had not provided a second choice those votes would have not counted at all, and his preferred choice would still not have won.

The optimum way to vote is to rank in preference order; if there are options you truly do not want to see win, rank them so that the least bad is ranked first. If you truly do not care which of your later options is selected, rank them in whatever order you wish. Either way, there is never a case where leaving an option off results in a better outcome for you than ranking it last.

How can I vote strategically under Ranked Choice?

You can’t! Simply vote for the options you prefer in the order you prefer them to win. Unlike FPTP, ‘spoiler’ votes are not a thing, and your vote always counts, even if you think your preferred option has a low chance of success.


Thanks for the explainer. I’m a big fan of ranked choice voting but I’m increasingly frustrated with the IRV method used. Not because of education but rather ease of visualization. It’s quite hard to get an intuitive grasp of how the vote will go by just looking at the state.

For example let’s look at the state of votes on Friday:

From the state Llama doesn’t seem to be doing well. It’s ranked last by 58% voters and it’s the third place judging by first choices. Yet it does really well on vote transfers, ends up second and seemingly wouldn’t take much to change the end result.

I’m not sure which is the case: is the sankey chart not properly showing the full state of the vote or is the bar chart not capturing the complexities of vote transfers? But one thing is certain: vote results shouldn’t be chaotic or surprising, in which small changes affect deeply the outcome. Ability to visualize the full vote and predict the outcome is not only important during the count (or opinion polling) but adds legitimacy as all parties can easily understand what happened and plan what would’ve needed to change to alter the outcome.

I’ve tried putting vote transfer as a bar chart but it doesn’t help:

Intuitively it feels that a better approach to counting would be the following:

  1. count all first choices. If a single candidate reaches quórum they’re elected, Equivalent to a simple FPTP.

  2. if quorum is not reached then count all first and second votes. This would be the equivalent of having a run-off election with all possible candidates.

  3. if quorum is not yet reached then add all third options and so on. This is equivalent of an approval voting where voters have up to N votes, where N is the number of rounds.

In this manner the result would be obvious by looking at the full state of the vote, and it allows a compact visualization of the result, as well as a great way of seeing votes during the count.

It feels so simple that I suppose it should exist and have a name but I couldn’t really find one (lots of voting systems!). If it doesn’t exist, I wonder if it it’s because there’s some obvious issue I don’t see.

But I fail to see why, because as I said it’s functionally equivalent to running all possible run off elections at the same time, or an approval voting method until it finds quorum.


I think ranked voting is fine as long as you’re not forced to rank your choices. This is due to practical reasoning but also psychological reasoning.

Practical reason: people don’t have an opinion about the ranking of all the candidates

Consider the very practical situation (that I’m myself facing in ENS ranked votings) of someone that has only a first preference, but has no opinion on any of the other candidates (besides their preferred one).

Since they are forced to rank the other candidates anyway, they just do it randomly.

In this case in the example you gave, Bob and Charlie mention Woodpecker as number 2 in a random way (because you force them to choose a second place). Which makes Woodpecker elected, even though they’re not particularly wanted more than others.

Psychological reason: confusing system and it’s offensive to be ranked last

Though you explained the system wonderfully, it’s still confusing to many people. I think a voting system should be simple to understand by everyone.

One reason is that It makes it easier to spot problems. For example, there was a bug in ENS stewards first elections, which wasn’t spotted till the second elections, since the system is difficult to follow.

Another reason is that a system people understand is easier to trust.

But not less important is the fact that I don’t want to rank anyone last. I feel it’s an offensive thing to do.

Moreover, as I was nominated for the last stewards elections, I was also kind of offended when some people put me last. It’s one thing not to vote for me or even not to vote for me as the top 3 (that’s normal), and another thing to be ranked last. It feels a bit like a popularity competition in elementary school, and I never liked these. I’m telling myself it was done out of default, not out of having something against me, but it’s still not a pleasurable feeling and one that could be avoided in a different system.

I understand the system was chosen in order to prevent strategic voting, but since imo it also has its cons then I would switch it in favor of another one. Maybe simple voting, but even if not, I’d switch to a system that doesn’t force people to rank everyone.

I’m aware snapshot doesn’t have such a system in place, but I guess ENS DAO can pay for making one?