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

bug: handling double endorsement tabulation (main) #5456

Merged
merged 1 commit into from
Oct 7, 2024

Conversation

adghayes
Copy link
Collaborator

@adghayes adghayes commented Oct 1, 2024

Part of #5455. See #5446 for details.

* deduplicate marks when converting to votes

* capture undervotes and overvotes consistently for candidates with multiple ballot positions
@adghayes
Copy link
Collaborator Author

adghayes commented Oct 1, 2024

Discussion of Future Changes

This addresses the bug and any tabulation concerns, but there's an open question as to how best represent this use case in the CVR.

Currently, the original snapshot will show two contest selections for the same candidate. It will not have the correct OptionPosition because those are calculated based off of the election definition, where a doubly endorsed candidate will only appear once. In other words, the OptionPosition field is potentially wrong for all contest selections in races with a doubly endorsed candidates. OptionPosition field needs to be calculated based on the ballot layout rather than the election definition.

The modified snapshot will only show one contest selection for the contest. It will not be apparent that there are two marks from looking at the modified snapshot. Keep in mind - the modified snapshots can, according to the spec, contain "virtual" contest selections for options that were never marked directly, such as in a straight party vote in jurisdictions which allow that. So compressing two marks into one selection is fair game, as far as I'm concerned.

If we do show two selections on the modified snapshot, it's unclear how to assign them standard CDF statuses. The both obviously are HasIndication.Yes but are they IsAllocable.Yes? Which one is allocable if both are marked? If both are allocable, isn't that a bit confusing? I think the most accurate thing would be to make them both allocable and give them both special statuses.

We probably will have to go that direction. Currently, the vote data that gets into the modified snapshot is the vote summary distilled from the mark data. Eventually, for a fuller fledged adjudication flow, we need higher fidelity mark data available in VxAdmin. Getting there requires touching the data pipeline at a lot of points - how it's stored in VxScan, how it's recorded in the CVR file, how it's stored in VxAdmin - that make it a far larger project.

@adghayes adghayes merged commit d7cda26 into main Oct 7, 2024
62 checks passed
@adghayes adghayes deleted the drew/double-endorsement-fix branch October 7, 2024 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants