Open wolftune opened 2 years ago
This would require more than adding a new ballot account module; you'd need to also add code to swap in a different election ranking widget based on the election algorithm required, as well as adding switching code to the Vote page, which currently doesn't have any (since in the current implementation, election accounting isn't checked until the election is concluded).
Happy to help mentor someone if you know anyone who wants to program this.
switching code… election accounting isn't checked until the election is concluded
I think there's some confusion. There's not two ballots or anything. STAR is a single ballot, just 0-5 scoring range for each candidate. The runoff is not a separate election, it's an automatic runoff using the same scores. A voter who marked a different score for each of the two top-scoring candidates has their vote go to the one they preferred.
STAR needs no accounting to happen before all voting is concluded. One voting stage, one accounting stage. That's it.
All that's needed to implement STAR is:
The extras to actually use it require:
See https://star.vote/ to understand how simple this is.
Right now, the Vote page assumes that regardless of your election method, that the voting screen displays the same and has the same controls. For all Condorcet and IRV methods, this is true. Supporting STAR would require having a new set of controls, and for the /vote path to actually branch into two paths, depending on whether the election was STAR or condorcet/IRV.
All of this is by way of documenting the requirements to implement the feature, in case anyone wants to pick it up.
Gotcha. Yes, the ballot is different. It's a scoring ballot not a ranking ballot. New controls, yes. Whereas IRV and Ranked Pairs use identical ballots but only tabulate the results differently.
More info: storage would not need to change; the existing ballots table can hold either type of ballot.
STAR is simple to tabulate and run and is measured to be best-in-field for methods. See https://www.starvoting.org/
Quite simply: ballots provide 0-5 scoring for each candidate. The top two high-scoring candidates are finalists. The winner is the finalist with the most ballots showing a preference for them over the other finalist.
STAR achieves an optimal balance of simplicity, robustness, and expressiveness. It effectively eliminates the center-squeeze and other issues that instant-runoff has (which all involve 2nd-choice votes getting ignored when a 2nd-choice had been eliminated prior to the chance of counting), and it resolves other issues people have with plain-score.
Star.vote shows quite a decent and simple visualization and voting experience.
It would be ideal for STAR to be an option for anyone using elekto