Evidence · first-party tested/Best AI Tools for Extracting Structured Data from PDFs and Business Documents
Its bank summary aggregation is off: the report says `summary.total_transactions` is 49, while the expected count is 40 after excluding Balance Forward, tax, and charge entries.
What was measured
Extraction Accuracy
Are field values correct, complete, and free of OCR or parsing errors? Includes numerical precision on financial fields.
decisive for this rankingtransformation
The whole point is to pull the right values from documents; wrong or incomplete field values mean the tool failed at the job. (3 of 3 judges)
What was given, what came back
Test input: Bank Statement PDF · pdf · group: financial-document-extraction
Input — what we sent

Research media bank statement 2 jul.png
Bank Statement PDF
A 4-page bank statement PDF with 51 transactions, balances, rewards, and disclaimer text, used to test schema-driven extraction of dense financial tables and multi-page continuity.
Why this input is hard
- · Table extraction across 50+ transaction rows
- · Multi-page continuity with BALANCE FORWARD bridges
- · Structured metadata vs. free-text transaction descriptions
- · Numerical accuracy for balances, deposits, withdrawals, and summaries
- · Nested schema population for account, branch, balances, rewards, and disclaimers
Output — unretouched

Also checked on this input — same tool, 5 other criteria
Schema Adherence✓ WorkedThe bank output is rebuilt as nested JSON rather than raw OCR, with branch, account, rewards, balances, summary, and metadata objects populated under the requested statement root.Semantic Field Enrichment✗ FailedIt leaves derived `transaction_id` values as `null` even when reference identifiers are present in the description, so identifier extraction does not generalize.Semantic Field Enrichment✓ WorkedIt classifies bank transactions into derived `transaction_type` values such as Withdrawal or Deposit from the description text.Structural Clean Output✗ FailedIt does not preserve the authored top-level schema sequence, so consumers expecting the original field order need a transformation step.Table & Record Completeness✓ WorkedThe extractor keeps transaction rows as separate records, and the report says it captured all 51 transactions without merging adjacent rows.
Provenance
- Observation
- 13420641-f30e-4375-8289-ef9240cc49f9
- Evidence run
- ec4d736d-95f9-4c88-884c-e280435f7b7b
- 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: "extend-ai",
scenario: "financial-document-extraction"
})MCP · mcp.aidemos.com/api/mcp
Free with attribution.
Same input, same check — 7 other tools
measured on Extraction Accuracy
Datalab✓ WorkedExtracts the visible document-level values correctly, including State Bank of India, 16 Jul 2019, INR, account number 42710540422, account type SMART BANKING SAVINGS ACCOUNT, branch Rajaji Salai, MICR 600036005, IFSC SCBL0036078, and phone 25349005.Landing AI✓ WorkedExtracts the statement’s top-level values with the correct content and precision, including bank_name "Standard Chartered", statement_date "16 Jul 2019", currency "INR", account number "42710540422", opening balance 114453.65, and closing balance 116149.46.LlamaParse⚠ StruggledLeaves some transaction value_date fields blank even where the statement shows dates in that column, so transaction metadata is incomplete.Nanonets✗ FailedIt leaves summary.total_transactions null even though the statement has 51 transactions, so the summary count is not extracted as a usable value.Reducto✓ WorkedThe tool correctly extracts the bank statement currency as INR and includes citation metadata for that field.Retab✓ WorkedExtracts key statement values as typed fields, including account holder MR SEENIVASAN, account number 42710540422, and opening and closing balances 114453.65 and 116149.46.Unstract✗ FailedDerives an incorrect summary transaction count, reporting 43 when the statement actually contains 51 rows.
This evidence is published in
Real inputs and real outputs, no retouching · every cell queryable via API & MCP · aidemos.com