Version 1/6 - Next ยป - Current version
Panagiotis Louridas, 05/07/2010 03:30 pm

Calculation of Voting Power

This is a project hosting software for calculating the voting power of voters with weighted votes in an assembly.

The software is open source and released under the terms of the BSD license.


A common error is the assumption that, in weighted voting, the power of a voter is their voting weight. In reality, although the weight of a voter is important, we must take into account the weights of the other voters, as well as the decision making rule, in order to arrive at a conclusion about the actual voting power each participant in the vote has.

The term voting power refers to an index that captures the power of a voter to influence the outcome of a voting process. There have been several definitions of voting power in the literature, although they remained outside the discussions of mainstream politics until late in the 20th century; what's more, definitions of voting power were proposed, forgotten, and reinvented during the years. Perhaps the most intuitive definition is the one given by Lionel Sharples Penrose in 1946; according to this definition, the voting power of a voter is the probability that they can swing the vote. This is known as the Penrose index or the Penrose Banzhaf index, after John Francis Banzhaf III who reinvented the index in 1965.

The index is as follows:
  • Suppose we have n voters, each with a specified weight.
  • The voters are free to vote as they please.
  • All votes are yes or no.
  • There is a rule that decides when a vote passes; it may be 50% of the weights of the proponents (simple majority), or some other figure; in addition, it may require that a number of voters also support (a given quorum).
  • A voter is critical in a vote if without them the vote does not pass, but with them it passes. That is, the vote must be a swing vote, decided by the voter.
  • Count the number of critical votes for a voter.
  • Take all possible partitions of voters in yes and no camps.
  • Divide the number of critical votes for a voter by the number of all possible voter partitions.
  • The result is the probability that the voter can swing a vote.

The above definition does not lead to a practical procedure for non-toy problems, as suffers from combinatorial explosion regarding the enumeration of swings and the partitions; hence, one has to find an alternative method to calculate it for many real-world assemblies.

The Software

The software consists of a single Perl script that calculates the Penrose index