San Francisco is amazing in that they publish all of the ballot data. You can download it yourself here. We downloaded the ballot data, converted it into the BLT format used by OpaVote, counted the ballots, and you can see our results here:
- Board of Supervisors, District 1
- Board of Supervisors, District 3
- Board of Supervisors, District 5
- Board of Supervisors, District 7
- Board of Supervisors, District 9
- Board of Supervisors, District 11
You will see one difference between the official results here and our results. In the official results, the last place candidate is eliminated one by one. In the OpaVote results, all losing candidates are eliminated simultaneously. Look at the second round of the District 1 election to see an example. OpaVote eliminates 8 candidates simultaneously because none of these candidates could possibly win the election (the sum of all their votes is less than both Sandra and Marjan).
So who is right? Technically, OpaVote is right, but in practice it doesn't make a difference. The San Francisco city charter says at Sec. 13.102(e):
So who is right? Technically, OpaVote is right, but in practice it doesn't make a difference. The San Francisco city charter says at Sec. 13.102(e):
If the total number of votes of the two or more candidates credited with the lowest number of votes is less than the number of votes credited to the candidate with the next highest number of votes, those candidates with the lowest number of votes shall be eliminated simultaneously and their votes transferred to the next-ranked continuing candidate on each ballot in a single counting operation.
This is what OpaVote does and we call it a batch elimination.
In practice, it doesn't matter since the outcome will always be the same regardless of whether candidates are eliminated one by one or in batches.
You need to be careful, however, with other implementations of IRV. I won't go into to the details here, but if you implement IRV with a tie-breaking scheme that break ties by looking at previous rounds (which San Francisco doesn't) then it is possible that one-by-one elimination gives a different result than batch elimination.
In practice, it doesn't matter since the outcome will always be the same regardless of whether candidates are eliminated one by one or in batches.
You need to be careful, however, with other implementations of IRV. I won't go into to the details here, but if you implement IRV with a tie-breaking scheme that break ties by looking at previous rounds (which San Francisco doesn't) then it is possible that one-by-one elimination gives a different result than batch elimination.