Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request: add STAR Voting as a preference option #82

Open
wolftune opened this issue Nov 4, 2022 · 5 comments
Open

Request: add STAR Voting as a preference option #82

wolftune opened this issue Nov 4, 2022 · 5 comments
Labels
enhancement New feature or request

Comments

@wolftune
Copy link

wolftune commented Nov 4, 2022

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

@jberkus
Copy link
Member

jberkus commented Nov 4, 2022

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.

@wolftune
Copy link
Author

wolftune commented Nov 5, 2022

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 capacity to mark 0-5 for each candidate
  • very simple backend math

The extras to actually use it require:

  • clear UI for scoring and showing results
  • explanation text so that people understand how to vote

See https://star.vote/ to understand how simple this is.

@jberkus
Copy link
Member

jberkus commented Nov 6, 2022

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.

@wolftune
Copy link
Author

wolftune commented Nov 6, 2022

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.

@jberkus
Copy link
Member

jberkus commented Nov 6, 2022

More info: storage would not need to change; the existing ballots table can hold either type of ballot.

@jberkus jberkus added the enhancement New feature or request label May 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants