{"observation":{"id":"65edc0fa-f547-4d58-bc57-0b7a22dfae4b","tool":"retab","tool_name":"Retab","criterion":"semantic-field-enrichment","criterion_name":"Semantic Field Enrichment","criterion_definition":"Are derived fields such as transaction_type, transaction_id, cheque_number, day patterns, and ad codes correctly classified or extracted beyond raw OCR?","criterion_evidence_type":"transformation","criterion_rank_role":"decisive","criterion_rank_role_reason":"For this ranking, correctly identifying derived business fields is part of producing usable structured data, not just a nice extra. (3 of 3 judges)","scenario":"bank-statement-pdf","scenario_name":"Bank Statement PDF","group_tag":"business-document-extraction","scenario_description":"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.","modality":"pdf","input_text":null,"input_artifact_refs":[{"alt":null,"url":"https://cdn.futuresmart.ai/public/aidemos/a459a9de9c8a466d8f69b112e04ddad2.pdf?v=1","role":"input","filename":"Bank Statement PDF.pdf"}],"stresses":["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"],"verdict":"worked","score":null,"score_total":null,"note":"Derives transaction_type and transaction_id from the transaction narration, labeling the sample record as UPI with transaction_id 917615251879 instead of leaving only raw description text.","evidence_state":"verified","source":null,"artifacts":[{"url":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","role":"input","alt":"Research media bank statement 2 jul.png"},{"url":"https://d3epheqghktydj.cloudfront.net/research-media-retab-bank-statement-extracted-transacti-44a6c6e97afe.png","role":"output","alt":null}],"run_id":"a061b9e7-a9c5-443d-a171-b296aaf51b8c","study_title":"Extract and query structured data from documents using natural language","study_kind":"generation","research_task":"86b9y25e5","tested_at":null,"completeness":"input-and-output","input":{"state":"files","text":null,"files":[{"url":"https://cdn.futuresmart.ai/public/aidemos/a459a9de9c8a466d8f69b112e04ddad2.pdf?v=1","filename":"Bank Statement PDF.pdf","alt":"Bank Statement PDF","role":"input"}],"modality":"pdf","stresses":["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"]},"tool_page_slug":"retab","tool_url":"https://aidemos.com/tools/retab","permalink":"https://aidemos.com/evidence/65edc0fa-f547-4d58-bc57-0b7a22dfae4b","api_url":"https://ai.aidemos.com/v1/observations/65edc0fa-f547-4d58-bc57-0b7a22dfae4b"},"peers":[{"id":"10daca4e-7731-45a7-ad11-1f6a80d8c666","tool":"datalab","tool_name":"Datalab","verdict":"mixed","score":null,"score_total":null,"note":"Classifies 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.","artifact_count":2,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-datalab-bank-statement-extracted-28-jun--04644cff3353.png","evidence_url":"https://aidemos.com/evidence/10daca4e-7731-45a7-ad11-1f6a80d8c666"},{"id":"ca67652c-8a96-456d-92ef-c2817c381589","tool":"extend-ai","tool_name":"Extend AI","verdict":"worked","score":null,"score_total":null,"note":"The tool infers transaction direction from free text, classifying an ATM entry as `Withdrawal` and populating `withdrawal_amount: 1000`.","artifact_count":2,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-extend-ai-transaction-type-5ef541ac7fec.png","evidence_url":"https://aidemos.com/evidence/ca67652c-8a96-456d-92ef-c2817c381589"},{"id":"e93da7d1-3512-4bea-a7ef-f17bb7e9574c","tool":"landing-ai","tool_name":"Landing AI","verdict":"worked","score":null,"score_total":null,"note":"Classifies extracted bank rows with semantic transaction_type labels such as Withdrawal and Deposit, showing derived type tagging beyond raw transaction text.","artifact_count":1,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-landing-ai-bank-statement-18-jun-extract-321aa2936cc6.png","evidence_url":"https://aidemos.com/evidence/e93da7d1-3512-4bea-a7ef-f17bb7e9574c"},{"id":"ef93fe5b-83f1-421a-87bf-2923b9c82aae","tool":"llamaparse","tool_name":"LlamaParse","verdict":"failed","score":null,"score_total":null,"note":"The tool does not reliably enrich bank transactions with derived identifiers or types: transaction_id and transaction_type are left empty across extracted records even when the descriptions contain transaction clues.","artifact_count":1,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-llamaparse-bank-statement-transaction-id-c01a0d30b3be.png","evidence_url":"https://aidemos.com/evidence/ef93fe5b-83f1-421a-87bf-2923b9c82aae"},{"id":"b9c9cb8d-7aa6-4c2a-b477-8b9c1626da05","tool":"nanonets","tool_name":"Nanonets","verdict":"failed","score":null,"score_total":null,"note":"Does not derive transaction_type on the bank statement at all; the report states that transaction_type is null for every extracted transaction.","artifact_count":2,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","evidence_url":"https://aidemos.com/evidence/b9c9cb8d-7aa6-4c2a-b477-8b9c1626da05"},{"id":"b786a10c-15a5-4f31-9a78-3508cf20cdf5","tool":"reducto","tool_name":"Reducto","verdict":"failed","score":null,"score_total":null,"note":"Does not consistently enrich transaction rows with schema-level fields such as transaction_type and transaction_id; the visible extracted rows remain partially populated and omit those fields.","artifact_count":4,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-schema-transactions-00d0c871c403.png","evidence_url":"https://aidemos.com/evidence/b786a10c-15a5-4f31-9a78-3508cf20cdf5"},{"id":"5cf41e1e-0a8d-4000-a164-198ad5e3b579","tool":"unstract","tool_name":"Unstract","verdict":"worked","score":null,"score_total":null,"note":"Correctly enriches bank rows with transaction_type classification, with the report stating Withdrawal/Deposit was assigned correctly on all 51 transaction rows.","artifact_count":3,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/dca3068e880f473f843a77f119b862b7.png?v=1","evidence_url":"https://aidemos.com/evidence/5cf41e1e-0a8d-4000-a164-198ad5e3b579"}],"other_criteria":[{"id":"0f4fd75a-64e5-484e-b542-9c63073b0692","criterion":"extraction-accuracy","criterion_name":"Extraction Accuracy","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"Docsumo extracts the bank statement into structured customer, branch, and summary fields, including the account holder name, address, totals, and closing balance, and also supports QA over the document.","artifact_count":0,"evidence_url":"https://aidemos.com/evidence/0f4fd75a-64e5-484e-b542-9c63073b0692"},{"id":"7e838bb0-664a-4510-85ab-e821ca809fad","criterion":"extraction-accuracy","criterion_name":"Extraction Accuracy","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"Extracts bank-statement account and balance fields into correctly typed values, including account holder 'MR SEENIVASAN', account number '42710540422', opening_balance 114453.65, and closing_balance 116149.46.","artifact_count":1,"evidence_url":"https://aidemos.com/evidence/7e838bb0-664a-4510-85ab-e821ca809fad"},{"id":"b0b69d62-82c2-408a-ab06-17f4ff60f1c4","criterion":"extraction-accuracy","criterion_name":"Extraction Accuracy","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"Captures both long bank-statement disclaimer strings as dedicated fields, preserving the insurance_coverage and reporting_period text instead of dropping or flattening it.","artifact_count":2,"evidence_url":"https://aidemos.com/evidence/b0b69d62-82c2-408a-ab06-17f4ff60f1c4"},{"id":"0a4f8a1a-6dec-4424-b76b-d0568f8dcd32","criterion":"schema-adherence","criterion_name":"Schema Adherence","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"Reconstructs the supplied bank-statement schema into a nested JSON object with separate statement.metadata, account_holder, account, branch, balances, transactions, summary, rewards, and disclaimers sections instead of flattening the document into OCR text.","artifact_count":3,"evidence_url":"https://aidemos.com/evidence/0a4f8a1a-6dec-4424-b76b-d0568f8dcd32"},{"id":"527704b6-b5a4-4c3d-ba5e-e7d4275464b9","criterion":"structural-clean-output","criterion_name":"Structural Clean Output","rank_role":"context","verdict":"worked","score":null,"score_total":null,"note":"Produces directly copyable JSON from the workflow, so the bank-statement extraction is immediately usable without a transformation layer after configuration.","artifact_count":3,"evidence_url":"https://aidemos.com/evidence/527704b6-b5a4-4c3d-ba5e-e7d4275464b9"},{"id":"483fc6b9-1e25-437c-81ac-fd2e1454a401","criterion":"table-record-completeness","criterion_name":"Table & Record Completeness","rank_role":"decisive","verdict":"mixed","score":null,"score_total":null,"note":"Overcounts 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.","artifact_count":1,"evidence_url":"https://aidemos.com/evidence/483fc6b9-1e25-437c-81ac-fd2e1454a401"}],"appears_in":[{"page_type":"ranking","slug":"document-extraction","title":"Best AI Tools for Extracting Structured Data from Business Documents","url":"https://aidemos.com/best/document-extraction","binding":"run"},{"page_type":"tool","slug":"docsumo","title":null,"url":"https://aidemos.com/tools/docsumo","binding":"run"}],"same_scenario":[{"id":"10daca4e-7731-45a7-ad11-1f6a80d8c666","tool":"datalab","tool_name":"Datalab","verdict":"mixed","score":null,"score_total":null,"note":"Classifies 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."},{"id":"ca67652c-8a96-456d-92ef-c2817c381589","tool":"extend-ai","tool_name":"Extend AI","verdict":"worked","score":null,"score_total":null,"note":"The tool infers transaction direction from free text, classifying an ATM entry as `Withdrawal` and populating `withdrawal_amount: 1000`."},{"id":"e93da7d1-3512-4bea-a7ef-f17bb7e9574c","tool":"landing-ai","tool_name":"Landing AI","verdict":"worked","score":null,"score_total":null,"note":"Classifies extracted bank rows with semantic transaction_type labels such as Withdrawal and Deposit, showing derived type tagging beyond raw transaction text."},{"id":"ef93fe5b-83f1-421a-87bf-2923b9c82aae","tool":"llamaparse","tool_name":"LlamaParse","verdict":"failed","score":null,"score_total":null,"note":"The tool does not reliably enrich bank transactions with derived identifiers or types: transaction_id and transaction_type are left empty across extracted records even when the descriptions contain transaction clues."},{"id":"b9c9cb8d-7aa6-4c2a-b477-8b9c1626da05","tool":"nanonets","tool_name":"Nanonets","verdict":"failed","score":null,"score_total":null,"note":"Does not derive transaction_type on the bank statement at all; the report states that transaction_type is null for every extracted transaction."},{"id":"b786a10c-15a5-4f31-9a78-3508cf20cdf5","tool":"reducto","tool_name":"Reducto","verdict":"failed","score":null,"score_total":null,"note":"Does not consistently enrich transaction rows with schema-level fields such as transaction_type and transaction_id; the visible extracted rows remain partially populated and omit those fields."},{"id":"5cf41e1e-0a8d-4000-a164-198ad5e3b579","tool":"unstract","tool_name":"Unstract","verdict":"worked","score":null,"score_total":null,"note":"Correctly enriches bank rows with transaction_type classification, with the report stating Withdrawal/Deposit was assigned correctly on all 51 transaction rows."}]}