fairvotereform / RankIt

https://rankit.vote
1 stars 2 forks source link

Results fixes to match algorithm changes #157

Closed ggordn3r closed 3 years ago

ggordn3r commented 3 years ago

Background The pull request we merged alters eliminations slightly. Before the pull request, there was a "hard elimination" of all choices with 0 votes in Round 1. In multi-winner, however, this created a problem. Example:

Thus, the pull request modified the algorithm so the hard elimination occurs in the first round with an elimination--giving time for candidates with 0 votes to receive surplus distributions.

Issue Description This issue is to fix the messaging so it represents this change. See this poll for testing: https://rankit.skelpo.com/results/P4cL6bavlGkEAKSJJpEJ/1

  1. In Round 1, "Phone calls" is already shown as crossed-off. That should not be the case until a choice with votes is eliminated (in this case, Round 2)
  2. In Round 1, the Summary reads "So, the choice with the fewest votes, Phone calls, will be eliminated." This is technically true, but the bar that visibly changes is "Written letters" so that should be the one mentioned. In other words, where there are multiple simultaneous eliminations, it's the one with votes to redistribute that should be in the Round Summary.
proggeramlug commented 3 years ago

Okay, this doesn't quite make sense. In the code, for the statement, it says "the choice with least amount of votes will be eliminated". That is the one that received no votes. Should it only be from all choices that have received votes?

So, should we take out all the first round zero vote choices?

To directly speak to the points:

  1. So should it be crossed of later with the other one, or should it not show up at all?
  2. Similar to #1 in spirit, should "Phone calls" be mentioned at all?
ggordn3r commented 3 years ago

Answers to your questions:

  1. All choices with 0 votes should be crossed off later, together with the first elimination of a choice with votes. In this case, that happens in Round 2 (Written letters eliminated).
  2. I struggled to find a way to explain this in the Round Summary while preserving our existing message structure. We never did in the last version, but some message is probably best. Try adding this line to the end of the paragraph when more than 1 choice is eliminated in the same round: All choices with 0 votes will also be eliminated in this round.

You're right, obviously, that a choice with 0 votes has fewer votes than a choice with any. The problem is that the algorithm eliminates all of the choices with 0 votes in a batch in the same round as the first elimination of a choice with votes. So there's no opportunity to explain each of those eliminations separately. Better, I think, just to keep the focus in the Round Summary on the choice with votes, since that's what's highlighted in the graph.

proggeramlug commented 3 years ago

Alright, attempting to get this finished finally. Check it out!

ggordn3r commented 3 years ago

Round 1 is still mentioning Phone calls instead of Written letters: https://rankit.skelpo.com/results/P4cL6bavlGkEAKSJJpEJ/1

Also, it looks like I need to reword the message slightly. Instead of

All choices with 0 votes will also be eliminated in this round.

Let's say:

All choices with 0 votes will also be eliminated.

And finally, that message should be in Round 1, not in Round 2 (as it currently is).

proggeramlug commented 3 years ago

Okay, I'm somewhat confused but let's just unpack it: In the first round, no one is eliminated, neither Phone calls nor written letters. There will be an elimination in round 2 and that is what the messaging is saying. "will be eliminated"

So in round 2, this happens but we are eliminating not just written letters but also all the ones with 0 votes.

The wording here is tricky because "will" and "is" make all the difference here :)

I adjusted the sentence you quoted but not sure how to fix the wording quite correctly.

ggordn3r commented 3 years ago

You have this right conceptually, but it's showing up wrong in practice.

Round 1: https://rankit.skelpo.com/results/P4cL6bavlGkEAKSJJpEJ/1

Round 2: https://rankit.skelpo.com/results/P4cL6bavlGkEAKSJJpEJ/2

Expected behavior is for these messages to appear together in the first round. The choices with no votes will be eliminated at the same time as the first choice with votes is eliminated, so their "will be" messages should appear together in the same round.

proggeramlug commented 3 years ago

Okay, fixed it to appear in the same round now.

ggordn3r commented 3 years ago

Confirmed, correct round. Now we just need to change "Phone calls" to "Written letters" in Round 1: https://rankit.skelpo.com/results/P4cL6bavlGkEAKSJJpEJ/1

Notice that in Round 2 it's "Written letters" that is visibly eliminated. In situations where more than one choice is eliminated (the first elimination, where choices with 0 votes are also eliminated), the one with votes is the one to mention in the text.

proggeramlug commented 3 years ago

Okay, I had to change our "getLoosers()" function slightly to take out all the objections without votes - let's test this really well (but we can test it in live I think).

ggordn3r commented 3 years ago

Beautiful. Closing!