Correctly enriches bank rows with transaction_type classification, with the report stating Withdrawal/Deposit was assigned correctly on all 51 transaction rows.

✓ Worked🧾 artifact-verifiedinput + output shownTest date not recordedUnstract
What was measured
Semantic Field Enrichment

Are derived fields such as transaction_type, transaction_id, cheque_number, day patterns, and ad codes correctly classified or extracted beyond raw OCR?

decisive for this rankingtransformation

For this ranking, correctly identifying derived business fields is part of producing usable structured data, not just a nice extra. (3 of 3 judges)

What was given, what came back

Test input: Bank Statement PDF · pdf · group: business-document-extraction
Input — what we sent
Input file 1 — as supplied
Input file 1 — as supplied
Input file 2 — as supplied
Input file 2 — as supplied
Input file 3 — as supplied
Bank Statement PDF.pdf
Bank Statement PDF

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
research-media-unstract-bank-statement-output-f0bd422ffa9e.json
Loading file...
Provenance
Observation
5cf41e1e-0a8d-4000-a164-198ad5e3b579
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: "unstract",
  scenario: "business-document-extraction"
})
MCP · mcp.aidemos.com/api/mcp
Free with attribution.
Same input, same check — 7 other tools
measured on Semantic Field Enrichment
Real inputs and real outputs, no retouching · every cell queryable via API & MCP · aidemos.com