A Dark Vector Cognition product
Benchmark

PDF to Markdown benchmark: pdfmd vs Marker vs Docling vs PyMuPDF

Compare published prices per 1,000 pages, then inspect a separate local conversion benchmark. Prices are each vendor's published rate, checked October 4, 2026. Quality and speed come from six public domain PDFs run through each engine on one machine and scored by a script, shown as percentages. The reference tables were checked cell by cell by an AI model, not yet by a person.

Published service prices and local conversion results are separate comparisons. The hosted services were not tested. Their quality and speed cannot be inferred from the local engine results below.

The market, per 1,000 pages

ServiceModeOutputPriceAt volumepdfmd costs
pdfmd.devStarter planMarkdown$0.89$0.75 Pro plann/a
MathpixFiles API (batch)Markdown$1.50$1.00 over 30M pages a month41% less
MistralOCR 4.1, Batch APIMarkdown$2.00none published55% less
LlamaParseCost-effectiveMarkdown$3.75none published76% less
AWS TextractLayoutJSON$4.00$3.00 over 1M pages a month78% less
Datalab (hosted Marker)Fast or balancedMarkdown$4.00$3.00 if you let them retain data78% less
IBM (hosted Docling)Pay as you goMarkdown$4.00none published78% less
MistralOCR 4.1Markdown$4.00none published78% less
Mathpixv3/pdfMarkdown$5.00$3.50 over 1M pages a month82% less
NutrientVision, Starter planMarkdown$5.80$2.49 Pro plan billed yearly, 100,000 pages a month85% less
Azure Document IntelligenceLayoutMarkdown$10.00$8.00 500K pages a month commitment91% less
Datalab (hosted Marker)AccurateMarkdown$10.00$7.50 if you let them retain data91% less
Google Document AILayout ParserLayout blocks$10.00$8.00 3-year savings plan91% less
Reductor-1 ParseMarkdown$10.00$8.00 batch queue, 12-hour completion91% less
TextInxParse, ParseMarkdown or JSON$10.00none published91% less
UpstageDocument Parse, StandardMarkdown or HTML$10.00none published91% less
LlamaParseAgenticMarkdown$12.50none published93% less
AWS TextractTables and LayoutJSON$15.00$10.00 over 1M pages a month94% less
UnstructuredAll strategiesJSON elements$15.00none published94% less

Published pay-as-you-go prices in US dollars per 1,000 pages, read from each vendor's own pricing page or docs. US regions. A volume price needs the stated monthly volume, commitment or option. pdfmd is priced by monthly plan, so its rate per 1,000 pages assumes the plan's pages are used; the Starter rate is a launch price for a limited time. Left out: Text-only OCR (Azure Read, Google Enterprise Document OCR, AWS Textract DetectDocumentText, Upstage Document OCR) and LlamaParse Fast: they return text without tables or headings, so they are not comparable. LandingAI ADE: the price depends on how many characters come out, so there is no per-page price to compare. Adobe PDF Extract: no paid price is published. Nutrient Standard mode: free, so it has no per-page price. Nutrient's pay-as-you-go rate is per credit, and its pricing page does not say how many credits a Vision page uses, so the Vision row uses the Starter plan rate ($29 a month for 5,000 pages).

Where pdfmd loses

Quality, every engine

These results cover six public domain PDFs and three selected tables. They measure local conversions, not hosted API performance or general accuracy. The comparison engines used their default settings.

EngineOrdered table-cell recallWhole-text ordered recallHeadings keptSpeed vs pdfmd
pdfmd.dev95.2% (138/145)97.9%98.1% (101/103)100%
Marker57.2% (83/145)84.8%94.2% (97/103)6%
Docling86.2% (125/145)99.3%99.0% (102/103)3%
Plain PyMuPDF text0.0% (0/145)100.0%0.0% (0/103)3,076%

Plain PyMuPDF writes text, not Markdown, so it has no tables or headings by construction: it is here as the floor, and its whole-text recall shows the text itself survives. Neither recall measure checks that a value sits in the right column; see Method.

Tables

TableCellspdfmd.devMarkerDoclingPlain PyMuPDF text
Salient Statistics, United States (lithium)
page 1. Five year columns, withheld values written as W, a two line row label, and a > prefix on percentages.
4895.8% (46)100.0% (48)91.7% (44)0.0% (0)
Table 5: Page-level latencies for document indexing
page 19. A spanning header over three columns and a bold, rule-separated header block in a LaTeX paper.
2592.0% (23)68.0% (17)80.0% (20)0.0% (0)
Table A-15. Alternative measures of labor underutilization
page 27. Two level column header, nine data columns, and row labels wrapped over up to six lines with dot leaders.
7295.8% (69)25.0% (18)84.7% (61)0.0% (0)

Headings

Scored on the three documents whose PDF outline lists real section headings: SEC Form 10-K, general instructions and form; ColPali: Efficient Document Retrieval with Vision Language Models (arXiv 2407.01449v6); NIST AI 100-1, Artificial Intelligence Risk Management Framework (AI RMF 1.0).

Enginesec-form-10kcolpalinist-ai-rmfWords run togetherMissed, first few
pdfmd.dev39/4132/3230/300Item 1B. Unresolved Staff Comments.; Item 7. Management’s Discussion and Analysis of Financial Condition and Results of Operations.
Marker36/4132/3229/300C. Preparation of Report; D. Signature and Filing of Report; E. Disclosure With Respect to Foreign Subsidiaries
Docling40/4132/3230/3014Part I
Plain PyMuPDF text0/410/320/300Form 10-K, ANNUAL Report Pursuant to Section 13 or 15(d) of the Securities Exchange Act of 1934; General Instructions; A. Rule as to Use of Form 10-K

Method

Ground truth

Reference table values received an automated check against the source documents. This is not independent human validation. Human sign-off: pending.

Documents

Test conditions

The tests used one Apple M5 Pro machine with 18 CPU cores and 48 GB of memory. Other tasks were active during the timed runs. The engines ran sequentially, so background load could vary between runs. Speed ratios are specific to this test and are not a service latency guarantee. This benchmark covers PDFs with a text layer; it does not establish scanned-document OCR quality.

See also the tables guide and the API docs.