Over-segments the bank-statement table: the report says 54 transaction records were extracted where 51 were expected, a +3 overcount caused by continuation rows and split records.
What was measured
Table & Record Completeness
Are all tabular rows and line items extracted without merging, duplication, omission, or phantom records?
decisive for this rankingtransformation
Missing, duplicated, or merged rows and line items directly corrupt the structured dataset and break query results. (3 of 3 judges)
What was given, what came back
Test input: Bank Statement PDF · pdf · group: business-document-extraction
Input — what we sent
A four-page bank statement PDF with dense transaction tables, balance-forward bridges, account metadata, rewards data, and disclaimer text. It was used to stress schema-driven extraction, multi-page continuity, row completeness, and financial numerical accuracy.
Why this input is hard
- · Table extraction across 50+ transaction rows
- · Multi-page continuity with balance-forward bridges
- · Parsing structured account metadata alongside unstructured transaction descriptions
- · Numerical accuracy for deposits, withdrawals, running balances, and summaries
- · Extraction of nested rewards and disclaimer sections
Output — unretouched

Also checked on this input — same tool, 4 other criteria
Extraction Accuracy⚠ StruggledMisplaces a bank-statement transaction across dates: a row that belongs to 18 Jun is attached to the 19 Jun record after merging, so date association is unreliable.Schema Adherence✓ WorkedCan emit the bank-statement extraction as nested schema-shaped JSON, with separate metadata, account_holder/account, branch, transactions, summary, rewards, and disclaimers objects instead of flat OCR text.Semantic Field Enrichment◐ MixedClassifies bank-statement transaction_type inconsistently on merged rows: the 28 Jun record is labeled Deposit even though the visible row shows only a 399 withdrawal amount, and another merged row is labeled Deposit/Withdrawal.Semantic Field Enrichment✗ FailedLeaves the derived bank-statement transaction_id field null, including on the 18 Jun ATM withdrawal that visibly contains the embedded ID 916910098754.
Provenance
- Observation
- 36c397f5-e058-43d6-96e8-d14d1b64ef2f
- Evidence run
- a061b9e7-a9c5-443d-a171-b296aaf51b8c
- Study
- Extract and query structured data from documents using natural language
- Research task
- 86b9y25e5
- Tested at
- not recorded
- Source
- first-party
- Evidence state
- verified
- Proof shown
- input + output shown
- Cost / latency
- not captured
- Repeat run
- not captured
- Tester
- not captured
The last three rows are honest blanks, not placeholders — our capture has no field for them yet.
Query this
get_evidence({
tool: "datalab",
scenario: "business-document-extraction"
})MCP · mcp.aidemos.com/api/mcp
Free with attribution.
Same input, same check — 7 other tools
measured on Table & Record Completeness
Docsumo✗ FailedIt inflates repeated carry-forward content into extra records, returning 55 rows for a statement that actually contains 52 distinct transactions because the BALANCE FORWARD line is duplicated across page breaks.Landing AI✓ WorkedReturns the full transaction table as separate records; the report says all 51 statement entries were extracted without collapsing rows or dropping records.LlamaParse◐ MixedThe tool preserves transaction rows as separate records and maintains order, but the extracted transaction list is inconsistent in size: the report says the array contains 54 records even though the source statement has 51, and the summary shows 44 total_transactions.Nanonets✗ FailedLeaves the statement summary incomplete: total_transactions is null, and the report says the run extracted 47 transactions when the source contained 51.Reducto✗ FailedOver-produces the repeating transaction table, returning 53 transaction records when the bank statement contains 51, indicating row-count drift in line-item extraction.Retab◐ MixedOvercounts the bank-statement transaction table in the summary, reporting total_transactions 43 when the researcher says 40 should be counted after excluding balance-forward, tax, and charge entries.Unstract✓ WorkedKeeps the bank transaction table complete across all 4 pages, with the report stating the transactions array contains all 51 entries and no rows were dropped or merged.
This evidence is published in
Real inputs and real outputs, no retouching · every cell queryable via API & MCP · aidemos.com