Multi Member Elections can be a good way of obtaining proportionality or at least minority representation. Instead of electing one representative for a seat, several are chosen.
Voters each pick one choice and the top choices are chosen to fill the seats. Depending on the number of seats and the distribution of factions this can be very inefficient and force voters to attempt to coordinate their votes. If there are three seats and one faction has more than 2/3 of the support, the large faction needs to offer two choices and make sure their votes are split evenly between the two.
Approval is a better method and is used in a lot of places. Voters mark as many choices as they please, and the seats are filled by the top vote getters. Approval has problems with Bullet Voting and with factions being able to coordinate their vote, such that the largest coordinated faction can take all of the seats. Cumulative Approval gives the voter a fixed number of votes that they can distribute among choices.
X of Y is an improvement of Approval that restricts the number of choices parties can offer and the number of choices a voter can select. Vote for up to X choices, but Y choices will be elected. This method can be used to guarantee minority seats in a body, but will not efficiently allocate those seats. X of Y is tabulated in the same manner as Approval.
Most of the discussion on Multi Member methods focuses on this group.
STV uses a Ranked Ballot.
A quota based on the number of valid ballots is set, usually 1 + ( Ballots ÷ ( Number of Choices + 1 ) ).
The highest choice (plurality) that exceeds the quota is elected. The amount by which the choice exceeded the quota is the Surplus, this is redistributed to the next highest choice on the ballot. This is where the methods diverge, some older methods randomly picks ballots to redistribute, but all modern methods split the ballots.
If no choice reaches the quota, a choice is eliminated and their ballots are redistributed.
The Vote::Count STV template also elects all remaining choices in the event that eliminating a choice would make it impossible to fill all of the seats.
Surplus Transfer methods can generally be explained in an alternate fashion as charging the ballots (as if they were a roll of small coins) for each choice they help elect. Restating STV in this fashion may make it easier to explain.
With Approval, Ranked or Range Ballots each possible outcome of the election can be used to generate scores based on the voter preferences, the outcome generating the highest score is chosen.
Scoring encounters the same weighting issues as Borda Count does.
| Method | Implementation | |:------------- |:-----| | Vote For One | Vote::Count::TopCount | | Approval | Vote::Count::Approval | | X of Y | Vote::Count::Approval | | Cumulative Approval | Unimplemented | | STV methods with Random | won't implement random in Vote::Count | | STV: ERS97 | unimplemented | | STV: Scottish | unimplemented | | STV: Meek | unimplemented | | Scoring | unimplemented |
#FOOTER
BUG TRACKER
https://github.com/brainbuz/Vote-Count/issues
AUTHOR
John Karr (BRAINBUZ) brainbuz@cpan.org
CONTRIBUTORS
Copyright 2019 by John Karr (BRAINBUZ) brainbuz@cpan.org.
LICENSE
This module is released under the GNU Public License Version 3. See license file for details. For more information on this license visit http://fsf.org.
2 POD Errors
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in '÷'. Assuming UTF-8
=cut found outside a pod block. Skipping to next block.
To install Vote::Count, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Vote::Count
CPAN shell
perl -MCPAN -e shell install Vote::Count
For more information on module installation, please visit the detailed CPAN module installation guide.