election-methods@mailman.electorama.com

Technical discussion of election methods

View all threads

IRV party list PR with leveling seats

KM
Kristofer Munsterhjelm
Thu, Aug 15, 2024 11:02 PM

Here's a relatively simple IRV-based method for doing party list in the
Scandinavian setting, i.e. with a threshold below which parties get
district seats but not top-up seats.

For closed list PR, voters rank parties. For open list PR, they may rank
candidates or parties, but can't rank candidates within a party if they
rank the party.

For instance, for OLPR, A1>A2>A3>B1>B2>B3 and Party A>Party B are both
valid, but Party A>A2>A3>Party B is not.

Then I have two forms. The former has more nonmonotonicity and
compromise incentive than the latter, but the latter is more complex.

The former proceeds like this:

  1. Count the non-eliminated parties' first preference support and
    determine the national support.

  2. Select the party with least support. If that party is above the
    threshold, go to 5 (finalization).

  3. Otherwise, for each district where this party obtains a seat, elect
    the candidate and remove every ballot that voted for this party from
    further consideration.

  4. Eliminate the party in question and go back to 1.

  5. (Finalization) Do Sainte-Laguë with the remaining parties' support
    numbers, and assign leveling/top-up seats. Ideally use biproportional
    representation for this, but you could also use the greedy algorithm
    that's used in practice in Norway and Sweden. It's simpler but can lead
    to weird leveling seat assignments.

As for the latter, more complex variant:

This method assigns every ballot a "seat count". This seat count
represents how many seats the ballot has contributed to electing, and
the ballot's weight is 1/(2s+1) where s is the seat count.

Replace step 1 with:
"Count the non-eliminated parties' first preference support, taking the
different ballot weights into account, and determine the national support."

Replace step 3 with:
"Otherwise, for each district where this party obtains a seat, elect
the candidate and update the seat counts of the ballots that contributed
to the candidate's election."

This is less unfair as voting for someone who obtains a seat doesn't
wipe out your vote entirely. But you have to keep track of seat counts.

Both methods share some of the disadvantages of IRV (like
nonmonotonicity). But I don't see how to do Condorcet like this without
making the method much more complex.[1]

In practice, voters would vote up to the first party they think will
pass the threshold. There's no point in ranking subsequent
above-threshold parties because the elimination and vote redistribution
stops when every remaining party is above the threshold.

-km

[1] It might be interesting to find out how other ranked methods could
be fit into a Sainte-Laguë reweighting framework. Can Bucklin, for
instance? Something about letting people's kth ranks count, but
reweighting by 1/(2s+1) after the election of some candidate? The
problem is it's not clear what "threshold" should be used.

Here's a relatively simple IRV-based method for doing party list in the Scandinavian setting, i.e. with a threshold below which parties get district seats but not top-up seats. For closed list PR, voters rank parties. For open list PR, they may rank candidates or parties, but can't rank candidates within a party if they rank the party. For instance, for OLPR, A1>A2>A3>B1>B2>B3 and Party A>Party B are both valid, but Party A>A2>A3>Party B is not. Then I have two forms. The former has more nonmonotonicity and compromise incentive than the latter, but the latter is more complex. The former proceeds like this: 1. Count the non-eliminated parties' first preference support and determine the national support. 2. Select the party with least support. If that party is above the threshold, go to 5 (finalization). 3. Otherwise, for each district where this party obtains a seat, elect the candidate and remove every ballot that voted for this party from further consideration. 4. Eliminate the party in question and go back to 1. 5. (Finalization) Do Sainte-Laguë with the remaining parties' support numbers, and assign leveling/top-up seats. Ideally use biproportional representation for this, but you could also use the greedy algorithm that's used in practice in Norway and Sweden. It's simpler but can lead to weird leveling seat assignments. As for the latter, more complex variant: This method assigns every ballot a "seat count". This seat count represents how many seats the ballot has contributed to electing, and the ballot's weight is 1/(2s+1) where s is the seat count. Replace step 1 with: "Count the non-eliminated parties' first preference support, taking the different ballot weights into account, and determine the national support." Replace step 3 with: "Otherwise, for each district where this party obtains a seat, elect the candidate and update the seat counts of the ballots that contributed to the candidate's election." This is less unfair as voting for someone who obtains a seat doesn't wipe out your vote entirely. But you have to keep track of seat counts. Both methods share some of the disadvantages of IRV (like nonmonotonicity). But I don't see how to do Condorcet like this without making the method much more complex.[1] In practice, voters would vote up to the first party they think will pass the threshold. There's no point in ranking subsequent above-threshold parties because the elimination and vote redistribution stops when every remaining party is above the threshold. -km [1] It might be interesting to find out how other ranked methods could be fit into a Sainte-Laguë reweighting framework. Can Bucklin, for instance? Something about letting people's kth ranks count, but reweighting by 1/(2s+1) after the election of some candidate? The problem is it's not clear what "threshold" should be used.