Line items match the subtotal
sum(line amounts) = subtotal
Items add up to 47.80, but the subtotal says 49.80
Receipts · invoices · order screenshots
A vision model copies what's printed. Then plain code adds up every line, checks every total and looks for duplicates. You only look at the documents it flags, with the reason written next to each one.
What gets checked
Vision models are good at copying text and bad at noticing when the numbers on the page don't agree. So every number they copy goes through checks written in ordinary code, the same way every time.
sum(line amounts) = subtotal
Items add up to 47.80, but the subtotal says 49.80
qty × unit price = line amount
Line "Window cleaning (per pane)": 3 x 12.50 = 37.50, but the document says 35.00
subtotal + tax + shipping = total
Subtotal + tax + shipping = 354.74, but the total says 345.74
same vendor + number or date + total
Looks like a duplicate of 02_northwind_office_supply.png (same vendor, number/date and total)
vendor, date, total not empty
Missing date
anything you can state as a rule
I can add checks for your business, such as vendors that must be on your approved list, amounts over a limit, or dates outside the period you are closing.
Test run · 15 Oct 2026
All six are made-up documents with fake vendors. Three contain errors put there on purpose. The workflow ran twice, the second time with no cached answers.
| Document | Planted error | Result |
|---|---|---|
| 01 Maple Bean Coffee | none | OK |
| 02 Northwind Office | none | OK |
| 03 Greenleaf Market | items 47.80, subtotal 49.80 | flagged |
| 04 Brightpath Cleaning | 3 × 12.50 printed as 35.00 | flagged |
| 05 Northwind (rescan) | same invoice as 02 | duplicate |
| 06 ParcelPeak order | none | OK |
Six documents is a demo, not a benchmark. Before you pay, I run it on a few of your own documents and show you the result.
What you get
Documents (one row each), Line items, and Issues with the exact reason for every flag.
Each document shown next to what was read from it, problem documents first.
Runs on your computer or in your own cloud account, with setup steps written for whoever takes it over.
Documents go to the vision model on your own API account. I don't keep copies after delivery.
Pricing
Model costs are billed to your own API account, usually a few cents per document.
Basic
$120
3 days · 1 revision
Standard
$350
5 days · 2 revisions
Premium
$800
10 days · 3 revisions · 14 days support
Questions
These come from small business owners and bookkeepers asking about the same problem on Reddit.
A freelancer on r/smallbusiness said typing receipts into Excel took hours last month.
No. Drop photos or PDFs into a folder, or forward them to an inbox with the Premium setup. Every field you asked for lands in your spreadsheet: one row per document, one row per line item.
Your part is opening the few documents that get flagged and fixing what the reason says.
People on r/Bookkeeping point out that most receipt apps capture vendor, date, tax and total, and charge extra for line items.
Yes. Line items are part of the Standard package. Description, quantity, unit price and amount go to their own sheet, linked to the document they came from.
Line items are also what make the checks work, because they have to add up to the subtotal. If you want items sorted into your own categories, like food, packaging and cleaning supplies, I can add a category column driven by a list you control. Items it can't match go to review instead of being guessed.
A post on r/Accounting did the math: at 99% per field, about 18% of 20-field invoices have at least one error.
That math is right, which is why I don't quote per-field accuracy. The numbers on an invoice depend on each other, so code can check them against each other: items against the subtotal, subtotal plus tax against the total, quantity times price against each line. A misread number almost always breaks one of those.
Checks can't catch a wrong value that still fits, like a misread date or vendor name. That's why the review page shows each document next to what was read from it. Before you pay, you see the result on your own documents.
Someone on r/excel needed invoice number, vendor, items and total from 500 PDFs, and Copilot wouldn't take that many files.
Yes. It runs over a whole folder, and every answer is cached, so a rerun after a fix costs nothing for documents already read. At a few cents per document on your own API account, a 500-invoice backlog is a model bill of tens of dollars at most.
If all your PDFs come from one system with the same layout, Excel's Power Query may be all you need, and I'll tell you so. This is for mixed layouts, scans and photos.
Someone on r/Accounting said writing prompts and then fixing the mistakes was another nightmare.
For five invoices, do that. For hundreds, a chat window doesn't remember your fields, doesn't check its own arithmetic and doesn't keep a record of what it read.
Here the model gets the same instructions every time and writes to fixed columns, and code checks the numbers it copied. You fix the flagged documents instead of re-reading every answer.
Threads on r/Bookkeeping weigh Dext's price, Hubdoc's weaker line items and QuickBooks' built-in scanner.
If one of them fits, use it. They're good at vendor, date, tax and total, and they connect to accounting software.
I'm a better fit when you need line items in your own spreadsheet layout, checks specific to your business, a one-off backlog cleared, or a setup you own outright with no monthly per-seat fee.
A side-business owner on r/smallbusiness opens every supplier email each week to copy out amounts and dates.
Yes, that's the Premium package. New attachments in an inbox or a Drive folder are picked up, read, checked and added to the sheet. PDFs, forwarded receipts and screenshots all work.
Anything flagged also shows up on the review page with the reason, so you can fix it before it goes anywhere else.
An auditor on r/Accounting wanted to upload an invoice register and the PDFs and get exceptions flagged, without paying for an enterprise tool.
Yes, as a custom check. Your register becomes one more input, and each document is matched by invoice number, vendor and amount.
Anything missing from either side, or matched with a different amount, goes to the Issues sheet with both values side by side.
A food distributor on r/smallbusiness said the admin assistant spends half her time typing invoices into an old ERP with no API.
The output is a spreadsheet or CSV with columns in whatever order your system imports. Plenty of older systems with no API still take a CSV import, so that's the first thing I'd check with you.
If yours truly accepts nothing, the sheet still turns typing into checking and pasting, and we can look at the next step from there.
A reply on r/Accounting warned that uploading invoices to the wrong AI tool could leak them into training data.
Your documents go only to the vision model, through an API account in your name, and the results stay in your own spreadsheet or cloud folder.
The major model providers say they don't train on API data by default. Before we start, I'll show you the policy of whichever provider you choose. I delete my copies of your sample documents after delivery.
Who builds it
I spent the last year leading a team of about 20 engineers building an AI data platform. Checking that the data was actually right was my job, and that's the habit I bring to these automations: the model does the reading, and plain code checks its output before anyone trusts it.
Start with a free check
Remove anything sensitive first. Tell me which fields you need, where the output should go, and roughly how many documents you get each month. I'll reply with what's realistic, a fixed price and a delivery date.
zchaw127@gmail.com
Copied