-
Notifications
You must be signed in to change notification settings - Fork 19
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
WIP: Split Inactive Ballots by Exhausted Choices
bucket into Inactive Fully Ranked Ballots by Exhausted Choices
and Inactive Partially Ranked Ballots by Exhausted Choices
#854
Comments
What if the config sets the max votes to "MAX", but one of the CVRs has a more strict limit? This can happen with Dominion CVRs. It feels like it may be more legible both in code and in the output files to simply exclude any "inactive by __" if no ballots are inactive in that way? |
That's right with multi-vendor CVRs the max ranking could be different for each one...hmm. Made this a WIP and added all the open questions to the original description. |
Inactive Ballots by Exhausted Choices
bucket into Inactive Fully Ranked Ballots by Exhausted Choices
and Inactive Partially Ranked Ballots by Exhausted Choices
Inactive Ballots by Exhausted Choices
bucket into Inactive Fully Ranked Ballots by Exhausted Choices
and Inactive Partially Ranked Ballots by Exhausted Choices
We need some more time to process the open questions. Removing from 2.0 |
Would it be possible as a stopgap until this is implemented, to put into the |
As I was reverting the code to defer this, I found a solution I'm somewhat happy with that I'd like to pitch. The idea is that we always include as much information as we have, and only exclude the line item in the CSV when two conditions are met:
Concretely, the following table indicates when
The asterisk denotes the potentially strange case: a multi-vendor tabulation where only Dominion ballots can end up in the I know this discussion could go on for much longer, but wanted to get a gut check on whether this interim solution is acceptable. |
Okay, here's a funny thing that will need to be understood if we do any sort of splitting of fully ranked vs partially ranked: If a CVR ranks 100% undeclared candidates, that should probably be marked as |
Added Armin's suggestion for extra rows in |
Currently we have a row for
Inactive Ballots By Exhausted Choices
in thesummary.csv
. We'd like to split this into two bucketsInactive Fully Ranked Ballots by Exhausted Choices
is for exhausted ballots that used ALL of their rankingsInactive Partially Ranked Ballots by Exhausted Choices
is for exhausted ballots that used less than the number of rankings that they were allowedWe will use the number configured in
Maximum Number of Candidates That Can Be Ranked
to differentiate. This will be required! We don't want to assume the number of maximum rankings. It must be explicitly configured.Open Questions
Maximum Number of Candidates That Can Be Ranked
is not configured, do we default back to a singleInactive Ballots By Exhausted Choices
bucket in the CVR?summary.json
show all three buckets (exhausted, exhausted_fully_ranked and exhausted_partially_ranked) and fill in whatever it can? Or does the schema differ depending on whether or not max ranks is configured explicitly? How do we flag that for consumers?summary_extended.csv
new rows for "Inactive Ballots by Exhausted Choices" that group those exhausted ballots by the number of rankings those ballots used. This could provide even more precise information and doesn't require any more explicit configuration before tabulation. In the example we only include rows for a specific number of rankings if at least one ballot with that number of ranks went exhausted. So in the example below there were no ballots that ranked three candidates and had their ballot exhaust.The text was updated successfully, but these errors were encountered: