User Tools

Site Tools


Hare Voting Procedure

The Hare System of Proportional Representation is a procedural description of the Single Transferable Vote (STV) preferential voting system. It is “preferential” in the sense that voters rank the order of their chosen candidates (using, say, numbers 1-5), rather than using an unranked mark (e.g., one or more “X”s). A common application is in the selection of committees, in which multiple winners must be chosen from a set of available candidates.

(Note: The quota calculation described in this document and used in the associated software is actually based on the Droop Quota, not the Hare Quota. The term Hare is retained here as the common name for Single Transferable Vote despite this inaccurate characterization.)


I have written a simple web-based program to determine winners in a Hare vote. The input is a comma-separated value (CSV) file, typically generated from a spreadsheet. The first cell is the number of winners to be chosen. In the left column are the candidates; each subsequent column represents a ballot, with numbers giving the preferred rank for that candidate (with 1 being highest). See example below, with candidates A-E and ballots B1-B7. The CSV file input format is very rigid: no blanks are allowed in names or in the comma-separated rows of votes, for example.

Sample Input (without comma separation)

Because STV systems use randomization to redistribute excess ballots and to eliminate candidates with few votes, different runs can produce different results. The program includes a “Run 500 Times” button that repeats the selection procedure 500 times and summarizes the results.

The program also includes a “Run All Ways” button that maintains a probabilistic analysis at each decision point in the algorithm. The result is to compute probabilities of outcomes, rather than actually counting the outcomes. To manage the potentially explosive growth of possibilities, the program automatically discards outcomes that have a very low probability of contributing to the final result.

Very little input checking is done, although the program will crash and give a (perhaps gibberish) diagnostic for some errors (e.g., using non-numeric ranks). The input lines are split on commas, so names cannot contain commas, even if surrounded by quotes. Please report any errors to me.

Go to the Hare Voting Site

Hare Voting and Computer Science/College of Science

The Hare Voting Procedure is the College of Science procedure to select small, representative groups, e.g., committees, boards, and councils. The procedure is designed to prevent a single voting block from electing all candidates.

The procedure used by the College of Science is described in this document, starting at page 35. The procedure implemented above does not follow the CoS procedure in the following case: If there is a tie for weakest candidate, the CoS procedure chooses the candidate who had fewer votes in the previous round, if one exists; otherwise, a candidate is chosen at random. The procedure implemented here always chooses a candidate at random from among those tied for last place, regardless of the status during the previous round. (This procedure is consistent with the University of Chicago rules.)

How to Cast a Hare Ballot

Voters are given a list of candidates (a ballot), which they rank in order of preference: c1, c2, c3, …, etc. While it may appear that voters are selecting multiple individuals to fill the positions on the committee, they are not: Each voter's ballot will ultimately be cast for only one candidate. The Hare Procedure moves ballots among candidates following rules that are intended to reflect the preferences of the voters. The process stops when all (or nearly all) ballots have been assigned to the most popular candidates, who then make up the committee.

A simple way for the voter to consider the process:

  • My first choice is for candidate c1 to be selected to serve on the committee.
    • But, if c1 is
      • so popular as to not need my vote, or
      • so unpopular as to not stand a chance,
    • then use my ballot to cast a vote for c2 instead.
  • Repeat for all ci.

Hare Process

Initial Step

The first step in the process is to divide the ballots into sets based on the first candidate listed on each ballot.

Selection Step

In order to be selected, a candidate must have a minimum number of votes, called the quota, which is roughly the number of votes cast divided by the number of positions to be filled. More precisely, the College of Science defines the quota to be (votes cast + 1)/(number of positions + 1) rounded up. (As a side note, this quota calculation is actually closer to the “Droop” quota than the “Hare” quota, but we retain the older terminology to apply to the entire Single-Transferable-Vote process.)

while there is a candidate that has the minimum number of votes
  select that candidate
  if the selected candidate has more than the minimum number of votes
    randomly choose excess ballot(s) and move each ballot to the candidate that is the next choice

At this point, no remaining candidate has enough votes to be selected, so low-ranking candidates are eliminated and their ballots reassigned.

Elimination Step

choose a candidate randomly from those with the least number of votes
  redistribute ballot(s) to the next choice candidate(s)

Now, continue with the Selection Step, repeating both steps until all positions are filled.

hare_voting_procedure.txt · Last modified: 2009/02/09 15:07 by jtkorb