--- title: "Unstract" type: "AI Tool" url: "https://aidemos.com/tools/unstract" description: "We ran two business PDFs through Unstract and it captured invoice fields and the 51-row bank array—but its count summary and day mask were off." category: "business-marketing" website: "https://unstract.com/" published: "2026-08-19T08:43:49.613272+00:00" updated: "2026-08-20T05:53:29.750431+00:00" evidenceCount: 16 verifiedCount: 11 coverage: "dense" --- # Unstract Prompt-driven schema extraction for invoices and bank statements, with strong row-level capture and a few derived-field caveats. ## TL;DR Verdict **Strong extraction, but check derived fields.** **Where it wins:** - you need prompt-driven extraction into a custom JSON schema - you work with invoices or bank statements and care about row-level data - you can spot-check derived summary or formatting fields before downstream use **Main limitation:** you need fully trusted summary calculations without spot checks **Pricing:** Starter $499/mo ($416/mo annual) · Growth $2,249/mo ($1,874/mo annual) · Enterprise Custom `Bank statements` · `Invoices` · `Prompt Studio` · `JSON export` **Website:** [Visit Unstract](https://unstract.com/) ## Evidence (first-party, tested) *16 tested cells · 11/16 artifact-verified. Cite a cell by its Evidence ID, e.g. `ev:unstract·bank-statement-pdf·extraction-accuracy`.* | Criterion | Scenario | Verdict | Proof | Evidence ID | | --- | --- | --- | --- | --- | | Extraction Accuracy | Bank Statement PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/0f6493de94b9489581cb6721051a5ac8.png?v=1) | `ev:unstract·bank-statement-pdf·extraction-accuracy` | | Extraction Accuracy | cross-scenario | ◐ mixed | 👁 observed | `ev:unstract·cross·extraction-accuracy` | | Extraction Accuracy | Invoice PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/1f636a2bf5434507b706bafd4124f6e9.png?v=1) | `ev:unstract·invoice-pdf·extraction-accuracy` | | Schema Adherence | cross-scenario | ✓ worked | 👁 observed | `ev:unstract·cross·schema-adherence` | | Schema Adherence | Invoice PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/18ce6c9c9f314db694ae8439172b4041.png?v=1) | `ev:unstract·invoice-pdf·schema-adherence` | | Schema Adherence | Bank Statement PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/6495c5a868854823bcf3cd94c90bb6aa.pdf?v=1) | `ev:unstract·bank-statement-pdf·schema-adherence` | | Semantic Field Enrichment | Bank Statement PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/6d9450b3c58b477ea0066e52ceb2f6ca.png?v=1) | `ev:unstract·bank-statement-pdf·semantic-field-enrichment` | | Semantic Field Enrichment | Invoice PDF | ⚠ struggled | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/f76d402f677748dfa30611569dbbc5f2.pdf?v=1) | `ev:unstract·invoice-pdf·semantic-field-enrichment` | | Semantic Field Enrichment | cross-scenario | ◐ mixed | 👁 observed | `ev:unstract·cross·semantic-field-enrichment` | | Structural Clean Output | cross-scenario | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/fbde90ece9404195a94cf067eab0a2b6.mp4?v=1) | `ev:unstract·cross·structural-clean-output` | | Table & Record Completeness | Bank Statement PDF | ✓ worked | 🧾 [proof](https://d3epheqghktydj.cloudfront.net/unstract-unstract-bank-statement-output-f0bd422ffa9e.json) | `ev:unstract·bank-statement-pdf·table-and-record-completeness` | | Table & Record Completeness | Invoice PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/23a19775078e4e32b6af7a1f632e9536.png?v=1) | `ev:unstract·invoice-pdf·table-and-record-completeness` | | Table & Record Completeness | cross-scenario | ✓ worked | 👁 observed | `ev:unstract·cross·table-and-record-completeness` | | Table & Record Completeness | Bank Statement PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/a61bcdd94bc2444f8e0566001d965337.png?v=1) | `ev:unstract·bank-statement-pdf·table-record-completeness` | | Table & Record Completeness | Invoice PDF | ✓ worked | 🧾 [proof](https://cdn.futuresmart.ai/public/aidemos/23a19775078e4e32b6af7a1f632e9536.png?v=1) | `ev:unstract·invoice-pdf·table-record-completeness` | | Table & Record Completeness | cross-scenario | ✓ worked | 👁 observed | `ev:unstract·cross·table-record-completeness` | > 🧾 = artifact-verified (proof captured) · 👁 = observed (noted, no artifact) · verdicts: worked / mixed / struggled / failed. > **Strong extraction, but check derived fields.** > > Unstract handled the two business PDFs well at the schema and row level: it filled the requested nested fields, preserved the full 51-row bank transaction array, and extracted the invoice totals and cross-page line items cleanly. The weak spots were a wrong bank-statement transaction count summary and an unreliable invoice day-of-week mask, so downstream users should verify calculated and fixed-width fields before relying on them. ## Demo Recording [Video: Unstract demo recording](https://cdn.futuresmart.ai/public/aidemos/fbde90ece9404195a94cf067eab0a2b6.mp4?v=1) *Video — Screen recording of Unstract’s web app, showing the dashboard plus bank-statement and invoice extraction demos with PDF viewer, parsed output, Export, and Deploy as API options.* ## Feature-by-Feature Breakdown ### Custom Schema Population **Verdict:** Strong Populates user-defined nested JSON schemas from uploaded PDFs, including bank-statement metadata, account holder details, balances, transaction summaries, and invoice metadata such as station and account details. The evidence on cards 0 and 2 shows the tool filling structured fields from bank statements and invoices into schema-shaped outputs. **Input:** Bank Statement PDF > **File** — Bank Statement PDF **Output:** Bank statement JSON output > **File** — Bank statement JSON output **Input:** Invoice PDF > **File** — Invoice PDF **Output:** Invoice JSON output > **File** — Invoice JSON output **Bottom line:** Strong at populating nested document schemas; check derived summary or mask-style fields before downstream use. ### Multi-Page Table and Line-Item Extraction **Verdict:** Strong with caveats Preserves repeating table rows and invoice line items across long documents and page breaks, including statement transactions with running balances and invoice line items that continue onto the next page. The evidence on card 1 focuses on continuity of row-level data rather than schema population. **Input:** **Output:** **Input:** **Output:** **Bottom line:** Reliable for row-level capture and page-break continuity; the main issues were summary counts and text-formatting noise, not missing rows. ### Field-Level Accuracy vs. Source Document **Verdict:** Works Well Every extracted value was manually cross-checked against the original bank statement and invoice PDFs — entity data, balances, individual transactions, and the invoice's financial summary — verified line-by-line rather than trusting the tool's output at face value. **Bottom line:** Manual verification against the source PDFs confirmed core financial figures reconcile exactly on both documents, but surfaced two real discrepancies: the bank statement's summary total_transactions field (43) undercounts the actual 51 rows present in the array, and the invoice's day_of_week field doesn't reliably reproduce the source's 7-character scheduling mask. ## Pricing | Plan | Price | Notes | | --- | --- | --- | | Starter | $499/mo ($416/mo annual) | 5,000 pages/mo, $0.10/page overage, Prompt Studio + API, 14-day free trial | | Growth | $2,249/mo ($1,874/mo annual) | 25,000 pages/mo, $0.09/page overage | | Enterprise | Custom | Cloud or on-prem, SOC 2/GDPR/HIPAA/ISO 27001, dedicated success manager | ## Is It Right For You? **Use it if** - you need prompt-driven extraction into a custom JSON schema - you work with invoices or bank statements and care about row-level data - you can spot-check derived summary or formatting fields before downstream use **Skip it if** - you need fully trusted summary calculations without spot checks - you need exact fixed-width day-of-week masks - you need proven natural-language querying in this specific workflow ## Classification - **Category:** business-marketing - **Subcategory:** pdf-tools - **Type:** text - **Built for:** Other ## Frequently Asked Questions **Q: Can Unstract process multi-page bank statements?** Yes. The tested bank statement was 4 pages long and Unstract processed all 51 transactions in one run. **Q: How accurate was the bank-statement row extraction?** The transaction-level data looked strong: deposits and withdrawals were classified correctly, and running balances were preserved. The main miss was a derived summary field, where total_transactions reported 43 instead of the 51 rows found in the PDF. **Q: Did Unstract capture invoice line items that continued across a page break?** Yes. Line 8 was extracted once across the page break without duplication or data loss. **Q: Were the invoice totals correct?** Yes. The report shows gross total $29,750.00, agency commission $4,462.50, net amount due $25,287.50, and payment terms of 30 Days. **Q: Which fields looked unreliable in testing?** The bank-statement summary.total_transactions value was wrong, the invoice day_of_week mask was unreliable, and the invoice Ad-ID text had a stray space. **Q: Did the research confirm JSON export?** Yes. JSON output was confirmed for both document tests. **Q: Did the test use raw JSON schema upload?** No. The report says field setup was prompt-driven through Prompt Studio rather than a raw JSON schema upload. ## Similar Tools AI tools similar to Unstract: - [Nanonets](https://aidemos.com/tools/nanonets) — Schema-first PDF extraction that produces usable exports, but dense table rows still need review. - [Retab](https://aidemos.com/tools/retab) — Schema-first PDF extraction for finance documents that returns nested JSON with minimal setup. - [Landing AI](https://aidemos.com/tools/landing-ai) — Schema-guided PDF extraction for bank statements and invoices, with strong row capture and a few identifier QA caveats. - [Datalab](https://aidemos.com/tools/datalab) — Schema-paste extraction for bank statements and invoices, with cited JSON output and fast-mode recovery when schemas get large. - [Reducto](https://aidemos.com/tools/reducto) — Structured PDF extraction with nested JSON, citations, and row-preserving tables; invoices worked cleanly, while bank statements still need review. - [LlamaParse](https://aidemos.com/tools/llamaparse) — Versatile PDF parsing for Markdown and structured JSON, with strong recovery but some fidelity drift - [Extend AI](https://aidemos.com/tools/extend-ai) — Schema-driven extraction for finance PDFs that reconstructs nested JSON well, but still needs review for ordering, IDs, and a few scalar values. ## Need a custom AI solution for this use case? If you are looking to build a custom invoice extraction, bank statement parsing, or document extraction system for your business or internal workflow, email us at [contact@futuresmart.ai](mailto:contact@futuresmart.ai). ### Found something inaccurate or missing? We try to keep our AI research accurate and useful. If you found outdated information, an issue, or have a suggestion, email us at [collaborate@aidemos.com](mailto:collaborate@aidemos.com).