1. Mistral OCR 4's price premium doesn't buy quality. At $4/1,000 (2× OCR 3, 4× naktor-extractor), OCR 4 ties on text (0.090 vs 0.089), loses 15 TEDS points on tables and doubles the formula distance. Its real strengths are per-page API latency (2.2s p50) and the highest fidelity score from the second judge (83.6) — a fine product for interactive few-page flows; for bulk digitization its price can't be defended against the on-prem frontier.
2. The Unlimited-OCR case: the hype doesn't survive the harness. Baidu's launch claims state of the art on OmniDocBench. On our hard sample, using its official vLLM recipe, it loses to or ties with naktor-extractor on text, tables and formulas, winning clearly only on handwriting (0.22 vs 0.34) — real merit, far from «best at everything». Its architecture (3B MoE, constant KV) does make it cheap to self-host ($0.74/1,000).
3. Metrics lie too, unless audited: one artifact we almost published. OCR 3 looked better than OCR 4 on English (0.033 vs 0.073); 93% of the gap was ONE page —a table of contents OCR 4 rendered as a table while the GT annotates it as plain text; edit distance punishes the markup, not the reading. Without that page: a tie (0.034 vs 0.037). We publish it because a benchmark that hides its own false positives deserves no trust.
4. Serving is part of the model. PaddleOCR-VL goes from 0.197/TEDS 0.0 (bare VLM, generic prompt) to 0.066/TEDS 84.7 (official pipeline with layout + per-element prompts): the same checkpoint, 3× better text, and from unusable to second place on tables. Any comparison's numbers hinge on serving decisions that almost nobody documents.
5. The quality-price frontier is on-prem. No cloud API dominates naktor-extractor on quality-per-euro. And there is a second axis price doesn't capture: governance — everything sent to Mistral leaves your infrastructure, which for banking, healthcare or government can be a hard disqualifier before price is even discussed. naktor-extractor deploys on your infra, at $0.99/1,000, with top-table quality; and on documents with a native text layer (most of the real world) the cost drops much further — something this 100%-scanned corpus doesn't exercise.
6. (Post-benchmark) The benchmark audited us back. Analyzing page by page where we lost, the whole text gap concentrated in ~5 pages whose table titles, figure captions and sub-questions were missing from our markdown: they were extracted fine, but our rendering dropped them. Noise-free A/B re-render (same outputs, only the rendering changes): text 0.088 → 0.064 (Chinese −36%), reading order 0.176 → 0.152. The biggest return on building a reproducible benchmark was being able to audit our own product with it; the fix is committed with its tests.