Drop a PDF invoice. See exactly what would post, and what a human has to look at.

This is the working thing, not a description of it. It reads the PDF, pulls out vendor, invoice number, date, PO reference, line items and totals, checks the arithmetic against a purchase-order table, and splits the result in two: bills that can post without anyone reading them, and the ones that can't, each with a reason you can act on in seconds.

Want this running on your own invoice queue? Email a sample invoice to dan@danieljamesfrancis.com and you will get structured data back within 24 hours.

You just watched this read one supplier invoice off a PDF, and I can automate that same job on every invoice you receive: each one posts to QuickBooks or whatever ledger you use, and only the ones that do not read cleanly reach a person. Fixed fee of $2,500 to set it up; $500–900/month to run it after that, depending on volume. Email me at dan@danieljamesfrancis.com — tell me your monthly invoice count and the ledger you use, and I will tell you in writing whether it fits your setup, including when it does not. No call needed.

Need this running in QuickBooks automatically?

This tool shows the logic. The paid service runs it on every invoice your team receives — PDFs in, structured records out, exceptions flagged for a human reviewer, and everything else posted directly to QuickBooks. No ongoing manual entry.

$2,500 setup · $500–$900 per month

Email dan@danieljamesfrancis.com with 'Invoice Automation' in the subject and describe your current monthly invoice volume. I reply within one business day.

No server, no account, no network calls once the page has loaded. Open your browser's Network tab and watch — that matters when the document is a real vendor invoice.

The sample set is adversarial on purpose

A demo that only handles tidy input proves nothing. Half of these documents carry a deliberate defect, and each vendor writes its invoices differently, because that variance is the problem. The same field appears as Invoice Number, INV #, Document No. and Our reference. Dates arrive as 07/28/2026, 03-AUG-2026, 2026-08-04 and 06/08/2026.

Cascade Paper SupplyClean. Posts untouched.
Nolan Freight SystemsClean, but abbreviated labels and a day-month date.
Brightline ElectricalNo PO reference anywhere. Flagged for review, not blocked.
Kestrel IndustrialTwo pages, 14 line items, and a stated total $180 above what its own lines foot to.
Pinnacle SoftwareUK vendor, billed 50% over its authorised PO, and a day-first date correctly read as day-first.
Cascade (re-send)Duplicate of an invoice already received, with a later date and a "second notice" line.

Three decisions worth arguing about

Never guess silently

A field that cannot be read is empty with a stated reason, never a plausible-looking value. A wrong number posted confidently into the ledger costs far more than a flagged one.

Tolerance is a feature

Purchase orders allow a small variance, 2% or $25, whichever is greater. Blocking a $14 overage on a $1,400 PO is how an exception queue turns into something nobody reads. Cascade is $14.29 over its PO and posts anyway; Pinnacle is $4,500 over and does not.

Ambiguity is only raised when it is real

06/08/2026 is genuinely ambiguous between US and day-first conventions, but flagging every nn/nn/yyyy date fires on roughly half of all US invoices and trains you to ignore the list. The date is only questioned when the document carries evidence of non-US origin: VAT registration, a UK postcode, Ltd, a non-dollar currency.

What this does not do

Scanned image PDFs need OCR, and are reported as unreadable rather than guessed at. Line-level GL coding is per-client and not attempted here. This page writes nothing anywhere; a real engagement writes into QuickBooks or your ERP, and the PO table comes from your system rather than the four rows below.