Evidence-backed invoice and receipt processing test

AI can draft a small-business expense register — but it should not touch your books.

This evidence log tests a safe first workflow: paste synthetic receipts, invoices, credits, estimates, and reimbursement notes into a general AI assistant and ask for a reviewable expense register. No real financial data, accounting software, bank feed, credit card feed, email, OCR upload, payment system, or tax connector was used.

Quick answer

ChatGPT leads this paste-only invoice/receipt fixture; Duck.ai is usable but less precise.

In the current Harbor & Pine Market synthetic fixture, ChatGPT scored 4.87/5 and Duck.ai scored 4.50/5. Both produced separable expense-register drafts without login, upload, or connectors. ChatGPT handled signs, totals, and status separation more cleanly; Duck.ai made a few small sign and field-inference mistakes.

Treat this as a prompt-only drafting benchmark, not accounting software advice. The practical reader workflow is: sanitize documents, paste only synthetic or approved excerpts, ask for a draft register, then verify every amount, status, duplicate, credit, and action boundary before anything reaches the books.

Current no-login results

Two invoice/receipt baselines scored.

Scores cover the separable assistant answer only. Setup friction, prompt echo, UI cleanup, and pending routes are tracked separately in the evidence CSVs.

ToolScoreLast testedWhat workedWhat to review
ChatGPT 4.87/5 2026-06-17 Best current invoice/receipt draft: preserved all 12 records, kept paid receipts, unpaid invoice, reimbursement, credit, estimate, duplicate, cash, and missing-receipt items separate, and calculated every requested total correctly. Still needs human/bookkeeper review. It inferred an employee out-of-pocket payment method for the reimbursement, left the missing-receipt net/subtotal as unknown instead of $12.00, and required page-text cleanup because the web UI included prompt echo and login prompts.
Duck.ai 4.50/5 2026-06-17 No-login route worked and produced a separable register with all 12 records, correct paid gross total, useful exception checks, and a visible GPT-5 mini label. The totals section showed the posted credit as positive 8.35 rather than clearly -$8.35, inferred one payment method, copied details onto the duplicate row, and used a few posting/reconciliation phrases that need human/bookkeeper framing.
Pending rows

Uncaptured tools stay unscored.

A pending row is not a quality judgment. It means we have not yet saved a separable full answer through a safe no-login or project-safe route.

Gemini

Pending safe baseline

Keep as no-score until a no-login or project-safe route produces a separable invoice/receipt answer rather than prompt echo or error UI.

Perplexity

Pending safe baseline

Keep as no-score until a full answer is captured and prompt echo/search UI can be separated from assistant output.

Microsoft Copilot

Pending safe baseline

Test only if a safe route can produce a distinct answer; prior no-login Copilot checks often accepted prompts but showed no visible assistant response.

The test scenario

Fictional receipts, invoices, credits, and reimbursement notes from a small shop.

The fixture uses Harbor & Pine Market, a fictional home-goods retailer with a small workshop/event space. The packet includes paid card receipts, a cash receipt, an unpaid wholesale invoice, a reimbursement request above an approval threshold, a duplicate receipt copy, a posted postage credit, an estimate that should not be booked, and a missing-receipt parking note.

A strong answer should create a register, preserve exact source evidence, calculate totals manually, keep statuses separate, flag exceptions, and avoid pretending to approve reimbursements, pay bills, reconcile accounts, file taxes, or update accounting software.

Reusable paste-only prompt shape

What the benchmark asks the assistant to do.

The prompt is intentionally connector-safe: it tells the assistant to use only pasted synthetic records and never claim access to bank feeds, cards, email, OCR apps, accounting systems, payment systems, or tax software.

Use only pasted source records; do not invent vendors, payment dates, invoice numbers, tax rates, GL codes, or accounting conclusions.
Separate paid card/cash receipts, unpaid invoices, reimbursements not yet paid, credits/refunds, estimates/not-payables, duplicates, and missing-receipt items.
Return a register with record ID, date, vendor/person, document type, payment status, payment method, category, gross amount, tax, subtotal/net, due date, review flag, and source evidence.
Calculate paid gross excluding duplicate F and credit I; keep unpaid invoice, pending reimbursement, posted credit, estimate/not-payable, and missing-receipt totals separate.
End with duplicate/exception checks, a bookkeeper handoff note, and a human-review checklist before any accounting, payment, reimbursement, tax, or bank/card action.
Evidence files

The fixture is reusable and connector-safe.

Synthetic receipts and invoices

content/fixtures/invoice-receipt-processing-small-biz/synthetic-receipts-invoices.md

Fictional Harbor & Pine Market records: paid card and cash receipts, an unpaid vendor invoice, an employee reimbursement request, a duplicate receipt copy, a posted credit memo, an estimate, and a missing-receipt personal-card note.

Paste-only benchmark prompt

content/fixtures/invoice-receipt-processing-small-biz/invoice-receipt-processing-paste-prompt.md

The exact connector-safe prompt asking for an expense register, totals, duplicate/exception checks, bookkeeper handoff note, and human-review checklist.

Expected output / answer key

content/fixtures/invoice-receipt-processing-small-biz/expected-expense-register-output.md

Ground-truth rows and totals, including paid gross $512.86, unpaid invoice $744.00, pending reimbursement $53.53, posted credit -$8.35, estimate/not-payable $103.92, missing-receipt $12.00, and duplicate-not-counted $118.53.

Test protocol

content/fixtures/invoice-receipt-processing-small-biz/invoice-receipt-processing-test-protocol.md

The no-accounting-connector protocol: sanity prompt first, screenshots, raw page text, submitted prompt, cleaned assistant output, metadata, manual arithmetic checks, and no-score blockers.

Before using real business records

Keep the AI in draft mode.

Receipts and invoices can contain vendor, employee, tax, customer, payment, and business-confidential information. Start with sanitized excerpts and keep human/bookkeeper review between AI output and any accounting or payment action.

Mask or remove real vendor names, invoice IDs, employee names, card details, tax IDs, addresses, customer records, and bank/payment information before pasting anything into a public AI tool.
Treat the AI register as a draft only. A human owner or bookkeeper must verify every date, vendor, receipt number, amount, tax figure, payment status, due date, and duplicate flag.
Do not connect QuickBooks, Xero, FreshBooks, Wave, Expensify, Ramp, Brex, bank/card feeds, email, Drive, Dropbox, OCR uploads, payment systems, payroll, or tax software until privacy and action boundaries are approved.
Do not let an assistant mark bills paid, approve reimbursements, pay vendors, file taxes, submit expenses, reconcile bank/card feeds, send invoices, or update accounting records.
Use manual arithmetic checks. Even strong-looking answers can mishandle signs, credits, duplicates, or status boundaries.
Search route map · updated 2026-07-16

Route bookkeeping-adjacent data-entry searches to the safest existing evidence.

The current data-entry/form-filler search cluster includes receipt, spreadsheet, PDF, and browser-automation overlap, but that does not justify connecting accounting tools or filling live forms. Start with this paste-only register benchmark, then move to the boundary guide that matches the next risk.

Browser/data-entry automation boundaries

Use this before moving an AI-generated register into web forms, vendor portals, accounting screens, expense tools, customer records, or any workflow with save/submit/pay/reimburse actions.

Form filler, PDF, and extension safety guide

Use this when receipt or invoice details become PDF fields, reimbursement forms, browser autofill, or extension workflows; keep uploads, signatures, payments, and auto-submit out of scope until sandboxed.

Limitations

This is a paste-only benchmark, not proof of safe accounting automation.

The current scores cover two prompt-only public web runs using a synthetic fixture. They do not test paid plans, native accounting tools, OCR accuracy, receipt uploads, QuickBooks, Xero, FreshBooks, Wave, Expensify, Ramp, Brex, bank or card feeds, email imports, payroll, tax software, payment workflows, approvals, memory, or real action-taking. New rows will be added only when raw output or setup-friction evidence is saved and scored with the same rubric discipline.