Advanced Voting with the Decisions Drupal Module

One of the reasons I’m excited to vote this week is the introduction of Ranked Choice Voting in my hometown of Oakland, California. I like Ranked Choice Voting because it allows voters to express their preferences in a more complete way than if they could only vote for one candidate. And when you can only vote for one candidate, then you might be reasonably worried about the dreaded spoiler effect.

As a Drupal developer, I naturally wondered what tools might exist in Drupal to help with group decision-making. Thankfully, the Decisions Drupal module allows for several different types of advanced voting methods. Let’s do a quick overview of the options.

Simple Plurality

The most common voting method is Simple Plurality, where each voter gets to make one choice, and the candidate with the most votes wins. This system has a major problem, which is the spoiler effect. You know how this goes: “I really like Candidate A, but maybe I should vote for Candidate B who has a better chance of winning, and I might have to move to Canada if Candidate C wins the election.” A voting system that encourages you to vote against your favorite candidate is clearly problematic.
For example, let’s say there are three purely hypothetical candidates on the ballot:

1. Ralph Nader
2. Al Gore
3. George W. Bush

And let’s say the voting population breaks down like this:

2 Nader supporters
3 Gore supporters
4 Bush supporters

It seems pretty intuitive that Gore is the best compromise candidate for these voters. He’s the 1st choice for 1/3 of the voting population, he’s everyone else’s 2nd choice, and he’s nobody’s last choice. But with Simple Plurality voting, we ignore everything but the voters’ 1st choices, and we don’t require a majority winner. Bush would win the election with 4 out of 9 votes. You know, hypothetically.

This is why advanced voting systems matter. If voters can express their preferences in a more complete way, instead of only being able to select one candidate, then we can prevent the spoiler effect from happening.


Approval Voting is a system where voters can give a yes or no vote for each candidate on the ballot. The winner is the candidate with the most approval votes. So if you like 2 out of 3 candidates, then you vote for 2 out of 3 candidates.


Ranked Choice – Instant-Runoff

In Ranked Choice Voting, voters can select candidates in order, by ranking their choices as first, second, third, etc. One type of Ranked Choice Voting is Instant-Runoff. The idea is that when votes are being counted, you gradually drop out the candidates with the least votes until there is one candidate with a majority of votes. If your first candidate is dropped out because of too few votes, then your ballot goes to your second choice.


This is the system that Oakland will use, and it addresses the spoiler effect well. You can vote for multiple candidates in the order you prefer, and don’t have to worry that you might accidentally help elect your least favorite candidate.

Ranked Choice – Borda Count

Another type of Ranked Choice Voting is Borda Count, where a certain number of points are awarded to the candidates based on voters’ ranking preferences. It’s yet another way to avoid the spoiler effect by being able to vote for multiple candidates.

Ranked Choice
– Condorcet

You can also do Condorcet style Ranked Choice Voting. The main point here is that the winner is determined by seeing which candidate performs best in heads-up matchups against the other candidates.


Using our hypothetical example, Simple Plurality would be the only voting system that fails to identify Gore as the best compromise candidate for this voting population. But if we use the Decisions Drupal module, then we don’t have this problem because of all the advanced voting options, which makes it an awesome tool for group decision-making. So if you believe in the power of democracy, then believe in the power of Decisions module!

2017-03-31T06:20:11+00:00 Categories: Drupal|

About the Author: