Support for untabulated ballots: provisionals etc.
Audits ideally come after all the votes are tabulated, canvassed and reconciled. In Colorado, however, the certification deadline comes shortly after the last date for voters to cure signature verification problems, for provisional ballots to be processed, etc., It is thus possible that a very small number of such ballots may be tabulated after the deadline for CVRs and manifests to be uploaded to the ColoradoRLA tool. An updated vote count including such ballots may be released at the end of the tabulation and canvass, and the risk limit of the audit needs to apply to the updated outcome.
This is allowed e.g. by Colorado's Rule 25, e.g. for provisional ballots.
RLA theory covers this case. As discussed in Banuelos-Stark-2012, counties should add a batch of phantom ballot cards to the manifest, which do not correspond to any CVRs, one for each possible late-tabulation ballot card.
To support this, if the total number of ballot cards identified in the manifest is greater than the number of CVRs, the server should augment the sample space for the random selection from the CVRs to match the total from the manifest. Any selections that don't map to an uploaded CVR should be automatically treated as phantom ballot cards, and handled as in the existing "ballot-not-found" case, i.e. as if votes were marked for all the losers.
What happens currently in the RLA Tool if the Ballot Manifest includes ballots for which there are no corresponding lines in the CVR file?
I don't think that part of the corla.pvs spec has been implemented yet, so the tool doesn't notice the discrepancy at all.
In the converse situation, where the CVR file has lines for ballot ids which are not represented in the ballot manifest, or in particular can't be found among the paper ballots, the Audit Board can click the "Ballot Card Not Found" button, and the ballot is properly treated as a phantom ballot.
So long as the ballot manifest contains at least as many ballots as the CVR file, the audit can properly limit the risk. But part of the requirements based on Rule 25 are to handle the case of provisionals and other ballots which haven't been counted yet.
It would be straightforward to do a check that all CVRs in the ballot manifest are accounted for in the imported CVR set and generate phantom records for those that are not. We just haven’t done that yet.
It’s even more straightforward if all we care about is that the numbers of ballots match, and we don’t want to ask them to look at a specific ballot that’s in the manifest but for which we had no CVR in the import (but instead, we just count such a ballot the same as a phantom ballot). The other case, where there are more CVRs in the import than in the manifest, seems more interesting to me - it’s less obvious how to handle that other than to detect it and issue some kind of warning (or disallow the import).
Good points @dmzimmerman. I think the most helpful thing would be to disallow the import if there are more CVRs than manifest entries, and in other cases, to provide a list of discrepancies in counts, batch-by-batch, and provide an overall probability that a CVR selected will not match a manifest entry. Then they'll be alerted if there is just something unintentional, like mismatches of batch numbers, and forewarned if there is likely to be a big effect from any discrepancies, allowing them to double-check their numbers.
Makes sense. Regardless, I am not going to do any work on this feature now unless we actually need it to satisfy CDOS for this contract.
Basic information for verifying that the counts match is now available from the server.
See also #667: consistency check for CVR file vs Ballot Manifest file
I'm including a recommendation in Weekly Report #11 on this issue.
I"m taking the "Ask CDOS" label off this issue, since I don't see what question should be posed to CDOS. Also removing this from the fourth-and-final milestone.