Page MenuHomePhabricator

Add support for the Meek STV method in SecurePoll
Closed, DuplicatePublic

Assigned To
Authored By
Oct 29 2015, 11:15 PM
Referenced Files
"Love" token, awarded by 4nn1l2."Like" token, awarded by Abiyoyo."Like" token, awarded by Mardetanha."Mountain of Wealth" token, awarded by Dalba.


The Meek algorithm for counting single transferable votes (STVs) is considered, at least by some, to be the best vote counting algorithm when electing multiple people and simplicity is not important. The algorithm does not seem to be computationally too intensive.

Enabling this in SecurePoll should not be hard; the voting interface is exactly the same as the Schulze method, which is already implemented in SecurePoll. It is only the tallying mechanism that is different.

Please consider adding this to SecurePoll as an option.

Event Timeline

Huji raised the priority of this task from to Needs Triage.
Huji updated the task description. (Show Details)
Huji subscribed.

A bit of a latecomer but I would comment that by some (and this some seems to be more some than the meek supporters* ;-)) the Schulze STV ( is considered pretty useful in the real life scenarios (and usually recommended over other multi-winner systems by geeks).

There are various implementations on the net, I am using a python version from but there are possibly others, too. Since it's a preferential voting system (as well as any STV) this could better reflect to the voters' preference.

* {{anecdotal evicence}}

@Niharika I see lots of great work happening these days that is similar to this in nature (e.g. T282690). One of the most frequent users of SecurePoll is fawiki, and fawiki community has been anticipating a day when SecurePoll would support Meek so that our annual elections would switch to it. Is there any chance this task could also be considered in scope for Anti-Harassment (The Letter Song) or the subsequent sprint?

@Huji We are already working on this. Meek's STV is being added in T283728: Implement STV tallying in STVTallier::finishTally [XL]. :)
I'll close this task as a duplicate. Feel free to reopen if something's amiss. Thanks!