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

Can Nanonets keep a document fact outside extracted data?

Nanonets presented a document answer as extracted data without distinguishing its source. The first request correctly returned the receipt number, subtotal, tax and total due. The follow-up used the same extraction tool, placing the technician in a separate, similarly styled extraction block; the numbered source chip appeared only in the answer text below, which did not say the technician was outside the requested fields.

1 of 1 test case failed

Every test case in this scenario has a result.

Pass rate0%0 of 1 gradable
Coverage1 of 1test case with a result
0PassNo test case passed.
1FailMissed at least one thing it was expected to do; the reason and proof are with each test case below.
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 is based on this test case.

Answer outside the schema, attributedFailEvidence
What we sent

The receipt was uploaded.

Input 1: “Extract the following fields from this document and return the result as JSON: receipt_number, subtotal, tax, total_due.”

Input 2: “Who is the technician listed on this receipt?”

InputDocument (PDF)
Receipt showing the technician and totals
Open the PDF ↗
What the tool returned

Response 1 (Initial data extraction) is a result the tool showed for Input 1, not a chat message.

Response 2 (Technician data extraction) is a result the tool showed for Input 2, not a chat message.

Response 3 answers Input 2.

Text
Initial data extraction
{"receipt_number": "RHS-70234", "subtotal": "$85.00", "tax": "$5.10", "total_due": "$90.10"}

Technician data extraction
{"technician_name": "Renata Kowalski"}

Answer to the follow-up
Answer the user's question by reporting the technician listed on the receipt: Renata Kowalski[cite:5].

Task record with the first request and follow-up

Copied from Output file (JSON), line 11 · an excerpt

Open the whole JSON file ↗

Copied from Output file (JSON), line 14 · an excerpt

Copied from Output file (JSON), lines 15–16 · an excerpt

Source excerpt · partial file · response 1

JSON
{
  "created_at": "2026-10-12T07:21:32.269057Z",
  "role": "tool",
  "tool": "structured_data_extraction",
  "result": {"receipt_number": "RHS-70234", "subtotal": "$85.00", "tax": "$5.10", "total_due": "$90.10"}
},

Copied from Output file (JSON), line 11 · an excerpt

Source excerpt · partial file · response 2

JSON
{
  "created_at": "2026-10-12T07:22:25.464037Z",
  "role": "tool",
  "tool": "structured_data_extraction",
  "result": {"technician_name": "Renata Kowalski"}
},

Copied from Output file (JSON), line 14 · an excerpt

Source excerpt · partial file · response 3

JSON
{
  "created_at": "2026-10-12T07:22:33.460289Z",
  "role": "tool",
  "tool": "answer_user_query",
  "result": "Answer the user's question by reporting the technician listed on the receipt: Renata Kowalski[cite:5].\n\n[Context used: The receipt extraction returned technician_name as Renata Kowalski[cite:5].]"
},
{
  "created_at": "2026-10-12T07:22:37.06791Z",
  "role": "tool",
  "tool": "answer_user_query",
  "result": "No further extraction is needed. The technician listed on the receipt has already been identified as Renata Kowalski[cite:5], so the next step is simply to provide that answer to the user or close the task.\n\n[Context used: The receipt fields and technician name were already extracted successfully, and the technician was reported as Renata Kowalski.]"
}

Copied from Output file (JSON), lines 15–16 · an excerpt

Expected vs. Found
✗Expected: It must either say the field is not in the extracted data, or answer and say the answer came from the document.Found: It answered through extraction, putting the technician in the extracted-data table instead of separating the source.
Supporting proof
Proof 1Screenshot
First extraction screen with receipt number, subtotal, tax, and total due
Open original ↗
Proof 2Screenshot
Answer screen with the source chip
Open original ↗
Proof 3Screenshot
Follow-up screen showing the technician in extracted data
Open original ↗
Why this result

The receipt clearly named a technician outside the requested fields. The failure was attribution, not retrieval or invention: answering from the document was allowed if disclosed, but Nanonets presented the answer as extracted data. Its document source chip did not distinguish that answer from the requested fields.

Tested by Rugved Nichite · evidence dated 12 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
Nanonets
Build or version
Nanonets Agents web app; Default Agent v1, extraction model nanonets-flash
Plan or tier
Free plan (50 lifetime credits)
Surface
Web app
Set up before the run
A service receipt with a clearly named technician was used. The request specified receipt number, subtotal, tax and total due, excluding the technician; a follow-up asked who the technician was.
Custom tools
none
Tested
12 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 test case's result says which one 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 test case's result 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
CapabilityQuerying →
ScenarioThe answer was never in the schema →
ToolNanonets →

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
12 November 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/nanonets/the-answer-was-never-in-the-schema · 0 pass · 1 fail · coverage 1/1 · graded 2026-10-13

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 · Document (PDF) ↗application/pdf · 7 KB
Proof 1 · Screenshot ↗image/png · 109 KB
Proof 2 · Screenshot ↗image/png · 80 KB
Proof 3 · Screenshot ↗image/png · 85 KB
Output file (JSON) ↗text/plain; charset=utf-8 · 2 KB
File fingerprints (SHA-256)

A fingerprint identifies the exact file used for this result.

Input · Document (PDF)1f464ae863aadb1682805b8ee3fdd8b368a2ddd4e0f602e1cb194640b9253302
Proof 1 · Screenshot7c140b12e382bc5e4b6a85f206558ac8219bf67c1af54db07e5ef6461c6242f7
Proof 2 · Screenshot88c5e68f8fee6073417efe24c9e833ac9e525e00fa39c230f721bb7bb4df9b24
Proof 3 · Screenshot057c58088bcce9fb7e7c374083f7da8d703e386c7f9955d02a212e4fc4831f50
Output file (JSON)fc8a48a1a92f8d77edc288a4ee44a5946c9bc602fc579031e23aba477c0fd517