Text
Correct: Every word is there, spelled as printed, with every accent.
Typical error: “Müller” comes out as “Muller.”
Season 1 · Updated 5 November 2026
Invoices, statements, and reports often run for many pages. WholeDoc Bench scores every document from the first page to the last, so a table or a paragraph that continues on the next page must come out in one piece. It also tests scans, charts, barcodes, and the position of every item on the page.
Accuracy and cost
Each point is one way to run a parser, placed by its score and its price per page. The line marks the best score you can get for each budget. For every point below the line, another option scores higher for the same price or less.
Leaderboard
13 parsers, run 19 ways, scored on whole documents from the first page to the last. The test is built around what breaks parsers in real work: tables that run across pages, scans, charts, and barcodes. The main test set stays private.
Where parsers fail
One table, five pages
Bank statement
One header, not four
Export invoice
Three traps, kept as printed
Delivery note
Two page breaks
Scanned report
What counts as correct
A typical error
Correct: Every word is there, spelled as printed, with every accent.
Typical error: “Müller” comes out as “Muller.”
Correct: The text comes out in the order a person reads it.
Typical error: Two columns are mixed line by line.
Correct: Headings, paragraphs, captions, footnotes, and bold text stay as they are.
Typical error: A paragraph that runs onto the next page is cut in two.
Correct: Each cell is in the right row and column, even when the table continues on the next page.
Typical error: A table that runs across five pages comes back in five pieces.
Correct: The parser reads the content of each barcode.
Typical error: A code is skipped, or one character is wrong.
Correct: The chart becomes the right data points, series, chart type, and title.
Typical error: The parser invents values that aren’t in the chart.
Correct: Each item, and each table cell, has the right box on the page.
Typical error: A parser draws one box around the whole page.
The set has 480 documents with 633 pages: bank statements, invoices, delivery notes, reports, and more. They include born-digital and scanned documents in more than 30 languages. A sample of 10 documents is public. The main test set stays private to reduce the risk of benchmark contamination or overfitting.
For real documents, three AI models from OpenAI, Anthropic, and Google read each page, and a value goes in only when at least two of them agree. A person resolves every disagreement, corrects the draft, and approves it. For generated documents, the key comes from the generator.
Written rules decide every score, and code applies them the same way to every parser.
Nutrient runs through its public API — the same one our customers use. AI models run at medium and high effort, one page per request, with our layout prompt. Every setting for every parser is in the repository.
Season 1 is a snapshot. Some areas are still hard.
The code and a sample of the test documents are public. Run the benchmark on the sample, or score your own parser on it. The leaderboard scores come from the full set.
Parse your own documents with the same API we tested and get back the text, the tables, the charts, and the position of every item. Agentic mode, the top score here, costs 1.8¢ per page.
Run it on the public sample. The code supports 13 parsers out of the box.
Bring your parser’s output files for the sample documents. The code checks them, scores them, and adds your row to your own report, marked as imported. The official leaderboard ranks only runs the benchmark made itself.
Does your parser deserve a better setting? Open a pull request with the setting, and we’ll run it again.
Retrieved: 3 November 2026
View sourceRetrieved: 3 November 2026
View sourceThe Nutrient Data Extraction team built WholeDoc Bench. Parse, which tests how well parsers read documents, is its first track. Nutrient’s own parser is one of the parsers we test.
You don’t have to. The code, the settings, and a sample of the test documents are public, so you can see how every score is made and run the benchmark yourself on the sample. The main test set stays private to reduce the risk of benchmark contamination or overfitting.
The benchmark covers 13 parsers in 19 settings: document APIs, frontier labs’ models, and open source tools. The leaderboard lists all of them.
We update it with each new season. Each season adds documents and tests. When a vendor sends a better setting, we run that parser again and date the new result.
Yes. Run the benchmark on your parser’s output for the sample documents, and you get your own report, with your row marked as imported. For the official leaderboard, the benchmark has to run the parser itself, so open a pull request that adds an adapter and a configuration.