Overview
The Document Parsing Protocol is a working draft 0.1 that LlamaIndex published on October 28, 2026, and it does something unusual: it defines an answer key for document parsing. Hand the same table to three parsers and you can get three outputs. One drops the year headers, one pushes quarters into the body, one invents a label the page never printed. Every parser read every word, and the meaning still does not line up.
DPP is the reference those outputs get graded against. Its 140 rules cover text, tables, forms, charts and diagrams, and each ships with an example page and the output it expects. The rules grew out of the internal instructions LlamaIndex gave annotators when labelling pages for ParseBench.
The rules land on specific decisions. Tables with two header rows use HTML rather than Markdown so colspan can preserve the spanning, blank fields become [blank], checkboxes stay [x] and [ ], charts turn into tables of their numbers with one row per category and one column per series, diagrams become Mermaid when that can hold every label and arrow and a description otherwise, text that never renders is omitted, and text that is visible but unreadable becomes [illegible].
Key Features
- 140 rules with examples: Each rule carries a sample page and the expected output, so contested calls can be checked against a page instead of argued in prose.
- Multi-row headers kept intact: Markdown cannot express a spanning header, so DPP uses HTML tables with colspan. If the page prints two header rows, the output has two, neither merged nor invented.
- Defined notation for blanks and unreadables: [blank] distinguishes a field that was empty from one the parser missed, [x] and [ ] preserve checkbox state, and [illegible] marks text that is visible but cannot be read.
- Charts and diagrams have routes: Charts become tables of numbers with printed values copied exactly. Diagrams become diagram code when Mermaid can hold every label and arrow, and a description that keeps every label when it cannot.
- Acceptable differences spelled out: Wrapping rows in thead and tbody carries the same information as leaving them out. Both conform as long as a document is consistent, and a review should accept either.
- Try it on your own page: parseprotocol.com shows each source page beside its expected output. A downloadable skill works in Claude, a reference file works in ChatGPT, and attaching a page image plus the prompt runs it.
Use Cases
- Accepting or rejecting parser output against one published standard.
- Annotation teams training and reviewing, using the rules as the written task definition.
- Aligning an in-house parser with external tools so downstream code needs fewer branches.
- Building a document parsing benchmark and testing whether the rules hold on your documents.
- Preprocessing financial reports and statements before an agent reads them, so headers stop being guesses.
- Structuring blanks and checkboxes in contracts, distinguishing empty from missed.
Pros
- All 140 rules come with example pages and expected output.
- Covers text, tables, forms, charts and diagrams.
- Preserves multi-row headers in HTML rather than inventing labels.
- Defines notation for blanks, checkboxes and unreadable text.
- States which differences are acceptable, so reviews do not fail on style.
- An online side-by-side plus installable skills let you test on your own pages.
Pricing
The rules are published openly and free to read or adopt. parseprotocol.com provides the side-by-side comparison and trial path, with a downloadable skill for Claude and a reference file for ChatGPT. The specification lives in the run-llama/document_parsing_protocol repository on GitHub, where issues and pull requests shape the draft.
Summary
Document parsing fails on judgement, not on reading. Three outputs can all be correct and still leave an agent guessing. DPP writes the judgement down and, more usefully, states which differences are acceptable, which a format specification alone would not settle. Version 0.1 is a draft and LlamaIndex is asking for counterexamples, so filing an issue where a rule breaks beats maintaining a private standard.
Version History
- LlamaIndex publishes Document Parsing Protocol 0.1 (2026-10-28): LlamaIndex published DPP 0.1, a working draft defining a shared answer key for document parsing with 140 rules across text, tables, forms, charts and diagrams, each with an example page and expected output. The rules derive from the ParseBench annotation standard: multi-row headers use HTML with colspan, blank fields become [blank], checkboxes stay [x] and [ ], charts become tables of numbers, diagrams become Mermaid when it can hold every label and description otherwise, and unreadable text becomes [illegible]. The specification is hosted at run-llama/document_parsing_protocol on GitHub, with side-by-side comparison and Claude and ChatGPT trial paths at parseprotocol.com.