Audit report: 6,358 fields checked, 267 disputed, each with its photo
Summary
| Fields checked (keyed value vs the model's read of the paper) | 6,358 |
| Disputed fields (the paper, as read, disagrees with the keyed value) | 267 |
| with strong evidence that the keyed value is wrong | 18 |
| with medium evidence | 80 |
| with weak evidence (the model may have misread) | 169 |
| Marked by the auditor: confirmed capture errors / not an error | 0 / 0 |
| Forms not compared (no read of the paper yet, or page not located: a person checks them) | 11 |
Method
Each form's scan was privacy-masked (the names-and-signatures column blacked out) and read once by an open vision model on AMD GPUs (Gemma-4-31B-IT), which returns every field twice, from the digit boxes and from the amount in words. Every keyed field was compared with the model's digits. A disputed field is ordered by the evidence that the paper is with the model: digits and words agree, and the keyed value breaks one of the paper's identities (rows sum to TOTAL, section 5 = section 7 = TOTAL) that the model's value satisfies; it is moved down when the model saw a blank, or its own read breaks the arithmetic. The model never decides; the auditor marks each field on its photo.
Measured yield. On a pre-registered random sample of 300 forms, the model disputed 267 of 6,358 keyed fields; on the paper, 52 of those 267 were capture errors: 1 in 5. A disputed field is a lead, not a finding, until a person confirms it on the photo.
Recall caveat. Only fields where the model disagrees with the keyed value are listed, so a capture error the model made too is not found. Recall on the capture errors the certified count reveals, Colima (pre-registered, a person's blind check): 27 of 28 caught, 96% (Wilson 95% 82-99%). One state, certified-detectable errors only; not total recall.
"Capture error" means the keyed value does not match the paper, nothing more. Vote rows are named Option 01 to Option 15 in printed order.
Disputed fields, by evidence

- model digits and words agree (388)
- the keyed value breaks rows sum to TOTAL (388 vs 386); the model's value satisfies it
- the keyed value breaks section 7 = TOTAL (388 vs 386); the model's value satisfies it

- model digits and words agree (354)
- the keyed value breaks rows sum to TOTAL (354 vs 352); the model's value satisfies it
- the keyed value breaks section 7 = TOTAL (354 vs 352); the model's value satisfies it

- model digits and words agree (175)
- the keyed value breaks rows sum to TOTAL (258 vs 358); the model's value satisfies it

- model digits and words agree (2)
- the keyed value breaks voters + representatives = section 5 (413 vs 412); the model's value satisfies it

- model digits and words agree (416)
- keyed as illegible; the model read a value
- the model's value satisfies section 7 = TOTAL

- model digits and words agree (416)
- keyed as illegible; the model read a value
- the model's value satisfies section 7 = TOTAL

- model digits and words agree (420)
- keyed as illegible; the model read a value
- the model's value satisfies voters + representatives = section 5

- model digits and words agree (100)
- keyed as illegible; the model read a value
- the model's value satisfies voters + representatives = section 5

- model digits and words agree (388)
- keyed as illegible; the model read a value
- the model's value satisfies section 5 = section 7

- model digits and words agree (388)
- the keyed value breaks section 7 = TOTAL (386 vs 388); the model's value satisfies it

- model digits and words agree (314)
- the keyed value breaks voters + representatives = section 5 (164 vs 314); the model's value satisfies it

- model digits and words agree (716)
- the keyed value breaks voters + representatives = section 5 (316 vs 716); the model's value satisfies it

- model digits and words agree (75)
- the keyed value breaks rows sum to TOTAL (269 vs 329); the model's value satisfies it

- model digits and words agree (3)
- the keyed value breaks voters + representatives = section 5 (783 vs 393); the model's value satisfies it

- model digits and words agree (344)
- keyed as no data; the model read a value
- the model's value satisfies section 7 = TOTAL

- model digits and words agree (344)
- keyed as no data; the model read a value
- the model's value satisfies section 7 = TOTAL

- model digits and words agree (411)
- the keyed value breaks voters + representatives = section 5 (413 vs 423); the model's value satisfies it

- model digits and words agree (12)
- the keyed value breaks voters + representatives = section 5 (421 vs 423); the model's value satisfies it

- model digits and words agree (239)
- the model's read of this form passes every check of the gate

- model digits and words agree (9)
- keyed as illegible; the model read a value

- model digits and words agree (100)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model read digits 104; no words read
- the keyed value breaks voters + representatives = section 5 (292 vs 392); the model's value satisfies it

- model digits and words agree (2)
- keyed as no data; the model read a value

- model digits and words agree (20)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (22)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (47)
- keyed as illegible; the model read a value

- model digits and words agree (140)
- keyed as illegible; the model read a value

- model digits and words agree (1)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (8)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (4)
- keyed as illegible; the model read a value

- model read digits 394; no words read
- the keyed value breaks voters + representatives = section 5 (405 vs 400); the model's value satisfies it

- model read digits 15; no words read
- keyed as illegible; the model read a value
- the model's value satisfies rows sum to TOTAL

- model digits and words agree (180)
- the model's read of this form passes every check of the gate

- model digits and words agree (7)
- keyed as illegible; the model read a value

- model digits and words agree (11)
- keyed as illegible; the model read a value

- model digits and words agree (8)
- keyed as illegible; the model read a value

- model digits and words agree (39)
- keyed as illegible; the model read a value

- model digits and words agree (199)
- keyed as illegible; the model read a value

- model digits and words agree (7)
- keyed as illegible; the model read a value

- model digits and words agree (1)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (1)
- keyed as illegible; the model read a value

- model digits and words agree (2)
- keyed as illegible; the model read a value

- model digits and words agree (2)
- keyed as illegible; the model read a value

- model digits and words agree (5)
- keyed as illegible; the model read a value

- model digits and words agree (0)
- keyed as illegible; the model read a value

- model digits and words agree (9)
- keyed as illegible; the model read a value

- model digits and words agree (383)
- keyed as illegible; the model read a value

- model read digits 369; no words read
- the keyed value breaks voters + representatives = section 5 (364 vs 369); the model's value satisfies it

- model read digits 0; no words read
- the keyed value breaks voters + representatives = section 5 (374 vs 369); the model's value satisfies it

- model read digits 104; no words read
- the keyed value breaks voters + representatives = section 5 (421 vs 521); the model's value satisfies it

- model digits and words agree (307)
- keyed as illegible; the model read a value

- model read digits 3; no words read
- the keyed value breaks voters + representatives = section 5 (380 vs 381); the model's value satisfies it

- model digits and words agree (1)
- keyed as no data; the model read a value

- model read digits 376; no words read
- the keyed value breaks section 7 = TOTAL (370 vs 376); the model's value satisfies it

- model digits and words agree (189)
- keyed as illegible; the model read a value

- model digits and words agree (1)
- keyed as no data; the model read a value

- model digits and words agree (201)
- keyed as illegible; the model read a value

- model digits and words agree (207)
- keyed as illegible; the model read a value

- model digits and words agree (0)

- model digits and words agree (0)

- model digits and words agree (0)

- model digits and words agree (27)

- model digits and words agree (497)

- model digits and words agree (0)

- model digits and words agree (342)

- model digits and words agree (62)

- model digits and words agree (0)

- model digits and words agree (72)

- model digits and words agree (4)

- model digits and words agree (10)

- model digits and words agree (9)

- model digits and words agree (252)

- model digits and words agree (256)

- model digits and words agree (39)

- model digits and words agree (273)

- model digits and words agree (785)

- model digits and words agree (47)

- model digits and words agree (716)
- the keyed value breaks section 5 = section 7 (716 vs 316); the model's value satisfies it
- the keyed value satisfies section 7 = TOTAL; the model's breaks it (716 vs 316)

- model digits and words agree (240)

- model digits and words agree (2)

- model digits and words agree (429)

- model digits and words agree (255)

- model digits and words agree (0)

- model digits and words agree (26)

- model digits and words agree (128)

- model digits and words agree (242)

- model read digits 300; no words read
- the model's read of this form passes every check of the gate

- model read digits 5; no words read
- keyed as illegible; the model read a value

- model read digits 4; no words read
- keyed as illegible; the model read a value

- model read digits 8; no words read
- keyed as illegible; the model read a value

- model read digits 31; no words read
- keyed as illegible; the model read a value

- model read digits 68; no words read
- keyed as illegible; the model read a value

- model read digits 1; no words read

- model read digits 1; no words read

- model read digits 0; no words read

- model read digits 77; no words read

- model read digits 75; no words read

- model read digits 41; no words read

- model read digits 254; no words read

- model read digits 5; no words read

- model read digits 0; no words read

- model read digits 61; no words read

- model digits 94 and words 4 disagree
- the keyed value breaks rows sum to TOTAL (315 vs 405); the model's value satisfies it

- model digits 31 and words 30 disagree
- the keyed value breaks rows sum to TOTAL (404 vs 405); the model's value satisfies it

- model read digits 299; no words read

- model read digits 200; no words read

- model read digits 213; no words read

- model read digits 93; no words read

- model read digits 95; no words read

- model read digits 202; no words read

- model read digits 202; no words read

- model read digits 97; no words read

- model read digits 0; no words read

- model read digits 123; no words read

- model read digits 103; no words read

- model digits 151 and words 153 disagree
- the keyed value breaks rows sum to TOTAL (410 vs 408); the model's value satisfies it

- model digits 354 and words 4 disagree
- the keyed value breaks section 7 = TOTAL (352 vs 354); the model's value satisfies it

- model read digits 383; no words read

- model digits 1 and words 0 disagree
- the keyed value breaks rows sum to TOTAL (382 vs 383); the model's value satisfies it

- model digits 341 and words 1 disagree
- the keyed value breaks section 7 = TOTAL (1 vs 341); the model's value satisfies it

- model digits 425 and words 420 disagree
- the keyed value breaks voters + representatives = section 5 (425 vs 429); the model's value satisfies it

- model read digits 370; no words read

- model read digits 224; no words read

- model read digits 318; no words read

- model read digits 26; no words read

- model read digits 7; no words read

- model read digits 197; no words read

- model read digits 6; no words read

- model digits 390 and words 300 disagree
- the keyed value breaks voters + representatives = section 5 (6 vs 393); the model's value satisfies it

- model read digits 272; no words read

- model read digits 275; no words read

- model read digits 206; no words read

- model digits and words agree (54)
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (329 vs 326)

- model digits and words agree (23)
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (366 vs 466)

- model digits and words agree (441)
- the keyed value satisfies voters + representatives = section 5; the model's breaks it (445 vs 501)

- model digits and words agree (6)
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (427 vs 421)

- model digits and words agree (344)
- the keyed value satisfies section 7 = TOTAL; the model's breaks it (344 vs 331)

- model digits and words agree (0)
- the keyed value satisfies section 7 = TOTAL; the model's breaks it (0 vs 527)

- model digits and words agree (11)
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (360 vs 349)

- model digits and words agree (422)
- the keyed value satisfies section 7 = TOTAL; the model's breaks it (422 vs 420)

- model digits 0 and words 1 disagree
- keyed as illegible; the model read a value

- model digits 0 and words 4 disagree
- keyed as illegible; the model read a value

- model digits 0 and words 1 disagree
- keyed as illegible; the model read a value

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model digits 67 and words 76 disagree
- keyed as illegible; the model read a value

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model saw the boxes blank or faint

- model digits 31 and words 431 disagree

- model read digits 601; no words read
- the keyed value satisfies section 7 = TOTAL; the model's breaks it (601 vs 326)

- model digits 0 and words 1 disagree

- model digits 0 and words 21 disagree

- model digits 8 and words 7 disagree

- model digits 183 and words 185 disagree

- model digits 202 and words 203 disagree

- model digits 21 and words 24 disagree

- model digits 321 and words 381 disagree

- model read digits 100; no words read
- the keyed value satisfies voters + representatives = section 5; the model's breaks it (438 vs 338)

- model digits 10 and words 2 disagree

- model digits 6 and words 0 disagree

- model digits 0 and words 1 disagree

- model digits 78 and words 18 disagree

- model digits 7 and words 1 disagree

- model digits 203 and words 213 disagree

- model digits 15 and words 0 disagree

- model digits 27 and words 20 disagree

- model digits 80 and words 0 disagree

- model digits 74 and words 14 disagree

- model digits 7 and words 1 disagree

- model digits 7 and words 1 disagree

- model digits 301 and words 361 disagree

- model read digits 96; no words read
- the keyed value satisfies voters + representatives = section 5; the model's breaks it (528 vs 438)

- model digits 110 and words 115 disagree

- model read digits 804; no words read
- the keyed value satisfies voters + representatives = section 5; the model's breaks it (1223 vs 423)

- model digits 7 and words 0 disagree

- model digits 7 and words 1 disagree

- model digits 336 and words 333 disagree

- model digits 376 and words 370 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (370 vs 376)
- the keyed value breaks section 7 = TOTAL (376 vs 370); the model's value satisfies it

- model digits 298 and words 208 disagree

- model digits 0 and words 1 disagree

- model digits 66 and words 0 disagree

- model digits 9 and words 2 disagree

- model read digits 0; no words read
- the keyed value satisfies voters + representatives = section 5; the model's breaks it (275 vs 285)

- model digits 9 and words 0 disagree

- model digits 1 and words 0 disagree

- model digits 5 and words 9 disagree

- model digits 3 and words 1 disagree

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- keyed 0 where the model saw an empty row (the blank = 0 convention)

- model digits 13 and words 15 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (324 vs 326)

- model digits 143 and words 93 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (311 vs 261)

- model digits 629 and words 29 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (987 vs 387)

- model digits 4 and words 1 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (477 vs 474)

- model digits 376 and words 370 disagree
- the keyed value satisfies section 5 = section 7; the model's breaks it (370 vs 376)

- model digits 90 and words 40 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (421 vs 371)

- model digits 282 and words 287 disagree
- the keyed value satisfies voters + representatives = section 5; the model's breaks it (285 vs 290)

- model digits 106 and words 100 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (419 vs 413)

- model digits 0 and words 6 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (462 vs 468)

- model digits 1 and words 4 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (344 vs 347)

- model digits 4 and words 1 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (296 vs 293)

- model digits 68 and words 58 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (430 vs 420)

- model digits 24 and words 27 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (304 vs 307)

- model digits 73 and words 13 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (423 vs 363)

- model digits 4 and words 2 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (212 vs 210)

- model digits 113 and words 413 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (413 vs 113)

- model digits 66 and words 6 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (309 vs 249)

- model digits 398 and words 388 disagree
- the keyed value satisfies voters + representatives = section 5; the model's breaks it (403 vs 393)

- model digits 1 and words 2 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (264 vs 265)

- model digits 94 and words 91 disagree
- the keyed value satisfies rows sum to TOTAL; the model's breaks it (310 vs 307)
ots verify sample_audit_root.txt.otspython -m twohands.verify_receipt receipt.json --crop crop.jpg.| Report content | 3338fe3f478b298ab78e3d275b296e7ff74c186831abb02297585c57ec1ef718 |
| Input: keyed file | b92be48e3c8a1fe3b9e6252a40667da48ca77019ee0abead4c7e041eb651d25d |
| Input: stored Gemma reads | 3a7b42b92cf5e0dcfa0e05b50eeaab65d48ce232237ab7635656fbf2a303d662 |
| Input: photo adjudication | eecc092f1ea0fa5017e47d5b898dd0c24a71dab8ceb1e51062da4033d0bd08f1 |
Crops are cut from masked pages only. Keyed data of the sample: INE PREP 2024, reused under INE's free-use terms (Libre-Uso-MX); an independent demonstration of clerical capture quality, not an official INE product.