How should voting work for electing the "At Large" board members of the Drupal Association?

kattekrab's picture

As a result of the call to discuss the DA board elections resulting from this thread:, we agreed to post a couple of specific follow up threads on topics that needed further resolution, so I'm posting on behalf of those who were on the call (FTR the call's etherpad is here:

The relevant section of the DA Board Election wiki post calling for input and suggestions has been pasted below for convenience.

This new discussion thread is to tease out the issues, ideas, and concerns specifically about the Voting System and attempt to build consensus towards a decision.

Should we use a IRV or FPTP voting system for electing 2 "At Large" members of the board?
* (IRV)
* (FPTP)

How should voting work?

Then, finally, on the voting process itself. Here's some ideas, but we welcome others as well.

Criteria for evaluating options

  • Input is maximized from voters--the more voters whose preferences are considered, the better.
  • The vote outcome is clear and unambiguous.
  • The electoral system is comprehensible to those participating in the elections.
  • There are available solutions (Drupal modules) to provide the solutions.
  • The voting system can identify additional runner up candidates, in case this is needed if elected candidates are declined by the board.

First past the post (FPTP) / Winner takes all (WTA) / Plurality

Every qualified voter gets up to two votes of equal weight. They are not permitted to cast more than one vote for a single candidate. The two candidates with the most votes (simple majority) are elected.

For more information on this voting system see


*No need to sift through votes and perform calculations on first vs. second choices or similar voting mechanisms, a simple, anonymized count would be sufficient.
* Everyone universally understands how this works


  • A candidate with the MOST votes doesn't necessarily represent the MAJORITY of voters.
  • People tend to vote for candidates most likely to win to prevent wasting their vote.
  • FPTP is a widely criticised voting system.

Instant Run Off Vote / Preferential Vote or Alternative Vote

Voters rank all candidates in order of preference. The candidate with the least number of votes is eliminated, and the 2nd preference of those votes is transferred to the other candidates, and so on, until one candidate receives an absolute majority - or 50% +1 of all votes.
For more information on this voting system see


  • Ensures the outcome is more representative of the will of more voters.


  • It is more complex to calculate the outcome (Note: Decisions module has implemented an instant run off algorithm)


advanced poll

cafuego's picture has implemented it too, as a 'ranking poll'.

So... what is this crazy voting system?

kattekrab's picture

A few people have told me they just don't get this crazy voting system I'm advocating for here....

So let's find some infographics and videos that help explain it.

Here's my first google hit - it's a good one!

If you find some more, please reply to this and post links - I'll gather em'up and put the best in the wiki post.

Donna Benjamin
Board Member Drupal Association

another video...

kattekrab's picture

Another good one used to promote the Alternative Vote

Donna Benjamin
Board Member Drupal Association

Preferential +1

arianek's picture

I'm a huge +1 for preferential voting rather than first past the post. Especially with a large group of candidates, FPTP is really not going to lead to a good representation of voter opinions, whereas preferential would allow your vote to count even if your first choice doesn't win.

If it's technically possible, I see no reason not to do a preferential vote.

Of the resources Donna turned

webchick's picture

Of the resources Donna turned up to better explain IRV, I found to be the most clear and concise. was the most fun. ;)

The Cliff's Notes version is that it helps to avoid two situations:

  1. We get some amazing number of candidates, but thanks to the voting spread among them, the two people who end up getting elected have some ridiculously low percentage of the majority—like 10-30%. That means 70-90% of voters were not in favour of those candidates, so is not representative of the community's will.

  2. There are only a handful of "real" contenders for the nominations, a couple of whom seem to have more popular support than others. You feel really strongly about Young Upstart Candidate, but because you are really worried about Out Of Touch Old Fart Candidate getting in, you end up voting for Meh Boring Safe Candidate instead.

Instead, you rank things by choice 1, choice 2, choice 3... and then as votes are tabulated, if your first choice is eliminated, it'll allocate your vote to your second choice candidate instead, and so on until someone ends up with a majority.

I've only had a couple of "real life" experiences with IRV, one with the rename of the group, and the other with a client gig where we used IRV to decide on features to implement. In both cases, no one really felt "great" about the end results, but they did feel like they could live with them (which was actually something considering the debates leading up to the vote :)). I'm not sure if my experiences are typical or atypical of IRV, though. But it seems a reasonable way of preventing a situation where two candidates with like 25% of the collective vote from representing "the community" when the majority of the community didn't vote for them.


Crell's picture

Also consider that we're looking to fill two seats, not just one. For that, IRV is even more better-suited than "first two past the post".

IRV +1

tvn's picture

After reading wikis of both voting systems Instant Run Off Vote indeed seems more fair. +1 to it. I am interested to see how it will work out.

My experience with

Kjartan's picture

My experience with organizations is that it is better if the people chosen to be in leadership positions have the backing of the community. This minimizes problems such as the leaders not feeling they have the proper backing to make the hard choices, and giving the community more buy-in to the process as they voted for the person. Out of the two voting systems IRV seems to ensure that those who have the most backing end up being elected.

The problem with IRV.

micheas's picture

A problem with IRV is that you are casting your second (and later) votes before you know who, if anyone is going to finish above your first choice. If there is someone that you really don't want to see, you start trying to figure out who the front runners are going to be and campaigns start to become "anybody but candidate x" (real world it is how the mayor of oakland was elected, and why many winners start to realize that the votes to recall them are greater than the votes for them. Also candidates tend to start avoiding saying anything that would cost them other candidates number two votes because you don't know which if any of them you are courting.

Condorcet and approval voting both tend to have a more diverse set of winners, (as do true runoff elections) than IRV elections. From personal experience in San Francisco Bay Area politics (where people routinely spend upwards of $100k US to run for unpaid positions and we have IRV in many locales) There are few things worse than IRV, as far as getting a representative group of winners. One of them just happens to be first past the post. The other method of conducting elections that is radically minimizes minority opinions even more IRV is dividing a multi seat election into multiple first past the post elections. meaning everyone votes on Seat A and everyone votes on seat B. That way 50.1% can get a 100% majority leaving the 49% minority unrepresented.

One way of voting that might help the diversity is if the two seats are elected with cumulative voting. This is how most corporations elect there board. In this voting system everyone gets the same number of votes as there are seats up for election, but an individual can cast all their votes for one candidate. This means that 33.4% of the people could cast all their votes for one candidate, and get that person elected, an the other 66.6% of the people could chose the other seat, with no input from the 33.4% that voted for one candidate.

Personally I am a fan of cumulative voting because minority blocks can self organize and push for a seat at the table, and the majority is still well represented.

Also take a step back and listen to the pitch for IRV, you can vote for along shot and it doesn't matter... in other words, fringe candidates are even less relevant than in first past the post elections because you don't have any reason to adopt their positions so they will stop running.

With so much discussion about making sure that everyone has a voice, choosing a voting system that minimizes the impact of minority opinions seems contrary to the overall stated goals of choosing the voting system.

My to pennies. and sorry for making my post on a subject as sure to bring up as much controversy as emacs vs vi.

Condorcet? Cumulative?

kattekrab's picture

Are you saying you prefer FPTP to IRV? ( I don't think you are, but I'm not 100% sure from what you've written above.)

Or are you suggesting a different, better preferential algorithm be used, such as condorcet / cumulative?

Are you aware of an existing Drupal module that implements cumulative voting we could use? Or if there's a way that algorithm could be added to Decisions or Advanced Poll? I believe Condorcet is an option in the Decisions module.

For those who want to know more about these voting system alternatives - see

Some things to keep in mind.
1. We are electing 2 candidates, from one pool of eligible voters
(whether that's Drupal Association Members or Users on is still the subject of debate - see )

  1. This needs to be implemented quickly and easily, in a short time frame.

Original proposals were advocating First Past the Post / Winner Takes All - Consensus appears to have emerged against using this system.

Debate about EVEN BETTER systems than IRV/PV/Alternative - is great! Please continue.

Donna Benjamin
Board Member Drupal Association

I haven't tested it beyond

greggles's picture

I haven't tested it beyond IRV, but Decisions:

Basic polls, Approval Voting, Borda Count, Condorcet (new!), and Instant-Runoff Voting.


Decisions module

kattekrab's picture

Just for playing around with... have installed Decisions module and Advanced Poll here

Donna Benjamin
Board Member Drupal Association

My preference

micheas's picture

My preference is for cumulative voting. (you get the same number of votes as seats up for election but you can cast all your votes for one person or vote for a different candidate with each vote or any combination you want.)

It has a proven track record of electing minority interests and keeping the majority happy.

My opinion about IRV and first past the post is that they are two of the voting systems that most marginalize minority voices. Stating that IRV is not as bad as "first past the post" is not, in my opinion, a really strong recommendation.

What I like about cumulative voting is that in practice it seems to be sort of self correcting, in that when a minority gets upset they tend to be able to make a successful concentrated effort to get a voice, On a corporate board that has 20 elected members and cumulative voting a faction that can get 5% of the vote is guaranteed to win a seat. And this is accomplished without having to define who is a minority. Minorities self define and concentrate their votes on their chosen representative.

Also, cumulative voting is very easy to count. X candidates with the most votes win. (In this case X=2)

That's what was originally

webchick's picture

That's what was originally suggested. Each voter gets two votes, since there are two seats to fill. Whoever gets the most votes gets the seats. But I'm unclear how that's different than FPTP? I guess because you can vote for the same candidate twice?

I'm not a voting systems

webchick's picture

I'm not a voting systems geek. However, if cumulative voting (everyone gets two votes, and has the option of voting for the same person twice) passes Donna's muster in terms of being a fair and equitable voting system, I'd prefer to go that route. It sounds like it accomplishes the goal of proportional representation, AND as an extra added bonus would be dead-easy to implement (just two drop-down fields on a webform, each with the same list of names in it, no extra validation needed. Done.)

Can't say I'm a fan of

kattekrab's picture

Can't say I'm a fan of cumulative voting. But that's mostly because I'm not as familiar with it, and I don't have time right now to research its merits or shortcomings. I'm more familiar with the single transferable vote - and that's great. It's a true proportional system, which is the gold standard. Proportional is best for representation, BUT it also leads to instability - look at Belgium, and it's inability to form govt, because too many small minorities couldn't agree to work together. I really don't think we're going to have that degree of candidacy or division at this stage of our organisation's evolution.

Not to mention something just doesn't feel right about being able to cast your vote twice for the same candidate.

I would lean towards picking a simple preferential system for this election, and one for which we already have the code - in either advanced poll, or decisions... We can then continue working towards something better over the next year, before the next election.

But right now, we need to get a couple of people elected - and fast.

Sorry - I just don't have more time for this right now, which breaks my heart a little... but I'm neck deep in Drupal Downunder which starts in 6.5 hrs - and I really need to go get some sleep. :(

Donna Benjamin
Board Member Drupal Association

Adopted recommendation: IRV

webchick's picture

We've updated the draft proposal at with the recommendation to use IRV. This seems to reflect community consensus at this point in time, though may be something we revisit later.

So, um...

webchick's picture

With IRV, how exactly does it work to elect two candidates..? :)!/astarmain/status/158683974305185793


Crell's picture

IRV works by repeatedly knocking off candidates and redistributing votes until someone has a 50% majority. Instead, you keep knocking off candidates and redistributing votes until there are only 2 candidates remaining.

I've used Advanced Poll in Drupal 5 in exactly that way several times. You just need a human to review the results and the output take it gives you.

Protip: Make certain that whatever your voting module is is setup to not show results to the public when the poll closes. You want a human to review the results first and announce them, just in case something is totally wacky. This is a problem with all of the Drupal 5 voting modules. I don't know if any of the D6 ones are better.

Hm. That seems to go directly

webchick's picture

Hm. That seems to go directly against the demand by the community that the votes be anonymous so that people can safely vote against co-workers, bosses, etc. :\


Crell's picture

Which part? I said multiple things there. :-)

Having IRV stop knocking people off at 2 remaining rather than 1 remaining is easy, and in no way violates the anonymity of votes.

Having the poll not auto-publish results instantaneously when the voting ends also doesn't violate anonymity, and is, I think, an important safety valve check. In my use I've had to do that to help manage ties. (Unlikely here, but still possible. I'm used to a much smaller voting pool so it's more common.) Or you may even want to simply control the messaging, which is still anonymous and not at all evil.

Now, we could announce results in 2 ways:

1) Here's the full order of people, in the order they were knocked off. That means the final two people, in order, are George Washington and Abe Lincoln. Congrats guys!

2) Votes are in. Our two new board members are Abe Lincoln and George Washington (alphabetically). Thanks all!

Option 2 allows for no hurt feelings for whoever was knocked off easily, but IRV's "prevent spoilers" benefits are only realized if people know that the 3rd or 4th person still got lots of votes, and who that was, and where those votes went to when they were eliminated. If the fact that Ralf Nader was a close third (to take the most famous spoiler example) but all his votes then transferred to Al Gore is not public knowledge, then that doesn't encourage anyone to bother voting for the "third party" candidate in the first place. So I think the result of each automatic "round" should be made public, or at the very least the order in which people were eliminated. That lets IRV work the way it's supposed to.

Most of these modules currently do track who votes for whom, but that information is restricted to administrators (how well depending on the module). Totally anonymous online voting is... well, we've been trying to figure out how to do it securely since the 2000 US Presidential election and as far as I know have never figured out a way that is sufficiently secure. Online security entails verifying that someone is who they say they are and that they're only doing what they're allowed to do. Online anonymity entails not being able to verify that someone is who they claim to not be. Resolving those two criteria is an NP-complete problem. :-) I've yet to see it done well, although I admit to not being a real voting geek.

When voting, you can 1) Have votes be public, so people can verify that their vote was counted correctly; 2) Have votes be private, in which they are known only to a handful of trusted people who are charged with detecting and avoiding voter fraud; 3) Have voting be anonymous, and then you need some other mechanism for preventing voter fraud. To my knowledge, #3 has never been successfully achieved over the Internet for anything really important. As I said, though, if someone knows of such a case that has an open source algorithm available, please share.

Simple - run the algorithm twice.

kattekrab's picture

Ok - So I asked my friend, the e-voting expert, for his thoughts on how we might handle this.

His suggestion is this...

We just run the vote data through the IRV algorithm twice.

First time, we get our winner.

2nd time, we exclude that winner's votes, and run the algorithm again, with the winners votes excluded entirely.

Now - I've no idea how we actually go about discarding the votes for the elected candidate when we run the vote the 2nd time, but I'm hoping that's an easier challenge to solve than implementing a proper Single Transferable Vote system (which is how you are meant to do multi-candidate elections) in time for this election...

However - that is totally something we should look at doing for next time.

Donna Benjamin
Board Member Drupal Association

OpenSTV - open source single transferrable vote system

kattekrab's picture

Apparently, we should take a look at this...

Perhaps we could implement the algorithm for inclusion in the decisions module?

I don't know how hard / crazy that is as openSTV is in python. But I've been assured it should not be too difficult to do.

NOT FOR THIS ELECTION - for the next one.

Donna Benjamin
Board Member Drupal Association