{"observation":{"id":"c7ef413a-1654-4252-a5fe-451fa0f92388","tool":"llamaparse","tool_name":"LlamaParse","criterion":"schema-adherence","criterion_name":"Schema Adherence","criterion_definition":"Does the output follow the supplied JSON schema hierarchy exactly, with correct nesting, field names, and data types?","criterion_evidence_type":"transformation","criterion_rank_role":"decisive","criterion_rank_role_reason":"If the output does not match the requested JSON schema exactly, the extracted data cannot be reliably consumed or queried, so this is core to the task. (3 of 3 judges)","scenario":"bank-statement-pdf","scenario_name":"Bank Statement PDF","group_tag":"financial-document-extraction","scenario_description":"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.","modality":"pdf","input_text":null,"input_artifact_refs":[{"alt":null,"url":"https://d3epheqghktydj.cloudfront.net/extract-and-query-structured-data-from-d-bank-statement-pdf-25ec532be6e1.pdf","role":"input","filename":"Bank Statement PDF.pdf"}],"stresses":["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"],"verdict":"worked","score":null,"score_total":null,"note":"Keeps a nested statement schema intact, emitting separate metadata, account_holder, account, branch, statement_period, balances, transactions, summary, rewards, and disclaimers objects instead of flattening the document.","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-llamaparse-bank-statement-extracted-deta-1c069bb9dc7a.png","role":"output","alt":null},{"url":"https://d3epheqghktydj.cloudfront.net/research-media-llamaparse-bank-statement-doc-order-46c9a0db440e.png","role":"output","alt":null}],"run_id":"ec4d736d-95f9-4c88-884c-e280435f7b7b","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://d3epheqghktydj.cloudfront.net/extract-and-query-structured-data-from-d-bank-statement-pdf-25ec532be6e1.pdf","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","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"]},"tool_page_slug":"llamaparse","tool_url":"https://aidemos.com/tools/llamaparse","permalink":"https://aidemos.com/evidence/c7ef413a-1654-4252-a5fe-451fa0f92388","api_url":"https://ai.aidemos.com/v1/observations/c7ef413a-1654-4252-a5fe-451fa0f92388"},"peers":[{"id":"3741073d-f776-4beb-b189-4f22c0b5d11e","tool":"datalab","tool_name":"Datalab","verdict":"worked","score":null,"score_total":null,"note":"Maps the bank statement into the requested nested JSON hierarchy instead of flattening it into OCR text, and preserves field-level citation metadata on the extracted objects.","artifact_count":6,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","evidence_url":"https://aidemos.com/evidence/3741073d-f776-4beb-b189-4f22c0b5d11e"},{"id":"a72ab809-ef71-47eb-8461-d9518c96d28b","tool":"extend-ai","tool_name":"Extend AI","verdict":"worked","score":null,"score_total":null,"note":"The 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.","artifact_count":4,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","evidence_url":"https://aidemos.com/evidence/a72ab809-ef71-47eb-8461-d9518c96d28b"},{"id":"91f210ef-e7ef-4d23-a3c8-badb7719e663","tool":"landing-ai","tool_name":"Landing AI","verdict":"worked","score":null,"score_total":null,"note":"Reconstructs the bank statement into the requested nested JSON hierarchy, with distinct statement.metadata, account_holder.address, account, branch, statement_period, and balances objects rather than flat OCR text.","artifact_count":3,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","evidence_url":"https://aidemos.com/evidence/91f210ef-e7ef-4d23-a3c8-badb7719e663"},{"id":"86ec5538-27d3-490e-88ab-a30bbd4479e8","tool":"nanonets","tool_name":"Nanonets","verdict":"worked","score":null,"score_total":null,"note":"It preserves the requested nested schema directly in the output, populating structured objects such as statement, account, balances, transactions, summary, rewards, and disclaimers instead of flattening the document into OCR text.","artifact_count":3,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","evidence_url":"https://aidemos.com/evidence/86ec5538-27d3-490e-88ab-a30bbd4479e8"},{"id":"95071c07-2f7a-463b-b7c7-3738ddbd3651","tool":"reducto","tool_name":"Reducto","verdict":"worked","score":null,"score_total":null,"note":"Reconstructs the bank statement into a nested JSON structure aligned to the requested schema, with document metadata, account, branch, statement period, transactions, summary, and rewards-style sections instead of flat OCR text.","artifact_count":6,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","evidence_url":"https://aidemos.com/evidence/95071c07-2f7a-463b-b7c7-3738ddbd3651"},{"id":"18014a53-cc1f-4a5d-8552-fc026341e820","tool":"retab","tool_name":"Retab","verdict":"worked","score":null,"score_total":null,"note":"Reconstructs dense statement OCR into the requested nested JSON hierarchy, populating separate statement, account_holder, account, branch, balances, transactions, rewards, and disclaimers objects instead of flattening everything into text.","artifact_count":4,"thumbnail":"https://d3epheqghktydj.cloudfront.net/research-media-bank-statement-2-jul-a511cf7bd0d6.png","evidence_url":"https://aidemos.com/evidence/18014a53-cc1f-4a5d-8552-fc026341e820"},{"id":"db903e38-5c91-4688-ac04-2930dc9e72ab","tool":"unstract","tool_name":"Unstract","verdict":"worked","score":null,"score_total":null,"note":"Preserves the requested nested statement hierarchy instead of flattening it, with separate metadata, account_holder, account, branch, balances, transactions, summary, and other top-level sections.","artifact_count":2,"thumbnail":"https://cdn.futuresmart.ai/public/aidemos/6495c5a868854823bcf3cd94c90bb6aa.pdf?v=1","evidence_url":"https://aidemos.com/evidence/db903e38-5c91-4688-ac04-2930dc9e72ab"}],"other_criteria":[{"id":"81a8a18e-5656-4db6-8d73-4dd8203a9209","criterion":"extraction-accuracy","criterion_name":"Extraction Accuracy","rank_role":"decisive","verdict":"struggled","score":null,"score_total":null,"note":"Leaves some transaction value_date fields blank even where the statement shows dates in that column, so transaction metadata is incomplete.","artifact_count":1,"evidence_url":"https://aidemos.com/evidence/81a8a18e-5656-4db6-8d73-4dd8203a9209"},{"id":"e10bbd24-0b50-44a1-8902-eb59e2fbaf4f","criterion":"semantic-field-enrichment","criterion_name":"Semantic Field Enrichment","rank_role":"decisive","verdict":"failed","score":null,"score_total":null,"note":"Fails to derive transaction-level fields, leaving transaction_id and transaction_type empty even for descriptions that encode ATM, UPI, and CRADJ cues.","artifact_count":2,"evidence_url":"https://aidemos.com/evidence/e10bbd24-0b50-44a1-8902-eb59e2fbaf4f"},{"id":"c329f9a0-4d9f-4f20-8307-5ac615a12391","criterion":"table-and-record-completeness","criterion_name":"Table & Record Completeness","rank_role":"decisive","verdict":"worked","score":null,"score_total":null,"note":"Extracts the bank statement's rewards section as structured repeated records, including accountNumber, titleDate, scheme, openingBalance, pointsAccrued, pointsRedeemed, adjustments, and closingBalance.","artifact_count":1,"evidence_url":"https://aidemos.com/evidence/c329f9a0-4d9f-4f20-8307-5ac615a12391"},{"id":"b9bfb6b9-ede4-4ea0-ab6e-68c2c5b3895b","criterion":"table-and-record-completeness","criterion_name":"Table & Record Completeness","rank_role":"decisive","verdict":"failed","score":null,"score_total":null,"note":"Over-segments the bank-statement transaction table, outputting 54 transaction rows for a statement the report says contains 51 transactions and leaving the summary at 44 total_transactions, so row counts are not self-consistent.","artifact_count":3,"evidence_url":"https://aidemos.com/evidence/b9bfb6b9-ede4-4ea0-ab6e-68c2c5b3895b"}],"appears_in":[{"page_type":"ranking","slug":"document-extraction","title":"Best AI Tools for Extracting Structured Data from PDFs and Business Documents","url":"https://aidemos.com/best/document-extraction","binding":"run"},{"page_type":"tool","slug":"unstract","title":null,"url":"https://aidemos.com/tools/unstract","binding":"run"}],"same_scenario":[{"id":"3741073d-f776-4beb-b189-4f22c0b5d11e","tool":"datalab","tool_name":"Datalab","verdict":"worked","score":null,"score_total":null,"note":"Maps the bank statement into the requested nested JSON hierarchy instead of flattening it into OCR text, and preserves field-level citation metadata on the extracted objects."},{"id":"a72ab809-ef71-47eb-8461-d9518c96d28b","tool":"extend-ai","tool_name":"Extend AI","verdict":"worked","score":null,"score_total":null,"note":"The 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."},{"id":"91f210ef-e7ef-4d23-a3c8-badb7719e663","tool":"landing-ai","tool_name":"Landing AI","verdict":"worked","score":null,"score_total":null,"note":"Reconstructs the bank statement into the requested nested JSON hierarchy, with distinct statement.metadata, account_holder.address, account, branch, statement_period, and balances objects rather than flat OCR text."},{"id":"86ec5538-27d3-490e-88ab-a30bbd4479e8","tool":"nanonets","tool_name":"Nanonets","verdict":"worked","score":null,"score_total":null,"note":"It preserves the requested nested schema directly in the output, populating structured objects such as statement, account, balances, transactions, summary, rewards, and disclaimers instead of flattening the document into OCR text."},{"id":"95071c07-2f7a-463b-b7c7-3738ddbd3651","tool":"reducto","tool_name":"Reducto","verdict":"worked","score":null,"score_total":null,"note":"Reconstructs the bank statement into a nested JSON structure aligned to the requested schema, with document metadata, account, branch, statement period, transactions, summary, and rewards-style sections instead of flat OCR text."},{"id":"18014a53-cc1f-4a5d-8552-fc026341e820","tool":"retab","tool_name":"Retab","verdict":"worked","score":null,"score_total":null,"note":"Reconstructs dense statement OCR into the requested nested JSON hierarchy, populating separate statement, account_holder, account, branch, balances, transactions, rewards, and disclaimers objects instead of flattening everything into text."},{"id":"db903e38-5c91-4688-ac04-2930dc9e72ab","tool":"unstract","tool_name":"Unstract","verdict":"worked","score":null,"score_total":null,"note":"Preserves the requested nested statement hierarchy instead of flattening it, with separate metadata, account_holder, account, branch, balances, transactions, summary, and other top-level sections."}]}