PAD voting: Difference between revisions

From electowiki
Content added Content deleted
imported>Homunq
(summable/nonsummable)
imported>Homunq
(PAD)
Line 1: Line 1:
PODA voting (proportional optionally-delegated approval) is a proportional voting method designed for city council elections; that is, for electing small numbers (5-20) of seats at a time without relying on partisan labels.
PAD voting is a proportional voting method designed for city council elections; that is, for electing small numbers (5-20) of seats at a time without relying on partisan labels. PAD can stand for either "Prefer, Approve, Disapprove" or "Proportional Approval with Delegation".


Here's how it works:
Here's how it works:
Line 7: Line 7:
Candidates pre-rate each other as "approve" or "disapprove". Candidates may not approve more than half of the incumbents. These pre-ratings are public.
Candidates pre-rate each other as "approve" or "disapprove". Candidates may not approve more than half of the incumbents. These pre-ratings are public.


Voters rate candidates at one of 4 levels: "Support", "Approve", "don't know/delegate", or "disapprove". Default is "don't know". (In most cases, it is enough to "support" only one candidate, though supporting a few additional candidates is probably also strategically OK.)
Voters rate candidates at one of 4 levels: "prefer", "approve", "don't know/delegate", or "disapprove". Default is "don't know". Voters may approve or disapprove of as many candidates as they like, but they are encouraged to prefer only one. If they prefer more than one, their vote is counted as several equal fractions; for instance, if they prefer A and B while approving C, their vote is counted as half a ballot which prefers A and approves B and C, and half a ballot which prefers B and approves A and C.


Any "don't know/delegate" ratings for candidate X are changed to "approve" ratings if over half the candidates Y (, Z, etc.) who were "supported" on that ballot pre-approved X. Otherwise, "don't know" is changed to "disapprove".
Any "don't know/delegate" ratings for candidate X are changed to "approve" ratings if over half the candidates Y (, Z, etc.) who were "preferred" on that ballot pre-approved X. Otherwise, "don't know" is changed to "disapprove".


Define a "quota" as the number of votes divided by the number of seats.
Define a "quota" as the number of votes divided by the number of seats.


(Optional:) For each ward, the candidate X with the most same-ward votes gets a seat. If that candidate has less than 1 quota of "support" votes, then remove all ballots that support X. If that candidate has more than 1 quota of "support", then remove one quota of votes that support X. (There are several rules that would work for removing those ballots. For instance, you could start at a random vote and then remove every nth vote from there on, with n chosen so as to make as close to one full circuit around the votes as possible. Or, if voters prefer not to have a random aspect, all ballots supporting that candidate could be reduced by a fractional "weight" so that the total weight added up to the right amount.)
(Optional:) For each ward, the candidate X with the most same-ward votes gets a seat. If that candidate has less than 1 quota of "prefer" votes, then remove all ballots that prefer X. If that candidate has more than 1 quota of "prefer", then remove one quota of votes that prefer X. (Which ballots are removed should be based on a single random number, such that each ballot has the same chance of being removed, and approximately the same fraction of ballots from each precinct are removed. In other words, put the ballots in order of precincts, pick a random ballot to start with, and then remove every Nth eligible ballot from there on, with N chosen so as to ensure you go approximately 1 time around the ballots in all.)


If any candidate has over 1 quota of "support" votes, they get a seat. Remove 1 quota of their support ballots.
If any candidate has over 1 quota of "prefer" votes, they get a seat. Remove 1 quota of their prefer ballots.


As long as any candidate has over 1 quota of votes combining "support" and "approve" tallies, choose the one of those with the most "support" votes, and give them a seat. Remove all their support ballots, then remove enough of their approval votes to total one quota of ballots removed.
As long as any candidate has over 1 quota of votes combining "prefer" and "approve" tallies, choose the one of those with the most "prefer" votes, and give them a seat. Remove all their "prefer" ballots, then remove enough of their approval votes to total one quota of ballots removed.


If there is/are still seat(s) left to fill, pick the candidate(s) with the most approvals.
If there is/are still seat(s) left to fill, pick the candidate(s) with the most approvals.


== Summable PODA (alternative version) ==
== Summable PAD (alternative version) ==


The above algorithm requires full data from all ballots; it cannot be run exactly using just precinct-level tallies. As long as it is possible to bring all the ballots to be counted centrally, the above is probably best. However, if that is not an option, it can be approximated, if the following tallies are kept:
The above algorithm requires full data from all ballots. However, it can be approximated using only the following precinct tallies:


* Number of ballots which "support" each candidate X, denoted S(X).
* Number of ballots which "prefer" each candidate X, denoted P(X). (
* Number of ballots which "approve" each candidate X, denoted A(X).
* Of the ballots which "prefer" each candidate X, number of candidates which "approve" each candidate Y, denoted PA(X,Y). Ballots which prefer no candidate should be included in these tallies as PA(?,Y).
* For each pair of 2 candidates X and Y, number of ballots which "support" both of them, denoted SS(X,Y)=SS(Y,X).
* For each ordered pair of 2 candidates X and Y, number of ballots which support X and approve Y. ("How many Y approvals come from X supporters") This is denoted SA(X,Y)


Given such tallies, it is easy to approximate the above algorithm. For instance, if P(X) is over one quota Q, then when electing X you should multiply both P(X), as well as PA(X,Y) for every Y, by the ratio (P(X)-Q)/P(X); this has the effect of reducing P(X) by Q.
There are various algorithms for maintaining a consistent set of tallies while virtually removing "support ballots" or "approval ballots" for a given candidate. Explaining the details of such algorithms is too tedious to go into here, but all of them are just versions of "reduce the tally you're focusing on by the target amount, then guess what fraction of that target amount overlaps with each of the other tallies, in a way that ensures there are no logical inconsistencies". None of these algorithms gives exactly the same result in all cases as having actual ballots, but all of them are pretty close. In cases where the extra transparency and security of summable tallies is more important than the precision of full ballots, a summable version of PODA is a good option.

Revision as of 19:33, 14 May 2018

PAD voting is a proportional voting method designed for city council elections; that is, for electing small numbers (5-20) of seats at a time without relying on partisan labels. PAD can stand for either "Prefer, Approve, Disapprove" or "Proportional Approval with Delegation".

Here's how it works:

(Optional:) Voters and candidates may be divided ahead of time into a number of "wards" that's less than the total number of seats to be elected. For instance, there might be 7 wards and a total of 13 seats. Ballots list same-ward candidates first.

Candidates pre-rate each other as "approve" or "disapprove". Candidates may not approve more than half of the incumbents. These pre-ratings are public.

Voters rate candidates at one of 4 levels: "prefer", "approve", "don't know/delegate", or "disapprove". Default is "don't know". Voters may approve or disapprove of as many candidates as they like, but they are encouraged to prefer only one. If they prefer more than one, their vote is counted as several equal fractions; for instance, if they prefer A and B while approving C, their vote is counted as half a ballot which prefers A and approves B and C, and half a ballot which prefers B and approves A and C.

Any "don't know/delegate" ratings for candidate X are changed to "approve" ratings if over half the candidates Y (, Z, etc.) who were "preferred" on that ballot pre-approved X. Otherwise, "don't know" is changed to "disapprove".

Define a "quota" as the number of votes divided by the number of seats.

(Optional:) For each ward, the candidate X with the most same-ward votes gets a seat. If that candidate has less than 1 quota of "prefer" votes, then remove all ballots that prefer X. If that candidate has more than 1 quota of "prefer", then remove one quota of votes that prefer X. (Which ballots are removed should be based on a single random number, such that each ballot has the same chance of being removed, and approximately the same fraction of ballots from each precinct are removed. In other words, put the ballots in order of precincts, pick a random ballot to start with, and then remove every Nth eligible ballot from there on, with N chosen so as to ensure you go approximately 1 time around the ballots in all.)

If any candidate has over 1 quota of "prefer" votes, they get a seat. Remove 1 quota of their prefer ballots.

As long as any candidate has over 1 quota of votes combining "prefer" and "approve" tallies, choose the one of those with the most "prefer" votes, and give them a seat. Remove all their "prefer" ballots, then remove enough of their approval votes to total one quota of ballots removed.

If there is/are still seat(s) left to fill, pick the candidate(s) with the most approvals.

Summable PAD (alternative version)

The above algorithm requires full data from all ballots. However, it can be approximated using only the following precinct tallies:

  • Number of ballots which "prefer" each candidate X, denoted P(X). (
  • Of the ballots which "prefer" each candidate X, number of candidates which "approve" each candidate Y, denoted PA(X,Y). Ballots which prefer no candidate should be included in these tallies as PA(?,Y).

Given such tallies, it is easy to approximate the above algorithm. For instance, if P(X) is over one quota Q, then when electing X you should multiply both P(X), as well as PA(X,Y) for every Y, by the ratio (P(X)-Q)/P(X); this has the effect of reducing P(X) by Q.