What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 138 Stack Exchange communities.

The election pages' sidebars state that Stack Exchange elections use the Meek STV vote-counting method:

After m days, the final voting results will be freely downloadable from this page forever, and we will calculate the n winners using OpenSTV with the Meek STV method.

How does that work? I suspect that Meek STV is unfamiliar to most Stack Exchange users, with experience from previous SE elections notwithstanding. After reading the linked description of Meek STV twice, as well as some other descriptions of the Meek method, I finally understand it... I think. Kinda. Sorta. Can someone provide a layman's explanation?

share|improve this question
openstv.org/votingmethods/basicstv and the related pages seem to be worth a read –  balpha Feb 2 '11 at 16:04
The ice caps will completely melt before I can understand how this system works! –  Trufa Feb 2 '11 at 16:21
Do I get a badge for the first use of the word psephology, here and on chat? :) chat.meta.stackoverflow.com/transcript/89?m=485684#485684 –  Benjol Feb 2 '11 at 17:10
Why isn't it just "the 3 guys with the most votes"?? Since when is that not accurate? lol –  Jhawins Feb 26 '14 at 16:40
Because you dont just vote for one person @Jhawins You vote for 1st second and 3rd choice. –  qwertynl Feb 26 '14 at 16:41
Oh yeah. Well, I still don't see how it can be this complicated. But whatever. –  Jhawins Feb 26 '14 at 16:48
404 on link @balpha –  digitalextremist Feb 28 '14 at 7:42

3 Answers 3

Meek's method of STV is an iterative process that approaches the will of the people asymptotically.

TL;DR Your vote, valued at 1.00 vote, is applied to your candidates in the order you rank them. Each candidate only uses as much of your vote as needed to become elected (shared equitably between all who voted for that candidate). The fractional remainder of your vote is then passed down your list to your next choice, in the order of preference. If a candidate is considered out of the race, you get that part of your vote back to apply further down your list.

For a more detailed example, assume:

  • 24 people voting
  • 6 candidates
  • 3 open seats

Thus, 6 is the vote "quota"¹ for becoming elected (24 votes ÷ (3 seats + 1)).

To cast their ballot, each voter chooses who should receive their vote by selecting a first choice, second choice, and a third choice candidate.

At the beginning of the counting process, every vote is fully applied to the first choice candidate. So now the question is asked: "Did any candidate receive more votes than the quota?":

  • Yes. If a candidate receives more than the 6 vote quota, the "excess" (which is the number of votes over the quota for that candidate) is redistributed to those votes' next choices.

    If Candidate A has received 10 votes when the threshold is 6, then only 6/10 of each vote is needed to elect Candidate A. Therefore the remaining fraction (4/10) of each of those votes is transferred to each votes' next choice down the list of candidates on that ballot.


  • No. If no candidate's status changed to be above the quota, the candidate with the least number of votes is removed from the race. Those votes are then transferred to count fully toward their next choice down the ballot.

Once the votes are transferred at the end of the current iteration, the quota is recomputed (I believe this is to remove the partial votes for candidates that are out of the running), and the same question is asked again. This is repeated until there are only three candidates left in the running and each has votes at (or "near" for small values of near) the quota value.

If all candidate choices on a ballot are eliminated, that vote no longer has an impact on the outcome.

If a candidate has votes above the quota, votes are transferred (at the end of option 1.) before determining if a candidate should be eliminated. That's why choosing a popular candidate as your first choice isn't "throwing your vote away" under this method.

¹ The quota can actually vary as the process iterates. See the wiki article for the formula which is actually recomputed at each step.

share|improve this answer
Ah, I didn't get a "new answers have been posted" banner when this was posted. Good work. –  Pops Feb 2 '11 at 18:45
Voting for a candidate who you think is going to lose also isn't throwing your vote either - because 100% of it will transfer to the next candidate. Tactical voting is less relevant and less effective. And the iterative nature of this algorithm does away with the problem that occurs in other methods when two elected candidates transfer votes to each other (thus putting them both above the quota again, and meaning voters would have spent too large a proportion of their vote on them). –  DMA57361 Feb 2 '11 at 18:46
Finally, a system that actually makes sense! –  The Guy with The Hat Jan 31 '14 at 21:10
up vote 66 down vote accepted

Here's the so-über-short-it's-almost-misleading version:
Meek STV does calculations in rounds (or "iteratively," for you programmer types). In the first round, all votes count for the candidate marked as the first choice. The system figures out how many votes are needed to win. If anyone gets that many votes, he wins, and any "extra" votes he got are handed out to the voters' second choices. If nobody wins, the weakest candidate gets cut and all votes he received go to the voters' second choices. Then the next round starts. Rounds keep going until enough people have been elected.

As you might guess from the name "Single Transferable Vote," every voter gets one vote. But that doesn't make sense; you get to vote for three people in the election, right? Don't be fooled! In Meek STV, every voter's one vote might be split up into fractional bits and divided amongst the candidates or even thrown away. More on this later.

As with any voting system, there exists some threshold for victory, and any candidate who reaches the threshold is considered "elected." Meek STV calculates this threshold ahead of time. If a candidate gets more than enough votes to be elected, the difference between the votes received and the threshold is the "surplus." The candidate keeps just enough of everyone's vote to stay above the threshold; the rest is given to the voters' next-most-preferred choices in "redistribution."

Wait, what?

Example time. Let's say that 100 voters select candidate A as their first choice. Let's also say that the threshold is 25. At the end of the first round, candidate A is considered elected. Since the threshold is 25, candidate A only keeps 25/100, or a quarter, of the votes he got. But this doesn't mean that 75 of the people who voted for him transfer their votes to their second choice!

Instead, candidate A keeps one fourth of every one of those hundred votes he got. Then, all 100 voters get to transfer the remaining three quarters of their votes to their second-choice candidates.

In short: when someone you vote for gets elected, you lose a fractional bit of your vote based on the threshold and the total number of votes the candidate got.

Okay. But what if there are no surpluses to redistribute at the end of a given round? In that case, whoever has the lowest number of votes — let's call him candidate Z — gets thrown out of the election as if he had never participated in the first place. Whatever votes Z did accumulate get redistributed to the voters' next-most-preferred candidate, and they're worth just as much as they were when they were assigned to Z.

In short: when nobody gets elected and your vote is counting for the weakest candidate, your vote gets transferred to the next candidate on your priority list.

Finally, what happens when a vote is already on a voter's third choice, and it's time for redistribution? The remaining portion of that vote just gets thrown away, not counted towards any candidate. Any slivers of votes that get thrown away are still useful for one thing: they count towards "excess" in the threshold calculation.

In short: when everyone you voted for has either been elected or eliminated, any fraction of your vote that hasn't been used yet gets thrown away.

Note that, after any given redistribution, an already-elected candidate may exceed the threshold again; the algorithm re-redistributes votes to account for this.

Warning: optional math ahead that explains where your vote goes

The ratio of the threshold to the total number of votes a candidate gets is called the candidate's weight, or w. In the example above, wa is 25/100, or 1/4.

Say that your first choice was candidate A, your second choice was candidate B and your third choice was candidate C. Here's where your vote goes, assuming nobody you vote for gets eliminated:

A: wa
B: (1 - wa) wb
C: (1 - wa) (1 - wb) wc
excess: (1 - wa) (1 - wb) (1 - wc)

What if B got eliminated? Here's the adjusted breakdown:

A: wa
B: 0
C: (1 - wa) wc
excess: (1 - wa) (1 - wc)

(This concludes the math.)

Alright, so how is that threshold calculated, anyways? It's a lot harder than it is in older STV methods; actually, it's the reason the algorithm requires a computer. Meek STV is the only method to change quota mid-process. The quota generated at the start of every round by this expression:

 total number of voters - excess
       available seats + 1

Note that total number of voters and available seats are constant, so the threshold is only affected by excess once tabulation begins.

Partial list of sources:

Wikipedia on Wright STV
Wikipedia on Meek STV
An article from The Computer Journal describing Meek STV (PDF)

share|improve this answer
nice! That pdf link is awesome! as I'm a math head :). –  yhw42 Feb 2 '11 at 18:54
btw: that PDF link breaks at the $ –  yhw42 Feb 2 '11 at 18:54
@yhw, yeah, I originally tried to make the text a link, but the system wouldn't recognize it. $ is not in the list of illegal characters, so I'm saying it's Markdown's fault until proven otherwise. I've edited to de-linkify the whole thing. –  Pops Feb 2 '11 at 18:59
Please define excess in the last paragraph. –  Erwin Brandstetter Nov 14 '11 at 21:46
excess is the votes that are thrown away (e.g. where all 3 candidates on the wishlist are eliminated) –  Johannes Kuhn Mar 12 '13 at 21:25

They used jQuery. to count the votes Duh.


Docs: http://api.jquery.com/determineElectionResults/

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .