rcv icon indicating copy to clipboard operation
rcv copied to clipboard

Batch Elimination option for STV

Open yezr opened this issue 1 year ago • 7 comments

We now have some jurisdictions using RCTab for STV. We've had requests to implement batch elimination in STV.

Current Behavior

In IRV I have a checkbox for "Use Batch Elimination". When I switch the Winner Election Mode to Multi-Winner that option is greyed out.

Expected Behavior

The checkbox for "Use Batch Elimination" remains as a toggleable option for STV. When enabled, candidates are batch eliminated when possible.

Open Questions

  • Batch elimination in IRV is fairly straightforward. What exactly is the math for batch eliminating in STV?

yezr avatar Feb 10 '25 18:02 yezr

There is one notable subtlety. In single-seat elections, batch elimination applies to the largest set of candidates which together do not have more votes than the next highest vote-getter. But if you follow the same rule with STV, you might alter the result, since a candidate in that batch may put another candidate over threshold earlier than they otherwise might.

I guess the safe rule is: the largest set of candidates which together do not have more votes than the next highest voter-getter and do not have more than the difference between the election threshold and the highest vote-getter?

greg-dennis avatar Feb 26 '25 06:02 greg-dennis

the largest set of candidates which together do not have more votes than the next highest voter-getter and do not have more than the difference between the election threshold and the highest vote-getter

So that second part is making sure everyone we're getting ready to batch eliminate together couldn't jump to be elected in that round? Do you have any examples with rankings we could put into a test?

yezr avatar Feb 26 '25 13:02 yezr

FWIW, I hate batch elimination. Condensing rounds should be done in results reporting, not during tabulation. But my preferences don't impact what's in statute :)

artoonie avatar Feb 26 '25 14:02 artoonie

Matching statute is for sure important if someone requires this.

Also, many jurisdictions have post-election audit requirements. When hand counting RCV results for an audit or recount, batch elimination can make a not-insignificant difference in the amount of work required to do that. Showing that RCTab supports lightening the load, even a little, can be a big boost to buy-in.

yezr avatar Feb 26 '25 14:02 yezr

Can someone check my work? Here's an example of a 4 seat election with 1000 voters, quota is 201 votes:

201 ballots: A
201 ballots: B
200 ballots: C>E
151 ballots: D
150 ballots: E
 50 ballots: F>C>D
 46 ballots: G>E
  1 ballots: G>C>D

If we eliminate one candidate at a time, the rounds proceed as follows:

  1. A and B are elected in the first round with no surplus.
  2. G is eliminated
  3. C is elected with no surplus
  4. F is eliminated
  5. D is elected

Winners are A, B, C, and D

If we batch eliminate using the criteria for single-seat elections, without regard to putting another candidate over threshold:

  1. A and B are elected in the first round with no surplus.
  2. F and G are batch eliminated
  3. C is elected with a 50 vote surplus; ~39.84 votes transfer to E and ~10.16 votes transfer to D
  4. E is elected

Winners are A, B, C, and E

There's probably a simpler example.

greg-dennis avatar Feb 26 '25 16:02 greg-dennis

A few more notes on this. It turns out the rule I suggested in https://github.com/BrightSpots/rcv/issues/917#issuecomment-2684009345 is also written up in Wikipedia's section on "bulk exclusions":

"Any candidates with a tally less than a breakpoint can be included in a bulk exclusion process provided the value of the associated running sum is not greater than the difference between the total value of the highest hopeful's tally and the quota."

I'll add one more benefit to having batch elimination as an option: it makes it less likely that ties for last place need to broken randomly. There are some jurisdictions, including the entire state of Massachusetts, where breaking ties by lot is not legal, so any ways to limit the likelihood of an exact tie is appreciated. To that end, some systems, including DemocracySuite from Dominion, provide a batch elimination option that only applies when candidates are tied for last place. I've filed a feature request in https://github.com/BrightSpots/rcv/issues/921 in case you want to consider it.

greg-dennis avatar Feb 27 '25 05:02 greg-dennis

This makes sense to me and would be easy to implement.


The variant of Batch Elimination I advocate for in statute is that it's allowed for last place and for write-ins, but not for intermediary rounds. As an example, Rounds 4 and 6 of NYC's 2021 primary confused a lot of people. I don't think the public confusion outweighs the benefits in an audit or recount, but of course, I'm biased as I hear from confused voters more than I hear from election administrators.

artoonie avatar Mar 10 '25 20:03 artoonie