Best OCR model in 2026: benchmarks, open-source picks and how to choose
What OmniDocBench and olmOCR-Bench say about the best OCR models, the best open-source OCR, why the benchmarks disagree, and how to test on your own files.
Updated
TL;DR
- On OmniDocBench v1.6, the top models score above 96; PaddleOCR-VL-1.6 scores 96.34 and GLM-OCR 95.22.
- On olmOCR-Bench, Chandra (83.1, self-reported) and olmOCR v0.4.0 (82.4) lead.
- The two boards disagree a lot, for example Mistral OCR is 85.66 on one and 72.0 on the other.
- Use benchmarks to shortlist, then test 30 to 50 of your own pages.
There is no single best OCR model. There is a best model for your documents, at your volume and price. Public benchmarks are the fastest way to build a shortlist, and two are worth knowing: OmniDocBench, where the top open models score above 95 out of 100, and olmOCR-Bench, which scores models with pass/fail checks. This post summarises both as of November 15, 2026, adds our own small tests, and gives a short procedure for picking a model.
The short answer
- Best open-source OCR models right now, by public benchmarks: PaddleOCR-VL, GLM-OCR, MinerU 2.5 and dots.ocr on OmniDocBench; Chandra, olmOCR and PaddleOCR-VL on olmOCR-Bench. All are document-parsing models that output Markdown, tables and formulas, not just text.
- Best for clean, printed text on a CPU with no GPU: Tesseract is still fine. It read every word of our printed invoice. It is not fine for handwriting or small text.
- Best for your own documents: run 30 to 50 of your own pages through three or four models from the shortlist and compare. Benchmarks rank on their documents, not yours.
OCR benchmarks you should know
OmniDocBench
OmniDocBench is a document parsing benchmark from OpenDataLab. According to its README it has 1,651 PDF pages across 10 document types (including academic papers, financial reports, newspapers, textbooks and handwritten notes), with 5 layout types and 5 language types. It scores text, tables, formulas and reading order with metrics such as normalised edit distance and TEDS (a tree-based table similarity score).
Selected rows from its end-to-end leaderboard (v1.6_full, Overall, higher is better), as shown on November 15, 2026. The README's latest update was dated November 12, 2026, and the board has 38 entries.
| Model | Overall |
|---|---|
| OXR-1.0 | 97.03 |
| TeleOCR | 96.91 |
| PaddleOCR-VL-1.6 | 96.34 |
| MinerU2.5-Pro | 95.75 |
| GLM-OCR | 95.22 |
| PaddleOCR-VL | 94.18 |
| MinerU-2.5 | 93.04 |
| Gemini 3 Pro | 92.91 |
| dots.ocr | 90.77 |
| DeepSeek-OCR 2 | 90.25 |
| Qwen3-VL-235B | 89.78 |
| GPT-5.2 | 86.59 |
| Mistral OCR | 85.66 |
| Marker | 78.44 |
Two things stand out. Specialised document models, many of them open-weight, are at or above general frontier models such as Gemini 3 Pro and GPT-5.2 on this benchmark. And the top of the board is crowded: many models sit within a few points of each other, so small differences there say little about your documents.
olmOCR-Bench
olmOCR-Bench comes from the Allen Institute for AI, the team behind olmOCR. Instead of comparing output to a reference text, it runs simple machine-checkable tests on single PDF pages: is this sentence present, is the header removed, are these paragraphs in the right order, does this table cell have the right neighbours, does this formula render. Pages cover arXiv math, old scans, tables, headers and footers, multi-column layouts and long tiny text.
Overall scores from its README, November 15, 2026. An asterisk means the score was reported by the model's authors rather than reproduced by the olmOCR team.
| Model | Overall |
|---|---|
| Chandra OCR 0.1.0* | 83.1 ± 0.9 |
| Infinity-Parser 7B* | 82.5 |
| olmOCR v0.4.0 | 82.4 ± 1.1 |
| PaddleOCR-VL* | 80.0 ± 1.0 |
| Marker 1.10.1 | 76.1 ± 1.1 |
| DeepSeek-OCR | 75.7 ± 1.0 |
| MinerU 2.5.4* | 75.2 ± 1.1 |
| Mistral OCR API | 72.0 ± 1.1 |
| Nanonets-OCR2-3B | 69.5 ± 1.1 |
Why the two boards disagree
Mistral OCR is 85.66 on one and 72.0 on the other; Marker is near the bottom of one list and mid-table on the other. That is normal:
- Different documents. Each benchmark picks its own pages. Old scans and tiny text punish different models than clean financial reports do.
- Different scoring. Edit distance rewards output that looks like the reference; unit tests reward specific facts being present. A model that formats tables differently can lose on one and not the other.
- Different versions. "PaddleOCR-VL" appears three times on OmniDocBench (94.18, 94.93 and 96.34) because versions differ. When a host says it runs a model, check which version.
- Self-reported scores. Some rows are submitted by the model's authors. They are useful, but they are not independent.
A benchmark is also a target. Once a benchmark matters, model teams train against it. Treat scores as a filter for your shortlist, not as the answer.
The best open-source OCR models
Open-weight models you can run yourself, with the licences we have checked for our catalogue:
| Model | What it is | Licence | Benchmarks above |
|---|---|---|---|
| PaddleOCR-VL | Baidu's document parsing vision-language model | Apache-2.0 | OmniDocBench 94.18 to 96.34 by version; olmOCR-Bench 80.0* |
| GLM-OCR | Z.ai's document OCR model | MIT | OmniDocBench 95.22 |
| MinerU | OpenDataLab's parsing toolkit and model | Check the repo | OmniDocBench 93.04 (2.5); olmOCR-Bench 75.2* |
| dots.ocr | rednote's multilingual document parser | MIT | OmniDocBench 90.77 |
| DeepSeek-OCR | DeepSeek's compressed-vision OCR model | MIT | olmOCR-Bench 75.7; version 2 is 90.25 on OmniDocBench |
| olmOCR | Allen AI's PDF-to-text model | Apache-2.0 | olmOCR-Bench 82.4 |
| Chandra | Datalab's OCR model | Check the repo | olmOCR-Bench 83.1* |
| Tesseract | Classic open-source engine, runs on CPU | Apache-2.0 | Not on either board |
Most of the vision-language models above need a GPU to run at a useful speed. If you do not want to host one, the same models are available by API; we list per-page prices on each model page.
What our own tests show
We do not run a full benchmark. We do run small tests through our API and publish them with the files, so you can repeat them. On November 14 and 15, 2026:
- Printed invoice, line-item table (details): Mistral OCR, GLM-OCR, PaddleOCR-VL, Jina OCR and Azure Document Intelligence returned the line items as a table. Google Document AI, AWS Textract and Tesseract returned them as plain text.
- Scanned table, 25 cells (details): the same five models returned all 25 cells correctly as a table block.
- Handwritten note (details): Jina OCR 98.9% word accuracy, Mistral OCR 96.8%, GLM-OCR 92.6%, PaddleOCR-VL 89.4%, AWS Textract 85.1%, Azure 84.0%, Google Document AI 76.6%, Tesseract 6.4%.
- Invoice shrunk to 333 x 253 pixels (details): Tesseract read 6.9% of the words; the other seven models read 89.7% to 100%.
These are one file each. They are good at showing which models fail in a category (Tesseract on handwriting, some models on table structure) and bad at ranking the models that pass.
How to pick an OCR model in an afternoon
- Collect 30 to 50 real pages, weighted toward your hardest ones: phone photos, handwriting, long tables, small print, other languages.
- Write down what "correct" means. Exact text? A table with the right cells? Five fields from an invoice? Score that, not a general accuracy number.
- Shortlist three or four models: two strong benchmark performers, one cheap model, and the one you use today.
- Run them all on the same pages. With OCRRouter that is one request shape with a different
modelstring, so a loop over model IDs is enough. The playground does the same in the browser. - Compare cost at your volume. A model that is 2 points better at 10 times the price may not be worth it. Our cheapest OCR page sorts models by price.
- Keep a fallback. Every model fails sometimes: timeouts, rate limits, an upstream outage. A second model in the
fallbackslist keeps your pipeline running.
Comparing two specific models
If you already have two candidates, our comparison pages put them side by side, for example PaddleOCR-VL vs Tesseract, Textract vs Tesseract and MinerU vs Docling. The full model list shows prices and capabilities for every model we route to.