D01 · Reported, validated, and recounted totals
Needs reported, validated
Eligible when A division has at least two of reported, validated, and recount populated.
Logic. Flag when populated totals for the same division and candidate are not equal.
Threshold. Any non-zero difference. No universal vote threshold.
False positives. A routine correction, a transcription lag, or a recount that changes a close count.
Escalate only with A source document showing the same difference, plus the authority’s correction or an open recount.
D02 · Reporting batches
Needs publishedAt, addedVotes, cumulativeVotes
Eligible when A batch has an added-vote figure and a cumulative total.
Logic. A batch that adds more than 40% of the cumulative total is described, not condemned. Missing publication time is insufficient data.
Threshold. 40% of the cumulative total in one batch, chosen so ordinary poll-close drops are visible. It is not a fraud cut-off.
False positives. Special ballots, remote polls, or a first release of a large share of the vote.
Escalate only with An official batch log whose time and contents contradict the published note.
D03 · Ballot accounting
Needs ballotsCast, validBallots, rejectedBallots
Eligible when Cast, valid, and rejected are all present. Missing values are not treated as zero.
Logic. Cast should equal valid plus rejected in this lab’s simplified ballot account.
Threshold. Any difference once all three fields are present.
False positives. A category this model omits, such as spoiled or declined ballots, if the official account uses it.
Escalate only with The official ballot account for that division.
D04 · Duplicate or conflicting records
Needs electionId, divisionId, candidate, reported
Eligible when Two rows share election, division, and candidate.
Logic. Conflict when any populated total differs across the duplicate rows.
Threshold. Any conflicting populated field.
False positives. A versioned correction stored as a second row without a version id.
Escalate only with The source file versions and their checksums.
D05 · Chain of custody
Needs kind, detail, publicSourceId
Eligible when A documented custody exception is already in the source register. The detector does not infer one.
Logic. Surface the documented exception with the status on the source note.
Threshold. Presence of a custody flag. No statistical cut-off.
False positives. A clerical seal rewrite that was corrected and documented.
Escalate only with The original seal log from the returning officer.
D06 · Voter-list notes
Needs kind, detail
Eligible when A public eligibility note exists. Voter-level records are never ingested.
Logic. Surface the note. Do not count people, and do not infer ineligibility from turnout.
Threshold. A documented note only.
False positives. A list cleanup that is ordinary registration maintenance.
Escalate only with An official list-review report. This site will not hold a voter list.
D07 · Special ballots
Needs kind, detail
Eligible when A documented special-ballot irregularity. Volume of special ballots alone is not a hit.
Logic. Surface the documented processing note.
Threshold. A documented note only.
False positives. Ordinary special-ballot timelines that arrive after election night.
Escalate only with The official special-ballot reconciliation.
D08 · Original count versus recount
Needs validated, recount
Eligible when Both the validated count and a recount are populated.
Logic. Record the signed difference. A difference is a recount result, not a finding of misconduct.
Threshold. Any non-zero difference.
False positives. Normal recount movement in a close contest.
Escalate only with The official recount statement.
D09 · Robust outliers for share, turnout, and rejection
Needs turnoutPct, rejectedBallots, validBallots
Eligible when At least 8 finite observations in the same jurisdiction and election. Candidate share is valid ballots over cast ballots when cast is present.
Logic. Robust z against the lab’s own divisions. |z| > 3.5 is an outlier for this model only.
Threshold. 3.5 robust z, about a strong MAD outlier. Not used as a fraud probability.
False positives. A small rural poll, a language barrier, or a real local preference.
Escalate only with The same outlier in official microdata, unexplained by ballot type or poll size.
D10 · Turnout against a stated baseline
Needs turnoutPct, baselineTurnoutPct
Eligible when Both turnout and a baseline exist, and the baseline is documented as comparable.
Logic. Compare turnout with its own baseline. A missing baseline is insufficient data, not zero turnout.
Threshold. More than 15 points from the stated baseline. The gap is descriptive.
False positives. Boundary changes, weather, or a different electorate than the baseline year.
Escalate only with Official turnout for the same geography and the same definition.
D11 · Rejected-ballot rate
Needs rejectedBallots, ballotsCast
Eligible when Cast is present and greater than zero, and at least 8 rates exist in the comparison group.
Logic. Rejection rate is rejected / cast. Robust z > 3.5 against the same election’s divisions.
Threshold. 3.5 robust z within the comparison group. No single national cut-off.
False positives. Ballot design, instructions, or a very small poll.
Escalate only with Official rejected-ballot reason codes for that division.
D12 · Geographic comparison
Needs comparableGeography, districtId
Eligible when Only divisions flagged comparable, with the same jurisdiction and boundary vintage.
Logic. If the fixture says geography is not comparable, return insufficient data. Do not invent boundaries.
Threshold. No distance threshold until a documented boundary file is loaded.
False positives. A choropleth that compares ridings whose borders changed.
Escalate only with An official boundary file and a stated vintage.
D13 · Polling-place procedure
Needs kind, detail
Eligible when A documented procedural note. The detector does not infer a violation from results.
Logic. Surface the note with its source status.
Threshold. A documented note only.
False positives. A corrected paperwork error.
Escalate only with The official poll-procedure review.
D14 · Timestamps and audit trail
Needs publishedAt, retrievedAt
Eligible when A batch that claims both a publication time and a retrieval time.
Logic. Retrieval earlier than publication is a trail inconsistency. A missing publication time is insufficient data.
Threshold. Any retrieval timestamp earlier than publication.
False positives. Clock skew or a timezone stored without an offset.
Escalate only with The server log and the official publication stamp.
D15 · Complaints and official outcomes
Needs kind, outcome, publicSourceId
Eligible when A public complaint record with an outcome. Allegations without a public record are not created here.
Logic. Carry the outcome already on the record. Do not upgrade it to fraud.
Threshold. No score. Status is the documented outcome.
False positives. A closed complaint that readers misread as a finding.
Escalate only with The decision published by the official body.