Skip to content

Sf irv - #111

Merged
pbstark merged 6 commits into
mainfrom
sf-irv
May 4, 2026
Merged

Sf irv#111
pbstark merged 6 commits into
mainfrom
sf-irv

Conversation

@pbstark

@pbstark pbstark commented May 4, 2026

Copy link
Copy Markdown
Owner

Encapsulate rules for the validity of votes for different social choice functions into functions in core/Audit/Contest, with suitable defaults for plurality, supermajority, approval, and IRV. There are flags for some common variants of IRV validity rules, and the ability to add a user-defined validity function. The default IRV rules correspond to San Francisco's rules.

Add validated property to CVR object to list Contests for which the CVR has been validated.

Remove enforcement of social choice rule from Formats/Dominion.read_cvrs().

The idea in this update is that the CVRs and MVRs that SHANGRLA ingests should henceforth be "raw," i.e., what the marks on the ballot card (supposedly) show or what the auditors see, with no enforcement of what constitutes a valid vote nor transformation/interpretation into a valid portion of the vote (e.g., if a voter assigns the same rank to two candidates or omits a rank). Turning a set of marks into the corresponding valid vote (if any) is now done internally. For instance, the functions determine whether the reported marks constitute an overvote.

The logic for IRV is the most complicated, partly because there are more variants of operations on ranks. Operations some jurisdictions use include removing overvoted ranks and "squeezing" to remove omitted ranks.

@pbstark
pbstark merged commit 9d5db92 into main May 4, 2026
1 check passed
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.

1 participant