Wikimedia Foundation elections/Single Transferable Vote

SecurePoll now supports the Single Transferable Vote (STV) method, a ranked voting method that allows voters to specify candidates they want to see elected in order of preference. For SecurePoll, we selected the Meek's implementation with Droop Quota.

A comparison of single-transferable vote (STV) and Meek STV voting methods with examples.

Meek's implementation is the most popular for STV elections and is used by several organizations and governments for their elections. The below example uses a more simplified STV implementation (Scottish STV) in order to explain the general concept. You can find a more accurate description of the exact method followed in the implementation.

Wikimedia elections using STV edit

Example election edit

  • Candidates: Alligator, Bear, Cat, Dog
  • Seats: 2
  • Voters: 7
Votes
Voters Alligator Bear Cat Dog
Voter 1 - 3rd preference 2nd preference 1st preference
Voter 2 4th preference 2nd preference 3rd preference 1st preference
Voter 3 1st preference 3rd preference 4th preference 2nd preference
Voter 4 1st preference 2nd preference 3rd preference 4th preference
Voter 5 3rd preference 1st preference 4th preference 2nd preference
Voter 6 1st preference 2nd preference - -
Voter 7 1st preference 4th preference 2nd preference 3rd preference

Droop quota = floor(total valid votes / (seats + 1)) + 1 = floor(7 / (2 + 1)) + 1 = 3

Round 1 edit

 
See the file in full size to see visually how votes get transferred, counted, and exhausted.
  • Alligator: 4 votes – Elected
  • Bear: 1 vote – Has chance to be Elected
  • Cat: 0 vote – Eliminated Candidate
  • Dog: 2 votes – Has chance to be Elected

For Round 1, we consider every voter's 1st preference votes. Alligator has achieved the Droop quota and is hence declared elected.

Round 2 edit

  • Alligator: Elected
  • Bear: 1 + 0.5 = 1.5 votes
  • Cat: 0 + 0.25 = 0.25 votes – Eliminated
  • Dog: 2 + 0.25 = 2.25 votes

Alligator has 1 surplus vote which will be redistributed according to the voters' second preferences.

Looking at all of Alligator's votes – 2 voters picked Bear second, 1 voter picked Cat second and 1 voter picked Dog second.

Alligator's surplus vote is split proportionately. Bear gets 0.5, Cat gets 0.25 and Dog also gets 0.25 additional vote.

Since no candidate achieves the Droop quota, the candidate with the lowest votes (Cat) will be eliminated and those votes will be transferred proportionately.

Round 3 edit

  • Alligator: Elected
  • Bear: 1 + 0.5 + 0 = 1.5 votes = Second Eliminated Candidate
  • Cat: Eliminated
  • Dog: 2 + 0.25 + 0.25 = 2.5 votes

Cat got the lowest votes and was thus eliminated. Since Voter 7 has Dog as their 3rd choice after Alligator (already elected) and Cat (already eliminated), all of Cat's vote transfers to Dog.

Nobody reaches the Droop quota so once again the candidate with the lowest votes will be eliminated. Hence, Bear is eliminated.

Round 4 edit

  • Alligator: Elected
  • Bear: Eliminated
  • Cat: Eliminated
  • Dog: 2 + 0.25 + 0.25 + 1.5 = 3.75 votes – Second Elected Candidate

Bear received the lowest votes and was thus eliminated. Since voters 4 and 5 have Dog after Bear in their vote profile, a fraction of their votes get transferred to Dog, but since Voter 6 has not specified any candidates other than Alligator and Bear (already elected or eliminated), a quarter of their vote gets exhausted.

Dog reaches 3.75 votes which is above the threshold, thus declared elected.

Result edit

In conclusion, we have two elected candidates and two candidates who are eliminated:

  • Elected candidates: Alligator and Dog
  • Eliminated: Bear and Cat

Things to note edit

  • If no candidate achieves the Droop quota in a round, the candidate with the lowest votes is eliminated and their votes are re-distributed among remaining candidates in accordance with the voter's ranked preferences.
  • If two or more candidates tie for elimination in the final round with one seat remaining, the software allows the election admins or election committee to make a judgement call on how to break the tie.
  • Note that the above is a simplified example. In an actual calculation, the Droop quota is recalculated at each round.
  • If two or more candidates tie for elimination in one of the intermediate rounds, we follow the "Short-cut exclusion rule" as outlined in this paper. This rule allows us to eliminate candidates when it is mathematically guaranteed that they can never win. This will happen when the candidate's votes don't exceed the votes by the next-best candidate even when they are assigned all the outstanding surplus votes. This seems a fairer method to decide eliminations as compared to randomly eliminating a candidate in the event of a tie. An example with a bigger election. Note that OpaVote/OpenSTV uses pseudo-random eliminations when it comes to ties. Hence their results may differ from ours in the event of a tie.
  • If a voter is already logged in to votewiki, they might see an error when they attempt to vote by going to the voting server from their home wiki. This can be fixed by going back to the home wiki and trying again. This is a known bug we are working on fixing.
  • Note: During the tally process numbers with high precision may not be accurately presented on the tally page. We are using PHP in the backend which supports extremely high precision. This is not easy to represent in the interface. However, this may impact eliminations/elections without the process being obvious to the end user. For example, if Candidate A has 86.00000000003 votes in a round and Candidate B has 86.0000000004 in a round, they both may be presented as having "86" votes but Candidate A will be eliminated as they have lesser votes than candidate B when the complete number is compared.