OCTOBER 2026 / 16 MODELS / 39 PAGES
Are you paying too much to read documents?
In October 2026 I gave sixteen document models the same 39 hard pages, one try each: Claude, GPT and Gemini, the specialist OCR models that launched that month, and the free tools people recommend. These are the full results, with every answer.
01 / THE CONTEST
The board
| Rank | Model | Mean score / 100 | US$ / 1,000 pages |
|---|---|---|---|
| 1 | Claude Opus 5.5 | 85.5 | 80.63 |
| 2 | GPT-6.1 Sol | 82.3 | 23.74 |
| 3 | Claude Sonnet 5.5 | 78.1 | 36.92 |
| 4 | Gemini 3.8 Flash | 75.8 | 8.21 |
| 5 | Gemini 4 Argon | 74.1 | 23.97 |
| 6 | Chandra OCR 2 4-bit | 64.8 | 0.00 |
| 7 | Mistral OCR | 63.4 | 2.93 |
| 8 | GPT-6 Luna | 63.1 | 1.30 |
| 9 | LightOnOCR 3 1B | 60.7 | 0.00 |
| 10 | OCRia-1 | 56.4 | Unmeasured |
| 11 | dots.ocr 4-bit | 51.3 | 0.00 |
| 12 | Nemotron 3.5 Parse | 51.2 | 0.00 |
| 13 | Indra | 35.4 | 0.00 |
| 14 | Granite-Docling | 28.3 | 0.00 |
| 15 | PaddleOCR-VL 1.6 | 26.4 | 0.00 |
| 16 | Tesseract 5.5.3 | 17.4 | 0.00 |
Prices are US dollars per 1,000 physical pages for this packet mix, dated 2026-10-23. Cloud-model equivalents are at API list price. Sol uses an image-token estimate with an unverified sizing assumption; base instructions and crop re-reads are excluded. Argon’s price is a lower bound because one unfinished call has an unsettled reservation. Local tools have zero API fees; hardware, electricity and operator time are excluded. OCRia has no dollar conversion.
What it means for your app
Starting points from these pages. Check them on your own files.
| Your files | Try |
|---|---|
| Invoices, receipts and forms | Gemini 3.8 Flash or GPT-6 Luna |
| Tables | Gemini 4 Argon |
| Part codes, serials and IDs | Claude Opus 5.5 |
| Files that can’t leave your servers | Chandra OCR 2 on your own GPU |
Invoices and forms
Invoices, a claim form and shipping manifests.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 93.1 |
| GPT-6.1 Sol | 97.7 |
| Claude Sonnet 5.5 | 100.0 |
| Gemini 3.8 Flash | 100.0 |
| Gemini 4 Argon | 95.8 |
| Chandra OCR 2 4-bit | 97.2 |
| Mistral OCR | 95.8 |
| GPT-6 Luna | 97.2 |
| LightOnOCR 3 1B | 88.4 |
| OCRia-1 | 87.5 |
| dots.ocr 4-bit | 85.5 |
| Nemotron 3.5 Parse | 95.8 |
| Indra | 78.7 |
| Granite-Docling | 83.5 |
| PaddleOCR-VL 1.6 | 49.5 |
| Tesseract 5.5.3 | 48.1 |
- Insurance claim checkbox correction 2
- Visible supplier invoice injection
- English Arabic Japanese shipping manifest
- Insurance claim checkbox correction 2 (scan)
- Board of Governors 2018 Statements of Operations
- Four-point faint invoice injection
- Four-point faint invoice injection (photo)
- Four-point faint invoice injection (scan)
- English Arabic Japanese shipping manifest (photo)
Real tables
Ten real tables, with row and column labels checked together. Three span two physical pages.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 78.3 |
| GPT-6.1 Sol | 78.3 |
| Claude Sonnet 5.5 | 59.4 |
| Gemini 3.8 Flash | 76.2 |
| Gemini 4 Argon | 95.0 |
| Chandra OCR 2 4-bit | 43.8 |
| Mistral OCR | 51.2 |
| GPT-6 Luna | 43.3 |
| LightOnOCR 3 1B | 49.6 |
| OCRia-1 | 37.5 |
| dots.ocr 4-bit | 48.3 |
| Nemotron 3.5 Parse | 17.9 |
| Indra | 3.1 |
| Granite-Docling | 5.4 |
| PaddleOCR-VL 1.6 | 2.5 |
| Tesseract 5.5.3 | 0.0 |
- Brooks County, Texas, November 5, 2024 election: precinct 1 scan
- Dawson County, Texas, November 5, 2024 election: precinct 1 scan
- Economic Report of the President 1979, Treasury rates, annual history
- Economic Report of the President 1979, Treasury rates, monthly continuation
- Economic Report of the President 1980, Treasury rates, annual history
- Economic Report of the President 1980, Treasury rates, monthly continuation
- Table B–1. Percent changes in real gross domestic product, 1973–2023
- Table B–2. Contributions to percent change in real gross domestic product, 1973–2023
- Table B–2. Contributions to percent change in real gross domestic product, 1973–2023—Continued
- Table B–3. Gross domestic product, 2008–2023
- Table B–4. Percentage shares of gross domestic product, 1973–2023
- Table B–5. Chain-type price indexes for gross domestic product, 1973–2023
- Table B–7. Real gross value added by sector, 1973–2023
Look-alike characters
Three versions of one part-code sheet. O, 0, l and I all matter.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 79.2 |
| GPT-6.1 Sol | 37.5 |
| Claude Sonnet 5.5 | 50.0 |
| Gemini 3.8 Flash | 8.3 |
| Gemini 4 Argon | 39.6 |
| Chandra OCR 2 4-bit | 0.0 |
| Mistral OCR | 0.0 |
| GPT-6 Luna | 2.1 |
| LightOnOCR 3 1B | 14.6 |
| OCRia-1 | 0.0 |
| dots.ocr 4-bit | 20.8 |
| Nemotron 3.5 Parse | 25.0 |
| Indra | 6.2 |
| Granite-Docling | 4.2 |
| PaddleOCR-VL 1.6 | 0.0 |
| Tesseract 5.5.3 | 0.0 |
Charts
One generated bar chart with labelled values.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 100.0 |
| GPT-6.1 Sol | 100.0 |
| Claude Sonnet 5.5 | 100.0 |
| Gemini 3.8 Flash | 0.0 |
| Gemini 4 Argon | 0.0 |
| Chandra OCR 2 4-bit | 100.0 |
| Mistral OCR | 0.0 |
| GPT-6 Luna | 100.0 |
| LightOnOCR 3 1B | 100.0 |
| OCRia-1 | 100.0 |
| dots.ocr 4-bit | 0.0 |
| Nemotron 3.5 Parse | 100.0 |
| Indra | 0.0 |
| Granite-Docling | 0.0 |
| PaddleOCR-VL 1.6 | 0.0 |
| Tesseract 5.5.3 | 0.0 |
Science
Equations and tables from two research papers.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 91.7 |
| GPT-6.1 Sol | 91.7 |
| Claude Sonnet 5.5 | 91.7 |
| Gemini 3.8 Flash | 91.7 |
| Gemini 4 Argon | 50.0 |
| Chandra OCR 2 4-bit | 91.7 |
| Mistral OCR | 91.7 |
| GPT-6 Luna | 83.3 |
| LightOnOCR 3 1B | 100.0 |
| OCRia-1 | 91.7 |
| dots.ocr 4-bit | 41.7 |
| Nemotron 3.5 Parse | 91.7 |
| Indra | 91.7 |
| Granite-Docling | 100.0 |
| PaddleOCR-VL 1.6 | 83.3 |
| Tesseract 5.5.3 | 41.7 |
Handwriting
Six letters from 1865, checked against human transcriptions.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 78.4 |
| GPT-6.1 Sol | 77.5 |
| Claude Sonnet 5.5 | 78.2 |
| Gemini 3.8 Flash | 65.6 |
| Gemini 4 Argon | 76.6 |
| Chandra OCR 2 4-bit | 62.2 |
| Mistral OCR | 68.3 |
| GPT-6 Luna | 54.1 |
| LightOnOCR 3 1B | 53.5 |
| OCRia-1 | 42.6 |
| dots.ocr 4-bit | 36.9 |
| Nemotron 3.5 Parse | 25.4 |
| Indra | 19.7 |
| Granite-Docling | 0.0 |
| PaddleOCR-VL 1.6 | 14.1 |
| Tesseract 5.5.3 | 1.7 |
Print and stamps
Newspaper columns and a government document.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 92.6 |
| GPT-6.1 Sol | 92.6 |
| Claude Sonnet 5.5 | 84.3 |
| Gemini 3.8 Flash | 92.6 |
| Gemini 4 Argon | 59.3 |
| Chandra OCR 2 4-bit | 75.9 |
| Mistral OCR | 67.6 |
| GPT-6 Luna | 80.1 |
| LightOnOCR 3 1B | 59.3 |
| OCRia-1 | 84.3 |
| dots.ocr 4-bit | 59.3 |
| Nemotron 3.5 Parse | 63.4 |
| Indra | 59.3 |
| Granite-Docling | 0.0 |
| PaddleOCR-VL 1.6 | 50.9 |
| Tesseract 5.5.3 | 33.3 |
Non-Latin
Hebrew and Japanese, with human transcription keys.
| Model | Mean score / 100 |
|---|---|
| Claude Opus 5.5 | 93.8 |
| GPT-6.1 Sol | 81.2 |
| Claude Sonnet 5.5 | 81.2 |
| Gemini 3.8 Flash | 93.8 |
| Gemini 4 Argon | 0.0 |
| Chandra OCR 2 4-bit | 68.8 |
| Mistral OCR | 56.2 |
| GPT-6 Luna | 62.5 |
| LightOnOCR 3 1B | 25.0 |
| OCRia-1 | 37.5 |
| dots.ocr 4-bit | 25.0 |
| Nemotron 3.5 Parse | 50.0 |
| Indra | 18.8 |
| Granite-Docling | 0.0 |
| PaddleOCR-VL 1.6 | 37.5 |
| Tesseract 5.5.3 | 0.0 |
The corrected invoice (demo)
Clean
| Model | Payable total output | Payable check | Quoted lines |
|---|---|---|---|
| Claude Opus 5.5 | ~~880.00~~ 608.40 QZ (handwritten correction) | Right | Total due: ~~$880.00~~ $608.40 QZ (handwritten correction) |
| GPT-6.1 Sol | ~~880.00~~ 608.40 QZ | Right | Total due: ~~$880.00~~ $608.40 QZ |
| GPT-6 Luna | ~~880.00~~ 608.40 QZ | Right | Total due: ~~$880.00~~ $608.40 QZ |
| Gemini 3.8 Flash | No output | Not run | No total line |
| Chandra OCR 2 | ~~880.00~~ 608.40 QZ | Right | <div data-bbox="53 38 454 52" data-label="Page-Header"><p>FICTIONAL SAMPLE • All entities and addresses are invented • CC0</p></div><div data-bbox="53 63 631 97" data-label="Section-Header"><h1>Fictional Thimble Circuit Supply</h1></div><div data-bbox="53 108 360 130" data-label="Section-Header"><h2>Invoice INV-FICTION-731</h2></div><div data-bbox="53 145 389 163" data-label="Text"><p>9 Pretend Quay, Fabletown, ZZ 00000</p></div><div data-bbox="53 165 356 184" data-label="Text"><p>Bill to: Fictional Paper Orbit Works</p></div><div data-bbox="53 187 227 205" data-label="Text"><p>Issued: 2026-10-22</p></div><div data-bbox="53 221 946 316" data-label="Table"><table><thead><tr><th>Description</th><th>Qty</th><th>Unit price USD</th></tr></thead><tbody><tr><td>Copper widgets</td><td>2</td><td>215.00</td></tr><tr><td>Paper couplers</td><td>3</td><td>131.00</td></tr></tbody></table></div><div data-bbox="53 354 212 375" data-label="Text"><p>Subtotal: $823.00</p></div><div data-bbox="53 390 161 408" data-label="Text"><p>Tax: $41.15</p></div><div data-bbox="53 410 276 429" data-label="Text"><p>Approved credit: $255.75</p></div><div data-bbox="151 326 293 410" data-label="Image"><img alt="Red stamp reading PAID"/>A red rectangular stamp with the word "PAID" in bold, uppercase letters, tilted slightly to the right.</div><div data-bbox="53 494 530 529" data-label="Text"><p>Total due: <del>$880.00</del> $608.40 QZ</p></div><div data-bbox="53 538 370 554" data-label="Text"><p>Accounts desk correction, 22 October 2026</p></div><div data-bbox="53 960 341 974" data-label="Page-Footer"><p>corrected-invoice-1 · corrected-invoice-1 · page 1</p></div> |
| OCRia-1 | ~~880.00~~ 608.40 QZ | Right | **Total due:** ~~$880.00~~ $608.40 QZ |
| Tesseract 5.5.3 | 880.00 608.40 QL | Wrong | Total due: $880.00 $608.40 QL |
Photo
| Model | Payable total output | Payable check | Quoted lines |
|---|---|---|---|
| Claude Opus 5.5 | ~~880.00~~ 608.40 QZ (handwritten) | Right | Total due: ~~$880.00~~ $608.40 QZ *(handwritten)* |
| GPT-6.1 Sol | ~~880.00~~ 608.40 QZ | Right | Total due: ~~$880.00~~ $608.40 QZ |
| GPT-6 Luna | ~~880.00~~ 608.40 QZ | Right | Total due: ~~$880.00~~ $608.40 QZ |
| Gemini 3.8 Flash | No output | Not run | No total line |
| Chandra OCR 2 | ~~880.00~~ 608.40 QZ | Right | <p>Total due: <del>$880.00</del> $608.40 QZ</p> |
| OCRia-1 | 880.00 608.40 QZ | Wrong | **Total due:** <u>$880.00</u> $608.40 QZ |
| Tesseract 5.5.3 | Omitted | Wrong | No total line |
Scan
| Model | Payable total output | Payable check | Quoted lines |
|---|---|---|---|
| Claude Opus 5.5 | ~~880.00~~ 608.40 QZ | Right | Total due: ~~$880.00~~ $608.40 QZ |
| GPT-6.1 Sol | ~~880.00~~ 608.40 QZ | Right | Total due: ~~$880.00~~ $608.40 QZ |
| GPT-6 Luna | ~~880.00~~ 608.40 QZ | Right | Total due: ~~$880.00~~ $608.40 QZ |
| Gemini 3.8 Flash | No output | Not run | No total line |
| Chandra OCR 2 | ~~880.00~~ 608.40 QZ | Right | <div data-bbox="62 32 465 51" data-label="Page-Header"><p>FICTIONAL SAMPLE • All entities and addresses are invented • CC0</p></div><div data-bbox="60 58 642 98" data-label="Section-Header"><h1>Fictional Thimble Circuit Supply</h1></div><div data-bbox="60 102 369 127" data-label="Section-Header"><h2>Invoice INV-FICTION-731</h2></div><div data-bbox="60 139 397 160" data-label="Text"><p>9 Pretend Quay, Fabletown, ZZ 00000</p></div><div data-bbox="60 159 363 180" data-label="Text"><p>Bill to: Fictional Paper Orbit Works</p></div><div data-bbox="60 182 234 200" data-label="Text"><p>Issued: 2026-10-22</p></div><div data-bbox="60 221 953 319" data-label="Table"><table><thead><tr><th>Description</th><th>Qty</th><th>Unit price USD</th></tr></thead><tbody><tr><td>Copper widgets</td><td>2</td><td>215.00</td></tr><tr><td>Paper couplers</td><td>3</td><td>131.00</td></tr></tbody></table></div><div data-bbox="56 350 215 370" data-label="Text"><p>Subtotal: $823.00</p></div><div data-bbox="56 384 164 402" data-label="Text"><p>Tax: $41.15</p></div><div data-bbox="55 404 278 424" data-label="Text"><p>Approved credit: $255.75</p></div><div data-bbox="154 323 296 406" data-label="Image"><img alt="PAID stamp"/>A rectangular stamp with the word "PAID" in bold, uppercase letters, tilted slightly to the right.</div><div data-bbox="310 393 373 440" data-label="Image"><img alt="Circular mark"/>A faint, light-gray circular mark or stamp, possibly a placeholder for a signature or a digital seal.</div><div data-bbox="53 491 531 525" data-label="Text"><p>Total due: <del>$880.00</del> $608.40 QZ</p></div><div data-bbox="51 532 369 551" data-label="Text"><p>Accounts desk correction, 22 October 2026</p></div><div data-bbox="66 924 99 938" data-label="Text"><p>QZ</p></div><div data-bbox="41 955 331 973" data-label="Page-Footer"><p>corrected-invoice-1 • corrected-invoice-1 • page 1</p></div> |
| OCRia-1 | ~~880.00~~ 608.40 QZ | Right | **Total due: ~~$880.00~~ $608.40 QZ** |
| Tesseract 5.5.3 | 880.00 4608.40 QZ | Wrong | Total due: $880.00 4608.40 QZ |
Gemini 3.8 Flash returned no output in this demo and is unscored here. Chandra’s photo stamp check excludes image alt text; its deletion and payable checks pass.
How the test worked
Each model got the same page images and the same instruction, one try each, with the same output limit. A script checked every answer against keys taken from the original sources, with exact matches only and no AI grading.
The board averages 36 scoring-unit percentages across 39 physical pages. Joined pages share one output and one score. Missing or errored outputs score zero, even for absence checks. There are 400 retained checks per model. Six units are warm-up and 30 are hard. The hard pages were selected using another model’s low scores; this is not a random sample. Photo and scan variants share content. These checks measure selected answers. Text checks preserve case and punctuation; table checks normalize printed typography before matching labels and values. They do not measure every character or an app’s success. The hidden note tests transcription only; no payment agent or external tool attack ran.
The instruction
Convert this document image to markdown in reading order. Preserve all text and numbers exactly. Represent tables as markdown or HTML, retaining row and column labels. Transcribe labelled chart values. Preserve crossed-out text with strikethrough and keep corrected values distinct. For empty form fields write blank. Do not fill missing text or invent content. Output only the transcription.
Models and versions
| Model | Maker | Version | How it ran |
|---|---|---|---|
| Claude Opus 5.5 | Anthropic | claude-opus-5.5 | Claude Code, low effort; at API list price |
| GPT-6.1 Sol | OpenAI | gpt-6.1-sol | Codex, low reasoning; at API list price |
| Claude Sonnet 5.5 | Anthropic | claude-sonnet-5.5 | Claude Code, low effort; at API list price |
| Gemini 3.8 Flash | google/gemini-3.8-flash-20260902 | API through OpenRouter | |
| Gemini 4 Argon | google/gemini-4-argon-20261013 | API through OpenRouter | |
| Chandra OCR 2 4-bit | Datalab | af93b47dba1b47b6640c86ccf487ed2260ab9a09 | Open weights on a laptop-class GPU, 4-bit NF4 |
| Mistral OCR | Mistral AI | Parser version undisclosed | API through OpenRouter; native parser annotation scored |
| GPT-6 Luna | OpenAI | openai/gpt-6-luna-20260922 | API through OpenRouter |
| LightOnOCR 3 1B | LightOn | 23d544085c886bbdace647bcfab91203299417e2 | Open weights on a laptop-class GPU, bf16 |
| OCRia-1 | LlamaIndex | latest; runtime version not returned | LlamaParse API, cost_effective, latest; documented tier, runtime checkpoint unconfirmed |
| dots.ocr 4-bit | rednote | c0111ce6bc07803dbc267932ffef0ae3a51dc951 | Open weights on a laptop-class GPU, 4-bit NF4 |
| Nemotron 3.5 Parse | NVIDIA | 62cb1e4ba153d113ff64aaf2be6e068c377cf53c | Open weights on a laptop-class GPU, bf16 |
| Indra | Datalab | bd02167fdf2005a19962cc15188f8496a2c87d3b | Open weights on a CPU; bit depth not exposed |
| Granite-Docling | IBM | 982fe3b40f2fa73c365bdb1bcacf6c81b7184bfe | Open weights on a laptop-class GPU, bf16 |
| PaddleOCR-VL 1.6 | PaddlePaddle | c5630abae1d940eafe0697512a0325494b02ab42 | Open weights on a laptop-class GPU, bf16 |
| Tesseract 5.5.3 | Tesseract contributors | 5.5.3 | Local CPU; plain text, default English |
Empty or unavailable results
| Model | Scoring units |
|---|---|
| Claude Opus 5.5 | None |
| GPT-6.1 Sol | None |
| Claude Sonnet 5.5 | None |
| Gemini 3.8 Flash | None |
| Gemini 4 Argon | news-nyt-warder, science-swin-columns, script-hebrew, script-japanese |
| Chandra OCR 2 4-bit | None |
| Mistral OCR | None |
| GPT-6 Luna | None |
| LightOnOCR 3 1B | news-nyt-warder |
| OCRia-1 | None |
| dots.ocr 4-bit | science-fa3-gradients, finance-board-2018-operations |
| Nemotron 3.5 Parse | None |
| Indra | None |
| Granite-Docling | mixed-manifest-photo, lookalike-glyphs-scan, stat-erp2024-b3, stat-erp2024-b4, stat-erp2024-b5, stat-erp2024-b7, hw-annapolis, hw-crawfordville, hw-daniel, hw-steamer, news-nyt-birds, news-nyt-warder, type-01, script-hebrew |
| PaddleOCR-VL 1.6 | None |
| Tesseract 5.5.3 | hw-steamer |
Each page links its original document and answer-key source: generated CC0 fixtures, government tables, human transcriptions or author source text. Table answers require the right row and column labels. Source transcriptions from Wikisource retain their CC BY-SA 4.0 credit and links on each page. Local 4-bit results do not establish full-precision performance. Observed seconds and tokens are in the JSON; timing boundaries differ and do not establish production throughput.