Codesota · OCR · Power RankingThe condensed answer · who’s actually best on averageIssue: April 27, 2026
§ 00 · Premise

Which OCR model is best on average?

A single high score is easy to game — train on the test set, hand-tune one document type, publish a paper. Average performance across many benchmarks is harder to fake.

We rank every OCR model that placed on at least 2 of 9 public OCR benchmarks. Then — where we’ve verified the model ourselves — we show our own number next to the public consensus.

§ 01
Per-benchmark percentile

Within each benchmark we rank every model that has a score, then map the rank to a 0–100 percentile (top = 100). This neutralises that CER is lower-better while OmniDoc composite is higher-better — both end up on the same 0–100 axis.

§ 02
Average across coverage

Power score is the unweighted mean of a model's percentiles across the benchmarks where it has a score. We require a minimum of 2 benchmarks — one strong showing isn't enough.

§ 03
Our own column, when we have one

Where CodeSOTA has run its own eval (currently 2 of 29 ranked models), the right-most column shows that score. When the public consensus and our number disagree, that disagreement is the most useful thing on this page.

§ 01 · Ranking

The Power Ranking, 29 models.

Sorted by average percentile across the eight axes. Coverage column is load-bearing — a model on top with 2/8 is making a narrower claim than one on top with 6/8.

Pills below each model show per-benchmark percentile. Copper = top quartile (≥75), grey = middle, faded = bottom quartile.

#ModelPowerCoverageCodeSOTA verifiedPer-benchmark percentile
01Qwen2.5-VL-72B97.02 / 9not yetOCRBench EN 94OCRBench ZH 100
02PaddleOCR-VL81.33 / 9not yetOmniDoc 90OmniDoc 85olmOCR 69
03Gemini 2.5 Pro80.05 / 9not yetOmniDoc 54OCRBench EN 81OCRBench ZH 90MME-VideoOCR 100Thai-OCR 75
04Qianfan-OCR79.04 / 9not yetOmniDoc 95OCRBench EN 75OCRBench ZH 80olmOCR 66
05PaddleOCR-VL-1.578.02 / 9not yetOmniDoc 97olmOCR 59
06Intern-S1-Pro77.02 / 9not yetOCRBench EN 84OCRBench ZH 70
07Ovis2.5-9B75.02 / 9not yetOCRBench EN 100OCRBench ZH 50
08Falcon-OCR67.02 / 9not yetOmniDoc 62olmOCR 72
09Claude Sonnet 465.52 / 9not yetOCRBench EN 31Thai-OCR 100
10DeepSeek-OCR-261.52 / 9not yetOmniDoc 82olmOCR 41
11Gemini 1.5 Pro60.02 / 9not yetCC-OCR 100MME-VideoOCR 20
12minicpm-v-4.5-8b59.52 / 9not yetOCRBench EN 59OCRBench ZH 60
13GLM-OCR58.02 / 9not yetOmniDoc 100olmOCR 16
14dots.ocr 3B56.02 / 9not yetOmniDoc 56olmOCR 56
15GPT-4o52.04 / 9not yetOCRBench EN 72CC-OCR 25MME-VideoOCR 40KITAB 71
16sail-vl2-8b51.52 / 9not yetOCRBench EN 63OCRBench ZH 40
17MonkeyOCR-pro-3B49.02 / 9not yetOmniDoc 67olmOCR 31
18MinerU 2.547.73 / 9not yetOmniDoc 77olmOCR 47olmOCR 19
19GPT-4o Mini45.52 / 9not yetOCRBench EN 34KITAB 57
20claude-3.5-sonnet40.02 / 9not yetOCRBench EN 50OCRBench ZH 30
21Qwen2.5-VL 72B40.02 / 9not yetMME-VideoOCR 80Thai-OCR 0
22Mistral OCR 334.02 / 994.9 %Internal acc3.7 %CodeSOTA CER7.1 %CodeSOTA WEROmniDoc 18olmOCR 50
23DeepSeek-OCR33.02 / 9not yetOmniDoc 41olmOCR 25
24Qwen2-VL-72B33.02 / 9not yetOCRBench EN 56OCRBench ZH 10
25InternVL2.5-78B30.52 / 9not yetOCRBench EN 41OCRBench ZH 20
26gpt-4o-202426.52 / 9not yetOCRBench EN 53OCRBench ZH 0
27Qwen2.5-VL 32B25.02 / 9not yetMME-VideoOCR 0Thai-OCR 50
28olmOCR24.02 / 9not yetOmniDoc 26olmOCR 22
29mistral-ocr-25129.02 / 91.22 p/spages/sOmniDoc 15OCRBench EN 3
Tab 1 · Power score = mean of per-benchmark percentiles. Coverage gate ≥ 2. CodeSOTA-verified column shows our own numbers when we have run the model in-house.
§ 02 · Why a second column

Public benchmarks aren’t enough.

Three problems compound. One: popular OCR benchmarks (OmniDoc, OCRBench, olmOCR) are easy to overfit — six months after a paper ships, the test set is in the next training run. Two: they miss the document types that actually pay rent — Polish invoices, German handwritten medical forms, scanned legacy PDFs with deliberate redactions. Three: a vendor’s self-reported score is a marketing artefact until somebody else runs the same eval.

Our verified column closes the third gap. The first two we close with a hold-out architecture: methodology and sample items are public, the actual test set rotates quarterly and stays private — so even when our questions eventually leak into a training corpus, they’re no longer the questions we’re using.

Currently 2 of 29 models on this page have a CodeSOTA-verified score. Expanding that coverage is the work.

§ 03 · Request

Want a model verified against your docs?

If you’re evaluating OCR for production and a model on this list doesn’t have a CodeSOTA-verified score, tell us. We’ll prioritise what real practitioners are about to deploy over what arXiv published last week.