Condorcet's Method and Instant Runoff Voting are a bit more complicated than simply adding up the marks on each ballot. The procedures outlined below should make them manageable. Feedback and tips to share are welcome.
Counting should be tallied in a table such as this:
> | over choice lower ranked | ||||
A | B | C | D | ||
---|---|---|---|---|---|
choice higher ranked |
A | | | |||
B | ||| | ||||
C | |||||
D |
In the (incomplete) table above there has been one ballot which ranked A higher than B and three ballots which ranked B higher than A. (The diagonal should always be blank, as no choice should be considered to be higher ranked than itself.)
The table should record for each ballot all combinations of ranking comparisons. An example ballot:
A | 2 |
---|---|
B | 3 |
C | 1 |
D | 5 |
E | 4 |
The ballot above contains the following relations that should recorded in a Condorcet tally table:
A>B A>D A>E B>D B>E C>A C>B C>D C>E E>D
Like this:
> | over choice lower ranked | |||||
A | B | C | D | E | ||
---|---|---|---|---|---|---|
choice higher ranked |
A | | | | | | | ||
B | | | | | ||||
C | | | | | | | | | ||
D | ||||||
E | | |
Ballot counting can be distributed and many tables combined by adding corresponding entries in the table. Once all of the ballots have been counted and one table contains the results then the winner can be calculated. If more ballots count toward "A > B" than "B > A" then A is considered to have "defeated" B. Based on the table, count the "defeats" for each choice. If one choice has fewer defeats than any other (ideally zero) then that choice is the winner. If there is a cycle in the defeats such as "A defeats B defeats C defeats A" then break the cycle at the weakest link. The links are compared based on the votes for each choice over the choice it defeats such as a table corresponds to "A > B" votes.
Example 1, simple winner:
> | over choice lower ranked | ||||
A | B | C | D | ||
---|---|---|---|---|---|
choice higher ranked |
A | 3 | 5 | 5 | |
B | 4 | 5 | 5 | ||
C | 3 | 3 | 5 | ||
D | 3 | 3 | 3 |
Defeats:
A | 1 |
---|---|
B | 0 |
C | 2 |
D | 3 |
Winner: B
Example 2, cycle resolution:
> | over choice lower ranked | ||||
A | B | C | D | ||
---|---|---|---|---|---|
choice higher ranked |
A | 7 | 4 | 10 | |
B | 3 | 7 | 10 | ||
C | 6 | 3 | 10 | ||
D | 0 | 0 | 0 |
Defeats:
A | 1 |
---|---|
B | 1 |
C | 1 |
D | 3 |
"A > B" = 7, "B > C" = 7, "C > A" = 6. "C > A" is the weak link. Widthdrawing that, A defeats B, B defeats C, but A is now undefeated and is the winner.
I generally recommend against using Instant Runoff Voting, but if you insist, here's how to do it...
At worst this should require the equivalent of counting all of the ballots less than twice. If a ballot has not ranked all of the choices and all of the choices ranked on the ballot have been ranked out, set the ballot aside, it will end up not counting toward any choice.
These should be a pretty simple matter of accounting style math, adding up a bunch of numbers.
I don't think there's a good way to do this without a computer. It's somewhat math intensive. I wouldn't want to do it by hand for more than ten voters.