AI Demos Research — the structured-intelligence platform. Every verdict on these pages opens to the execution behind it.
Graded 7 October 2026

Can Landing AI turn a clean scan into accurate text?

Landing AI produced accurate text for the scanned-document case tested here. The digital invoice and its image-only twin returned the same three values: invoice_number TPH-3301, invoice_date 10 March 2026, and total_due £1,754.40. The twin file is shown with zero extractable characters, and the gap was none. No other test case has a result yet.

1 of 1 test case passed

Every test case in this scenario has a result.

Pass rate100%1 of 1 with a result
Coverage1 of 1test cases with a result
1PassDid everything it was expected to do.
0FailNo test case failed.
0Not gradableEvery result here could be graded.
0UntestedEvery test case in this scenario has a result.
The pass rate is a summary. The evidence is the test case below: what we sent, what we checked, what the tool returned, and the proof.

The test case

Each test case is judged on its own: Pass, Fail, Not gradable, or Untested. The scenario result above counts this row.

Image-only twin, same schemaPassEvidence
What we sent
Input 1Document (PDF)
The baseline invoice with readable text on both pages.
Open the PDF ↗
Input 2Document (PDF)
The scanned twin of the same invoice with no extractable text layer.
Open the PDF ↗
What the tool returned

The tool returned 2 files, shown under Proofs.

Proof 1Output file (text)
The digital run JSON with the three extracted values and run details.
Text15 lines
{
  "data": {
    "total_due": "£1,754.40",
    "invoice_date": "10 March 2026",
    "invoice_number": "TPH-3301"
  },
  "extractionMetadata": {
    "total_due": { "value": "£1,754.40", "ranges": [ { "start": 1197, "end": 1206 } ] },
    "invoice_date": { "value": "10 March 2026", "ranges": [ { "start": 321, "end": 349 } ] },
    "invoice_number": { "value": "TPH-3301", "ranges": [ { "start": 295, "end": 320 } ] }
  },
  "extract_id": "extract-01m4an1qjqt6e09jxqvphv5343",
  "parse_run_id": "parse-01m4an15e5t5xn129hh2rm10ez",
  "created_at": "2026-10-07T07:43:11.833Z"
}
Open the text file ↗
Proof 2Output file (text)
The scanned-twin run JSON with the same three values and run details.
Text15 lines
{
  "data": {
    "total_due": "£1,754.40",
    "invoice_date": "10 March 2026",
    "invoice_number": "TPH-3301"
  },
  "extractionMetadata": {
    "total_due": { "value": "£1,754.40", "ranges": [ { "start": 1097, "end": 1106 } ] },
    "invoice_date": { "value": "10 March 2026", "ranges": [ { "start": 351, "end": 378 } ] },
    "invoice_number": { "value": "TPH-3301", "ranges": [ { "start": 326, "end": 350 } ] }
  },
  "extract_id": "extract-01m4an3y7q61kd7v4hx2es80s9",
  "parse_run_id": "parse-01m4an2z77xqq6zm44hfg4t8zw",
  "created_at": "2026-10-07T07:44:24.081Z"
}
Open the text file ↗
Expected vs. Found
✓Expected: Both runs should return the same values, and both results plus the gap should be shown.Found: Both runs returned the same three correct values, and the gap was none.
Supporting proof
Proof 3Screenshot
The digital run view showing the invoice, schema and matching extracted values.
Open original ↗
Proof 4Screenshot
The scanned-twin run view showing the scanned page, schema and matching extracted values.
Open original ↗
Why this result

The digital invoice and the image-only twin were compared with the same schema. Both produced the same three correct values, and the twin file showed zero extractable characters, so the gap was none.

Also observed on this row

Different character ranges. The two runs use different source character ranges, which fits the scanned twin being read through OCR rather than an embedded text layer.

Tested by Rugved nichite · evidence dated 7 October 2026

Configuration and setup

How this tool was set up for the run and what the test needed in place. Each row is a fact from the run's records; a fact the records do not hold is left out, not guessed.

Software that produced the output
Landing AI
Build or version
DPT-3 Pro (parse model; app version not exposed)
Model
DPT-3 Pro
Surface
Web app
Set up before the run
A baseline document and a scanned twin were needed, using the same schema. The twin had to be image-only with no text layer. One document was run first as digital, then again as the twin.
Extraction fields
invoice_number, invoice_date, total_due, all strings
Schema version
v1
Tested
7 October 2026 · Rugved nichite

How this scenario is graded

How we decide Pass, Fail and Not gradable. The same rules apply to every tool tested on this scenario.

How results are decided

Each test case gets one result per tool: Pass, Fail or Not gradable. A test case we haven't run yet shows Untested. There are no partial results.

The rules
  • Pass: the tool did everything the test expected, and nothing it said contradicts the correct answer.
  • Fail: at least one expected behaviour clearly didn't happen; the row says which and quotes the tool.
  • Not gradable: our evidence couldn't settle the outcome (for example a record we needed is missing). It is never counted as a fail, and the row says what's missing.

Where this sits in the benchmark

This page is one cell of a larger study: one tool, one scenario. Only this benchmark's frame appears here.

LevelNameScope
BenchmarkStructured Document Extraction →19 scenarios · 10 tools
CapabilityOCR →
ScenarioA cleanly scanned document →
ToolLanding AI →

History of this result

What has happened to this result since it was first published. Runs and grades are never overwritten: a retest or a re-grade publishes a new result and keeps the earlier one readable.

from the publication record
9 October 2026First publishedStructured Document Extraction v1

Act on this result

Nothing filed here edits the run or the grade. A challenge opens a review, and a review can produce a new run or a re-grade — which becomes the current result and leaves this one in the history.

This matches what I see

You run the same kind of test against your own setup and get the same behaviour.

Agree →
This does not match

Yours behaves differently. Tell us what you got, with a screenshot if you have one.

Disagree →
Point out an issue

Something here is wrong — a reference value, a transcription, a grade.

Report an issue →
Request a retest

On a newer build, a larger dataset, or your own setup.

Request a retest →
We have fixed this

Tell us what changed and we schedule a rerun of the failing test case. The old result stays as history.

Vendor notice →
Filed against this evidenceNothing yet. Challenges, counter-evidence and fix notices appear here with their outcome, and stay on the page after they are resolved.
Cite this result
aidemos.com/benchmarks/structured-document-extraction/results/landing-ai/a-cleanly-scanned-document · 1 pass · 0 fail · coverage 1/1 · graded 2026-10-07

The same record is available as structured data through the AI Demos MCP server, with the counts, the coverage and every per-test-case reason carried as fields.

Verify the proof files

These files support this result. Open a file to inspect the original evidence.

Input 1 · Document (PDF) ↗application/pdf · 78 KB
Proof 3 · Screenshot ↗image/png · 131 KB
Proof 1 · Output file (text) ↗text/plain; charset=utf-8 · 1 KB
Input 2 · Document (PDF) ↗application/pdf · 232 KB
Proof 4 · Screenshot ↗image/png · 250 KB
Proof 2 · Output file (text) ↗text/plain; charset=utf-8 · 1 KB
File fingerprints (SHA-256)

A fingerprint identifies the exact file used for this result.

Input 1 · Document (PDF)fdcf03ac5ee53b083da58166f17fd41e7c72de79a9f3a3f6b67daa1360ddbca9
Proof 3 · Screenshot8e1e112d64db950f5851de99a545bb6ef54967a71af2d984e699b57ddb3fe2b3
Proof 1 · Output file (text)de20364d77a6653a4acdc1f461922d5e7d48ae1dc470f65b3944504a49ae46ce
Input 2 · Document (PDF)6f1cc2a5f5e5e57494671341557d7a53d318b0f62bb8f8536165e1dac1b7a805
Proof 4 · Screenshot0924b03631e236f108199f2097e6040eac89eacfde63a15a88de0dea9809ae01
Proof 2 · Output file (text)c3f362a4e77077e53a4d6297805ec05fb21bc70537596fe7bc2a04db042da01b