Use a fixed document set
Each run uses a fixed document set before scoring starts. Documents are tagged by file type, language, length, and layout challenge.
We use a fixed set of real inputs, ask every system for the same output, and score the results against answers we checked by hand. Every number on this site can be traced back to a document, a raw output, and a scoring decision you can look at yourself.
The protocol is designed so a ranking can be inspected rather than accepted on trust.
Each run uses a fixed document set before scoring starts. Documents are tagged by file type, language, length, and layout challenge.
Every system receives the same target fields, nested structures, array requirements, and extraction instructions for a task.
Each tool output is stored before normalization so errors can be inspected later.
Published rankings are dated and versioned. Later system changes produce a new run, not a silent overwrite.
Overall scores are broken into slices so buyers can compare the documents closest to their workflow.
A configuration enters the current ranking only after it has a score for every document in the run.
The benchmark leaderboard is accuracy only. Cost, speed and product features never move a system's rank in it. Those things live in a separate scorecard on the rankings page and in each review, where we score them ourselves against published facts, with fixed weights and a written reason for every number.
Each public score traces to the source document, schema, expected output, raw tool output, and open scoring code. Open any document alongside its answer key and every system's extraction in the data explorer, or download the replication kit and re-run the scorer to reproduce the numbers yourself.
Each tool is judged against the same documents, schema, field definitions, and expected answer set.
Published rows point back to per-document output, expected values, and the scoring decision.
Scores are attached to a dated run so later product changes can be compared without rewriting history.
A useful review shows whether an error came from a missing value, wrong row, invalid schema, or unsupported extra value.
Normalization is limited to transformations that do not change field meaning.
Dates, currencies, percentages, and numeric separators are normalized only when the transformation is deterministic.
Whitespace and punctuation differences are ignored only when they do not change the field meaning.
Extra fields outside the schema are ignored in ordinary objects. Extra or missing array content affects item matching and recall.