Exact Single Transferable Voting (STV)

December 8, 2007

A few years ago I wrote a program to handle Single Transferable Voting (STV) for my WEB site (http://voting.forkansas.org). The same code is used for the STV as for Instant Runoff Voting (IRV), which is the same as STV except there is only one position to be filled.

In doing this I noticed some discrepancy between the STV as presented, and probably used, and what I was using. The reason for this discrepancy is that STV was developed before computers were available. Therefore, counting the votes required some approximations that are no longer required in the age of computers.

In particular, the threshold for getting elected is taken as the number of voters divided by one more than the number of positions to be filled. This is required because of the high roundoff error required of the hand counting methods, and STV was developed well before computers.

In a computer age, the threshold can be taken as exactly the number of voters divided by the number of positions. Even with a computer, roundoff error could be enough that the final candidate would have enough lost due to roundoff error to prevent him or her from getting elected, but this is not a real problem, since the final position can be handled by the simple heuristic that when the number of candidates not eliminated is less than the number of seats to fill, all are declared elected.

While this is not much of a difference it could make a difference in a close election. Therefore, I will present exact STV in this paper.

User Interface

The most important part of STV is the user interface. This is what the voter sees, and needs to know.

For this STV algorithm, the user interface lists the candidates, and some method of specifying a rank for the candidates. The first pass would have the candidates listed, with a combo box to select the rank for each of the candidates. While it might be assumed that every candidate would have a unique rank, this is not required. In fact, it would be acceptable for the voter to select the same rank for several candidates.

I would use this fact to force the voter to rank all the candidates. That is, the the voter will think of himself or herself as ranking only some of the candidates. All others will be assumed to be ranked at the highest rank.

One possible improvement to the interface (which would make it more complicated for the voter, and therefore may have to be ignored) is the possibility of ranking some candidates as negative. That is, the most desirable candidates could be ranked as one (candidates rather than candidate because the voter may have more than one first choice), the second tier candidates would be ranked with a two, etc. In addition, the least favorable candidates could be ranked as a negative one, etc.

This adds complexity, but I suspect it reflects the voters thought processes better. That is, the voter will see some candidates they like, but will be totally turned off by others.

This would still be one ranking because the ranks presented to the algorithms would be first the positive choices, then the unranked candidates, and lastly the negative candidates. The advantages of the negative candidates is that the voter would need to rank fewer candidates to express their votes. Even without the negative values, the same effect could be achieved by the voter manually ranking all the candidates.

Since it may be possible to hold STV elections with hundreds of candidates, this may save the user a lot of times. I will talk about this in a later portion of this paper.

I suppose the main point here is that the user interface presented could be very creative, and that the user should be allowed to give several candidates the same rank.

Another possibility of using limited STV is the idea of allowing the voters several votes. That is, if N positions are to be filled, and there are M candidates (M > N) to fill the positions, then allow everyone to vote for however many candidates they want in the usual fashion. That means, the candidates voted for are simply checked. Then run STV with all the checked candidates having a rank of one, and all the unchecked candidates as having a rank of two.

Although the user would not see this as different than the voting required for the first past the post method, it would still yield better results.

Evaluating the votes

This is the part of STV that the average person doesn't need to worry about. That is, the user can treat this as a black box, but the person implementing the STV, and the curious voter, would be interested in. In selling STV, this is the part I would leave out.

First, the votes are collected, and each ballot becomes a record. This record contains two parts. First, a number indicating the amount of the vote which has not yet been distributed. Initially, this is one for all votes cast. (For political reasons, it might be desirable to start some people out with different values. In reality, this is what the Electoral College is a first pass at. This is, however, beyond the scope of this paper.) The second part is a listing of the rank for each candidate.

First, the total number of votes is added up. As expressed above, the number of votes may be different than the number of people voting. This total is divided by the number of positions to be filled to give the threshold value.

Then the loop starts.

If the number of candidates remaining is equal to or less than the number of positions to be filled, they are all declared elected, and the voting ends.

The votes for each candidate is added up. That is, for each ballot, the top ranked candidates each get an equal portion of the vote not yet distributed. That is, if the voter selected two candidates that the highest non-zero rank, then each candidate gets half the remaining vote that has not been distributed.

Every candidate having a vote total higher than the threshold is declared elected. The candidates are eliminated from the candidate pool since they have been elected. Each person who voted for these candidates has their undistributed vote decreased by the fraction of their vote required to elect the candidates. For each elected candidate and voter, this would be by the threshold value divided by the number of actual votes for the candidate divided by the number of candidates the ballot had ranked at its top rank. This is required because that is the amount of the vote which was distributed to get the candidate elected, and the remainder of the vote can be used to elect other candidates.

If there are no candidates elected, then the candidates with the fewest number of votes are eliminated. It is possible that more than one person has the minimum number of votes. Therefore, if this would leave fewer candidates than there are positions, some secondary criteria (perhaps random) could be used to eliminate only enough candidates to give the proper number. This is equivalent to a tie vote, and flipping a coin as is done in the first past the post method of voting often enough.

Then the loop is repeated until the proper number of candidates have been elected.

Potential use of STV

I could see the number of candidates in an STV election as being quite large. That is, consider the State legislature. Using STV it would be possible to elect all the members at large, with no districts. Therefore, voters might be presented with all the candidates for the State legislature.

This would not require a difference in the way people running present themselves, since it would be possible for a person to get elected by campaigning only over an area which now constitutes a district. It would also be possible for candidates to get elected by campaigning for a particular minority, which is not currently possible.

That is, one candidate may decide to attempt to get the threshold number of votes by trying to get a majority of the people to vote for him in a particular area. In Kansas, that might be someone who would try to get elected by campaigning in Johnson County only. If the candidate succeeds in doing this, he or she could be elected.

Another candidate might decide that they would represent Indian interest. They might campaigning in any area where the Indian voting population is high, and, by using this strategy, they might be able to collect enough votes to get elected, even though the constituents would not be contiguous by any means. If a candidate succeeded in this, they could also be elected.

In the former case, the candidate would never appear outside of Johnson county, and a person outside the county might never have heard of them. In the later case, a person living in an area where there are no Indians, might never of heard of that candidate, so they would not be ranked. Since in this case the person may choose to campaign only in Indian literature, it is possible that even someone living close by may not have heard of the candidate.

If every candidate thought it necessary campaign State wide, Bill Gates couldn't finance the elections. That shotgun approach would likely not work anyway, because of the candidates who do a much better job of addressing the local voters interests because they would focus on that issues that are important to the local voters.

This approach would totally eliminate Gerrymandering.

Another effect of STV and IRV is to eliminate the need for political parties as any more than a Political Action committee (PAC). The reason is that there would be no advantage to a person professing to belong to any political party except for the positions that this would indicate he supports, or the money the party might be able to pledge to his campaign, as is currently the case with PAC's.




Contact the Author