Vote Counting At The Apache Member’s Meeting!

The ASF is holding it’s annual Member’s meeting now, where Members get to elect a new board as well as elect new individual Members to the Foundation.  We do this by holding a live IRC meeting on a Tuesday, then we vote with secure email ballots asynchronously during the recess, then reconvene on Thursday to announce results.  But how does the meeting really work?

TL;DR: It’s all explained in the README.txt file that was emailed to every Member.  And if anyone else wants to read all the details of how we tabulate votes, it’s all documented!

But I hear you cry: yes, but what does STV mean?

When voting for the board using single transferable votes (STV) the order of your votes is crazy important.  OK, very important.  But you really want to think about the order, especially who you place in the first two votes (at the top of the Apache STeVe voting target).

STV allows you to vote for all the people you’d like to see on the board, and express your preference for who you’d like to see the most, who else you might like, and so on.  It also allows you to leave off candidates you do not want to vote for.   STV does this by counting everyone’s votes for all candidates in several (many, sometimes) rounds of comparisons, that starts at everyone’s first place vote, and only looks at second, third, and so on votes if needed.

This video on STV does a good job of explaining how votes are reallocated in each round.  What’s important to remember is that every voter has expressed a list of candidates in priority order: first choice, second choice, etc.  Some voters only vote for a single candidate; many voters vote for up to 9 candidates (how many seats on the board).  Rarely a voter will vote for more than 9 candidates if they like more people for the board.

STV Goes Round And Round

STV collects everyone’s first place vote and then sees if any candidate(s) clearly have enough first place votes (only) to win in the first round.  If there are 9 seats, any candidate that wins over 11% threshold (100/9) of the vote just from first place votes is elected immediately.  In most elections I’ve seen, that ends up selecting one, two, or sometimes three candidates in the first round.  STV continues counting votes in a several rounds until all seats are filled.

STV saves how many votes are allocated to each other candidate in the first round – winners and not-yet-winners. Importantly, it then re-allocates any extra votes over the 11% for those winning candidates to other candidates – by checking for what the second place choice was for each voter who’s first place vote was for the winning candidate. It then re-allocates a proportion of those votes to whoever voters chose in their second place votes.  This adds more votes to many of the not-yet-winners, which get carried forward to the next round.


STV also eliminates a candidate who has the least number of first-place votes.  In the video example (and many real-life cases), this is a candidate who clearly does not have enough strong support from voters to get a seat.  All the votes from this now-losing candidate are also re-allocated proportionally to whoever those voters had chosen in second place.

STV then starts a new round after reallocating those votes.  Any remaining candidates now who have more than the 11% threshold are elected.  Any extra votes over the 11% are then reallocated to other candidates by going to the next preference choice of those voters votes.  Any obvious lowest vote counted candidate is also eliminated, and votes are redistributed.

STV continues rounds like this until all seats are filled with candidates.  Note that the above description is general; the specific STV algorithm (Meek’s) in the code determines exactly how the reallocations and rounds work.  Some elections take dozens of rounds to fully decide the last few seats.

Oversight And The Code

The ASF uses the Apache STeVe project’s code to run our own elections.  A set of volunteer vote monitors prepare the ballot issues and data for the STeVe website tool ahead of time.  All votes are strongly tied to a specific Apache member’s ID by logging into the secure voting server.  Every vote also results in an email to the owner of that vote ID (but not including the vote itself).  Voters can vote on any issue (the board election, or new member elections); all votes are recorded securely, but only the last timestamped vote is counted.

All votes and changes to the running voter server are logged and emailed to all vote monitors, so there is proper oversight.  Various signatures on the data in the voter system make sure that if any underlying data is tampered with directly, that the software recording the votes will note the error and any of the monitors will be able to see that.  Vote monitors are not able to see who voted for what – merely that each vote came from a valid voter ID.

Thanks to a few volunteers who have stepped up to improve the Apache STeVe voting tool and it’s web interface, our annual meeting voting is simple for the many Members who are eligible to vote for the board.  And compared to the early years of the ASF – where we used paper ballots! – this is much simpler!

We also elect a set of nominated member candidates at each meeting; new member candidates use a simple Yes/No/Abstain method within Apache STeVe as well.

Note that director election results are published shortly after the meeting since once the election is done, we have a new board!  New member elections are not announced until 30 days after the meeting, which gives us time to invite the new members privately, and confirms that they accept and will sign the membership application.

What Happens Next?

The monthly board meetings continue on the usual cycle.  Traditionally, the new board will work together for a couple of months before making any changes to executive officer appointments or other policies.  Depending on the volunteers willing to step up, in some years we have left all executive officers as-is; in a few years, the board has made a number of changes – usually, when the existing volunteers in those roles have asked to be replaced, often due to needing their volunteer time back for the rest of life.

In any case, all Members are still able to read and contribute to governance within the ASF if they wish to step up and help!

Published by


Briefly, Shane is: a father and husband, a friend, a geek, a Member, officer, and director of the ASF, a baker, an ex-Loti, a BMW driver, a punny guy, a gamer, and lifelong resident within the 495 belt. Oh, and we have cats.

What do you think?