Document Parsing, Measured in the Open.
Quality, speed, footprint and fees of PyMuPDF * against other document parsers. Every number on this page comes from an automated run of unmodified ParseBench on a pinned cloud instance; aggregates are ParseBench's own, and the fork holds the exact configuration, scripts and raw outputs.

Summary
Overall quality
Higher is betterTime to first document
Lower is betterInstall footprint
Lower is betterOverall quality is ParseBench's official score, averaged across its five categories. Time to first document is the median of three cold starts with models already downloaded. Install footprint reflects a clean virtual environment installed from CPU wheels, where an index choice exists.
How Document Parsers Perform with ParseBench
Document parsing suite by LlamaIndex: 2,078 documents scored across five categories (tables, charts, content faithfulness, semantic formatting, visual grounding), each engine run locally at its documented configuration.
Quality vs speed
ParseBench Overall against seconds per page (p50) on a single CPU core — up and to the left is faster and higher quality.
measured on the pinned runner · category tabs pair that category's own latency · Docling latency includes a localhost HTTP hop
Quality columns use ParseBench's own scoring, unmodified; PyMuPDF's category scores reproduce the published leaderboard values (tables, charts, formatting and visual grounding to the second decimal).
Latency is the pooled median over all documents' official per-document timings, measured in one session on the pinned instance; Docling runs through the official docling-serve API, so its latency includes a localhost HTTP hop and its scores are for the docling version measured here, running Docling's standard pipeline (on the same instance, docling 2.122 scores 67.1 on tables where the measured 2.124 scores 58.5, a regression between docling versions).
The cited Docling-models row is a different tier: the leaderboard measured it as a hosted VLM pipeline, which reads charts but loses formatting.
The run also measures PyMuPDF's plain text extraction as a speed baseline (0.006 s/page median); it is not a document-parsing configuration, so it is not listed as a product row, and its numbers stay in the raw run data. pypdf is absent from this run: its upstream ParseBench provider fails on the full dataset with a serialization error, which we have recorded and will report upstream.
Cold start is import plus first document in a fresh process with models on disk. Install is a clean venv without model caches. The fee column lists metered per-page charges only; "compute" means no metered fee. Italic rows are cited from the public ParseBench leaderboard, not re-run here.
Why Teams Choose PyMuPDF
Once you know what you're building, whether RAG pipelines, automation, or document workflows, the next question is what to build it on. PyMuPDF wins on install weight, speed, and ecosystem. See exactly how it stacks up against Docling.