-
Notifications
You must be signed in to change notification settings - Fork 2
Random Number flow
Starting from the manifest file, the "NumBallots" column is accumulated and stored as "ballot_manifest_info.sequence_end".
The maximum "sequence_end" is used as the upper bound for random numbers. The random numbers are generated when starting a round and are stored in the database as "round.audit_subsequence". These random numbers are then used to find which "ballot_manifest_info" would hold it.
That ballot_manifest_info is then used to find which cast_vote_record we are going to audit by joining on county_id, scanner_id, batch_id, record_id(aka cvrNumber). If a cast_vote_record is not found with these attributes a Discrepency (will need to) be created.
When requesting ballot information for each round these are the columns and attributes that are rendered in the response:
cast_vote_record: cvr_number, ballot_type, id, audit_flag
ballot_manifest_info: scanner_id, batch_id, storage_location, position(computed), imprintedId(computed)
As the audit takes place AuditedCVRs are created that are linked to a CVR. They are in the "cast_vote_record" table with "record_type = 'AUDITOR_ENTERED'"