Benchmark data

Document extraction benchmarks

We preserve the original 27-model benchmark as the baseline and add ten newer models to the same table. Compare quality, cost, speed, run date, and evidence status; document-processing engines remain separate.

LLM benchmark

Which model extracts best - and at what cost

March-August 2026 - 37 models, 4 document types, one table

Key findings

The original 27-model comparison remains intact as the baseline; ten newer routes extend it instead of replacing it.

Gemma 4 31B leads the latest audited cohort at 94.4% quality, while several historical models remain above that score.

Muse Glimmer 30B completed all four cases at 89.4%; Qwen3.6 27B reached 92.5% across three valid cases, with B4 left unscored.

Model quality, latency, and cost vary independently, so routing decisions should be based on representative documents rather than one aggregate rank.

B1

CRM CSV

5 rows

B2

Financial CSV

332 rows

B3

Scanned invoice

OCR + tables

B4

Investor table

32 rows

Model / routeB1B2B3B4ValidQualityValid timeEst. costRunEvidence
GPT-4.1 minigpt-4.1-mini100%90%100%100%4 / 497.5%994s$0.0902026-03-14Historical
Gemini 3.1 Flashgemini-3.1-flash100%90%100%100%4 / 497.5%579s$0.0342026-03-14Historical
DeepSeek V3openrouter/deepseek-v3100%90%100%100%4 / 497.5%217s~$0.102026-03-14Historical
Gemma 4 31Bgoogle/gemma-4-31b-it100%90%87.5%100%4 / 494.4%761.83s$0.0289982026-08-14Audited
Step 3.5 Flashopenrouter/step-3.5-flash100%90%87.5%100%4 / 494.4%171sFree2026-03-14Historical
DeepSeek V3 Freeopenrouter/deepseek-v3-free100%90%87.5%100%4 / 494.4%182sFree2026-03-14Historical
Kimi K2.5openrouter/kimi-k2.5100%90%87.5%100%4 / 494.4%212sNot recorded2026-03-14Historical
MiMo V2 Flashopenrouter/mimo-v2-flash100%90%87.5%100%4 / 494.4%221sNot recorded2026-03-14Historical
GLM 5openrouter/glm-5100%90%87.5%100%4 / 494.4%246sNot recorded2026-03-14Historical
Arcee Trinityopenrouter/arcee-trinity100%90%87.5%100%4 / 494.4%259sFree2026-03-14Historical
Kimi K2 (Groq)groq/kimi-k2100%90%87.5%100%4 / 494.4%270s$0.0392026-03-14Historical
Qwen3 235Bopenrouter/qwen3-235b100%90%87.5%100%4 / 494.4%325s~$0.082026-03-14Historical
Grok 4.1 Fastopenrouter/grok-4.1-fast100%90%87.5%100%4 / 494.4%343sNot recorded2026-03-14Historical
MiniMax M2.5openrouter/minimax-m2.5100%90%87.5%100%4 / 494.4%350sNot recorded2026-03-14Historical
Claude Sonnet 4.6openrouter/claude-sonnet-4-6100%90%87.5%100%4 / 494.4%560s~$1.102026-03-14Historical
GPT-5.4gpt-5.4100%90%100%80%4 / 492.5%495s$0.7152026-03-14Historical
Qwen3.6 27Bqwen/qwen3.6-27b100%90%87.5%Unscored3 / 492.5%*707.40s$0.0406072026-08-14Partial
GPT-5.6 Terraopenai/gpt-5.6-terra100%90%87.5%80%4 / 489.4%102.19s$0.2265982026-08-14Audited
Muse Spark 1.2meta/muse-spark-1.2100%90%87.5%80%4 / 489.4%115.53s$0.2479492026-08-14Audited
GLM 5.2z-ai/glm-5.2100%90%87.5%80%4 / 489.4%207.88s$0.1359882026-08-14Audited
Gemini 3.7 Flashgoogle/gemini-3.7-flash100%90%87.5%80%4 / 489.4%260.51s$0.1509342026-08-14Audited
Muse Glimmer 30Bmeta/muse-glimmer-30b100%90%87.5%80%4 / 489.4%271.41s$0.0809122026-08-14Audited
Mistral Largeopenrouter/mistral-large100%90%87.5%80%4 / 489.4%284s~$0.502026-03-14Historical
GPT-4.1 Nanogpt-4.1-nano100%90%87.5%80%4 / 489.4%372s$0.0232026-03-14Historical
Gemini 3.6 Flashgoogle/gemini-3.6-flash100%90%87.5%80%4 / 489.4%433.51s$0.3188942026-08-14Audited
Llama 4 Scout (Groq)groq/llama-4-scout100%90%87.5%73%4 / 487.6%210s$0.0092026-03-14Historical
Llama 3.1 8B (Groq)groq/llama-3.1-8b100%90%87.5%73%4 / 487.6%226sFree tier2026-03-14Historical
Llama 3.3 70B (Groq)groq/llama-3.3-70b100%90%87.5%73%4 / 487.6%289s$0.0222026-03-14Historical
Qwen3 32B (Groq)groq/qwen3-32b100%90%87.5%73% flaky3 / 4 stable87.6%*315sFree tier2026-03-14Partial
GPT-4.1gpt-4.1100%90%100%60%4 / 487.5%348s$0.4582026-03-14Historical
GPT-5.3 Codexgpt-5.3-codex100%90%100%60%4 / 487.5%462s$0.7212026-03-14Historical
GPT-5 Minigpt-5-mini100%90%100%60%4 / 487.5%792s$0.1062026-03-14Historical
Claude Sonnet 5anthropic/claude-sonnet-5100%90%87.5%60%4 / 484.4%398.53s$0.7842922026-08-14Audited
Llama 4 Maverick (Groq)groq/llama-4-maverick100%90%87.5%60%4 / 484.4%225sFree tier2026-03-14Historical
GPT OSS 120B (Groq)groq/gpt-oss-120b100%90%87.5%60%4 / 484.4%358s$0.0132026-03-14Historical
GPT OSS 20B (Groq)groq/gpt-oss-20b100%90%87.5%60%4 / 484.4%407s$0.0142026-03-14Historical
DeepSeek V4 Flashdeepseek/deepseek-v4-flash-0731100%Unscored87.5%60%3 / 482.5%*237.53s$0.0036182026-08-14Partial

* Quality is averaged across valid cases. Unscored or flaky cases remain labeled and are not converted to zero.

Methodology

The original 27 models were tested on four document-extraction cases in March 2026. Ten models from the August 2026 cohort use the same B1-B4 columns and add strict runtime identity evidence. Run dates and evidence labels preserve the distinction between historical and audited results.

No single model is optimal for every document. Use the unified table as a shortlist, then benchmark candidate routes on your own document mix.

A note on comparability: All rows share the B1-B4 display schema. Historical and current cohorts retain their original run date and evidence status; document-processing engines are evaluated separately because they measure a different pipeline layer.

Engine benchmark

Document-processing engine comparison

April 2026 - 10 local engines measured, 19 engines rated

The engine layer sits below the LLM: it converts raw files to text before extraction begins. Engine choice affects OCR quality, table structure, multi-language coverage, and cost. This comparison covers 19 engines across local and cloud deployment.

Ratings reflect general tendencies, not absolute scores. Your results will vary based on document quality, language, layout complexity, and hardware. Test on your own data with the docfold compare command.

Rating scale: Excellent / Good / Basic / Not supported

EngineTypeLicenseOCRTablesMulti-langSpeedCost
DoclingLocalMIT★★☆★★★★★★MediumFree
MinerULocalAGPL-3.0★★★★★★★★☆SlowFree
Chandra OCR 2Local / VLMOpenRAIL-M★★★★★★★★★SlowFree*
MarkerSaaSPaid★★★★★★★★★Fast~$1/1K pages
PyMuPDFLocalAGPL-3.0None★☆☆★★★Ultra-fastFree
PaddleOCRLocalApache-2.0★★★★★☆★★★MediumFree
TesseractLocalApache-2.0★★☆★☆☆★★★MediumFree
EasyOCRLocalApache-2.0★★★None★★★MediumFree
UnstructuredLocal / SaaSApache-2.0★★☆★★☆★★☆MediumFree / Paid API
LlamaParseSaaSPaid★★★★★★★★☆Fast~$3/1K pages
LiteParseLocalApache-2.0★★☆★★☆★★☆FastFree
Mistral OCRSaaSPaid★★★★★★★★★Fast~$1/1K pages
ZeroxVLMMIT★★★★★☆★★★SlowVLM API cost
NougatLocalMIT★★☆★★☆★☆☆SlowFree
SuryaLocalGPL-3.0★★★★★☆★★★MediumFree
AWS TextractSaaSPaid★★★★★★★★☆Fast~$1.50/1K pages
Google Document AISaaSPaid★★★★★★★★★Fast~$1.50/1K pages
Azure Document IntelligenceSaaSPaid★★★★★★★★★Fast~$1.50/1K pages
FirecrawlSaaSPaid★★☆★★☆★★★Fast~$1/1K pages

Measured results (10 local engines, CPU)

Benchmarked on 2026-04-05 using synthetic PDF documents with known ground truth. All engines ran on CPU; no GPU. Times include model loading on first document.

EngineAvg timeAvg CERAvg WERNotes
PyMuPDF4 ms0.0000.000Perfect on digital PDFs. No OCR capability.
Unstructured597 ms0.0360.135Fast hybrid engine. Higher error on formatting.
Tesseract1,190 ms0.0000.000Perfect on clean digital PDFs. 100+ languages.
PaddleOCR1,617 ms0.0020.013Near-perfect accuracy. Best OCR at this speed.
Docling2,601 ms0.0170.041Best accuracy-speed tradeoff among ML engines.
MinerU18,305 ms0.0120.080Good CER among ML engines. Slow on CPU.
Surya32,959 ms0.0140.027Lowest WER among ML engines. Slow on CPU.
Marker Local39,091 ms0.0190.094Full document conversion with layout analysis.
EasyOCR30,311 ms0.0000.000Perfect on single-page. Hangs on multi-page CPU.
Nougat127,380 ms1.0001.000Designed for academic papers only. Wrong domain for simple text.

CER = Character Error Rate. WER = Word Error Rate. Lower is better. 0.000 = perfect match.

Key takeaways

PyMuPDF is unmatched for digital PDFs: perfect accuracy at 4 ms average. Use it as the first-pass engine for text-layer documents.

PaddleOCR is the strongest OCR engine at this speed tier: 0.002 CER at 1.6 s on CPU.

Docling offers the best balance of speed and accuracy among ML-powered engines.

ML engines (Surya, Marker, MinerU) are designed for GPU and can be 5-20x faster with CUDA. CPU times shown here are worst-case.

Nougat is purpose-built for arXiv academic papers. It produces empty output on ordinary documents - not a defect, just wrong domain.

Test on your own data:docfold on GitHub

Bring your documents. We will find the right stack for them.

Book a 15-min discovery call. We will map extraction quality, cost, and data-residency requirements for your workload.