This page is about how the ASF Membership elects new directors for the Board at the annual meeting. For a higher level perspective, see the Corporate Governance Overview.


The Members of the Apache Software Foundation (nominate and) elect 9 directors to the board for a year's tenure during our Annual Member's Meeting, which is typically held in the spring (northern hemisphere). For a description of how Member's meetings work, and in particular how to use the Voter tool to cast votes for either new members or directors, see MemberVoting.

STV is used for Board Elections

The ASF currently uses Single Transferable Vote (STV) voting when electing our 9 directors each year. STV is designed to help small coherent constituencies elect a director to the board. This vote counting design helps to enable voters to reveal their actual desires and avoid being too clever. Read on for a discussion of how we use STV, including details of how our volunteer vote monitors actually tally up the votes.

The most important thing to remember is: Vote the actual order of your preferences! Every effort is made to get your #1 preference onto the board; #1 votes are notably more important than the rest of your votes. If you vote in alphabetical order (as some seem to have done with past ballots) you're sending a strong signal that you'd prefer a board with names like Mr. Awful and Ms. Beastly - probably not what you intended. Our newer Voter tool randomizes the letters assigned to candidates.

How Are Votes Counted?

The vote counting proceeds in a loop. Occasionally the loop spits out another board member, whenever a board member captures enough ballots to get elected. Ballots begin by being assigned to the #1 candidate indicated on that ballot. As the counting proceeds ballots are reallocated. Sometimes it becomes necessary to admit somebody is not going to get elected; at that point his ballots are reallocated. When a candidate is elected he takes with him only enough ballots to have gotten him elected; his other ballots are sent off the the lower ranked preferences shown on that ballot.

This YouTube video provides a delightful introduction: Politics in the Animal Kingdom: Single Transferable Vote.

This Wikipedia entry explains the gory details: Single Transferable Vote.

This means that you can vote for Mr. Marginal and if he gets enough votes he's in; if not your #2, #3, preference will get used.

This means you can vote for Mr. Wonderful along with everybody else and after he's elected there is a reasonable chance your ballot will live on to help elect a candidate other than your first preference.

Hints on How To Decide Your Vote

This voting architecture is excellent for helping to break up the tendency of elected bodies to settle into one or two power blocks; at it's also helpful for breaking up the power of incumbents to attract strategic voters. Its downside is that you can end up with a board with nine members all of whom were elected by very narrow constituencies to which they are extremely loyal - that can make it hard to reach any consensus.

How Do We Use the Apache Steve Voter Tool?

UPDATE: Many members find the new web-based voting form to be convenient. Just follow the https://vote.a.o link you will receive in the email you get from the voting tool, where you will login with your browser and can cast your vote from a simple web form (which eliminates the need for any of the command line stuff below).

When time comes for a vote, emails are sent to each of the voters using your main email address as listed in members.txt. Actual votes are submitted from your account using a command line tool. That tool takes a token that was provided with the email. You may vote more than once with the same token, but only the last vote counts. Using a command line tools allows us to leverage ssh authentication. You must be able to check your email (the address in members.txt) and to ssh into sometime during the 42 hour meeting recess to be able to cast your votes (or, assign a proxy).

For details on how to automate your votes, please see MemberVoting, which suggests the command line to use. Note that new Member votes do not use STV; they work on majorities (you vote Yes/No/Abstain).

How Do We Tally Results?

Election results are calculated using Meek's Method for STV. The code used is now in it's own Apache project: Apache Steve so everyone can review and help improve the code both for the STV calculations as well as for the secure email and web balloting.

In any case, as mentioned above, the ASF uses Meek's method with the following parameters:

   Precision: 6
   Threshold:  Droop | Dynamic | Fractional

Under the voter/monitoring directory, there is a support script called which takes the Final Tally email, as sent by the voter tool, and outputs data in the format required by either VoteMain or OpenSTV. For OpenSTV, the script generates standard BLT format data, so any STV tool which implements Meek's and reads BLT could theoretically be used. The help output of the script is:
   Usage: [-h] [-b] [-o filename] inputfile(s)
    -h: Usage info (help)
    -b: Generate BLT STV data format file
    -o <filename> : Output file (default stdout)

We also have a completely self-contained script that takes the raw ballots tally and returns the results for a 9 seat board: -h
   Usage: [-v] RAW_VOTES_FILE
    -v: verbose mode

In both cases, the scripts depend on a board_nominations.ini file located in the same directory as the input file to provide the mapping of labels and names. e.g.:

a: Spock
b: Kirk
c: Scott
d: McCoy

What Is A Sample Board Ballot?

The following is what is sent out to voters in the board ballot:

Board elections are performed via Single Transferable Vote (STV). Each voter lists all the people they want to see elected in order of preference. Excess votes for people who have already reached their quota (i.e., enough votes to ensure election) and also for the candidate with the least votes are redistributed to lower-numbered choices. This process is repeated until the required number are elected. Please see:

The key idea to keep in mind is that the ordering of your votes is crucial. Those who you *really* want to be elected should be at the beginning/start of the list. For example:

means that you really want Aragorn to be elected (he's your primary preferred person), followed by Frodo (you want Frodo on the board more than you want Bilbo, Sam and Sauron, but not as much as you want Aragorn), followed by Bilbo, etc...

What is Strategic Voting?

Strategic voting is the name for votes that don't reveal your actual preference. You vote strategically in a clever attempt to get the maximum benefit out of your vote. For example say Mr. Wonderful, Mr. Ok, and Mr. Evil are running. Of course you prefer Mr. Wonderful, but polls show that Mr. Ok and Mr. Evil are running neck and neck. So, you cast a strategic vote for Mr. Ok. Tragically if all of Mr. Wonderful's fans are acting strategically he doesn't stand a chance.

Our STV Voter tool counting technique lets you safely reveal your actual preferences; the vote counting mechanism then acts strategically for you.

You vote in order of your preference. Mr. Wonderful and then Mr. Ok, and finally you might omit Mr. Evil entirely. The vote counting mechanism will elect Mr. Wonderful if it can, and if not it will reallocate your vote to Mr. Ok.

Also see MemberVoting

BoardVoting (last edited 2017-03-08 13:53:25 by ShaneCurcuru)