LearnAI home

Documents and Money ยท Lesson 3

Turning Documents Into Records

Pull the details out of invoices, forms and receipts and get them into a spreadsheet without retyping.

Retyping is not a job, it is a tax

Somewhere in your business, a person is reading a number off a document and typing it into a spreadsheet. Supplier invoices, expense receipts, signed order forms, timesheets, delivery notes. The information is already written down. It is simply written down in a place your spreadsheet cannot see.

This is the single most satisfying automation a small business can build, because the saving is obvious and the input arrives whether you like it or not. It is also the one with the sharpest teeth, because the output is numbers, numbers get totalled, and a wrong total is not a wrong tone of voice. It is a wrong payment.

So the whole lesson rests on one principle: an extracted figure is a claim, not a fact, until somebody has seen it next to the document it came from.

In plain English

Extraction:
Pulling specific named fields out of an unstructured document and returning them in a fixed shape.
Field:
One thing you want from the document. Supplier name, invoice number, date, net amount, tax, total.
Confidence:
The AI step saying how sure it is about a value. Useless unless you make it flag rather than guess.
Verbatim:
Copied exactly as printed, with no reformatting, rounding or tidying up.
Reconciliation:
Checking that the extracted numbers agree with each other and with the document.

Which documents are worth it

Not all paperwork repays this. The good candidates share three traits: they arrive in quantity, they carry the same handful of facts every time, and the facts are printed rather than handwritten. Supplier invoices, expense receipts, order confirmations and standard forms all qualify comfortably.

The poor candidates are the ones where every document is differently shaped, or where the useful information is buried in prose rather than sitting in a labelled box. A contract is not an extraction job. Neither is a handwritten delivery note that has been photographed at an angle in a van. You can force those through, and you will spend more time correcting the output than you would have spent typing it.

Start with your single highest volume supplier. One layout, many documents, and a stack of past examples you already know the answers to.

Decide the fields before you touch a document

Write your column headings first. Six to ten fields, each with a definition and a format. If you cannot say precisely what goes in a column, the extraction cannot either, and it will fill it with something plausible.

Prompt you can copy: extract fields from an invoice

Extract the following fields from the document below. Reply with one line per field, in this exact order, nothing else.

SUPPLIER the trading name on the document, verbatim INVOICE_NO the document reference, verbatim, no spaces added ISSUE_DATE as YYYY-MM-DD DUE_DATE as YYYY-MM-DD NET number only, no currency symbol, two decimals TAX number only, no currency symbol, two decimals TOTAL number only, no currency symbol, two decimals CURRENCY the three letter code shown on the document

Rules:

  • Copy values exactly as printed. Do not round, reformat, correct spelling, or convert between currencies.
  • If a field is not present on the document, write NOT FOUND. Never calculate a missing value from the others.
  • If a value is present but you cannot read it with certainty, write UNCERTAIN followed by your best reading in brackets.
  • Do not add any commentary before or after the lines.

DOCUMENT:

Read the rules again. Three of the four exist to stop the same behaviour, which is filling a gap. A model asked for a total it cannot see will happily add the net and the tax together and present the result as if it read it. That answer is right most of the time, which is precisely what makes it dangerous.

Checkpoint

Define every field with a format, demand values verbatim, and require NOT FOUND or UNCERTAIN instead of a calculated or guessed value.

Make it check its own arithmetic

You are not going to eyeball every row. What you can do is make the automation prove the numbers agree with each other before a human ever looks, so that the rows needing attention identify themselves.

Prompt you can copy: reconcile before you file

You are checking an extracted record against the document it came from. Reply with one line only.

Run these tests in order:

  1. Does NET plus TAX equal TOTAL, to the penny?
  2. Does the TOTAL you extracted appear, character for character, somewhere in the document text?
  3. Is DUE_DATE the same as or later than ISSUE_DATE?
  4. Does INVOICE_NO appear in the document exactly as extracted?

If all four pass, reply PASS. If any fail, reply CHECK followed by the numbers of the failed tests and one short clause naming what disagrees.

Never adjust a value to make a test pass. Report only.

EXTRACTED RECORD:

DOCUMENT:

Test two is the important one. It is the difference between the number being consistent and the number being present. A record can pass its own arithmetic beautifully and still describe a document that does not exist.

โŒ Weak prompt

Prompt

Read this invoice and give me the supplier, date and total.

Output

Supplier: Harding and Co Ltd. Date: 14th March. Total: 1,240.00

Which date, issued or due? Which currency? Is that total including tax? The formats vary run to run, so the spreadsheet column ends up holding four different kinds of thing.

โœ… Good prompt

Prompt

Return SUPPLIER verbatim, ISSUE_DATE and DUE_DATE as YYYY-MM-DD, NET, TAX and TOTAL as numbers with two decimals and no symbol, CURRENCY as a three letter code. Write NOT FOUND for anything absent. Never calculate a missing value.

Output

SUPPLIER Harding and Co Ltd INVOICE_NO HC-20418 ISSUE_DATE 2026-03-14 DUE_DATE NOT FOUND NET 1033.33 TAX 206.67 TOTAL 1240.00 CURRENCY GBP

Every column holds one kind of thing, the missing due date announces itself instead of being invented, and the arithmetic can be tested automatically.

The human step, kept small

Checking every extraction defeats the purpose. Checking none of them is how a supplier gets paid twice. The workable middle is to check by exception plus a small sample.

Instruction you can copy: what a person actually reviews

ALWAYS REVIEW, side by side with the document

  • any row containing UNCERTAIN or NOT FOUND
  • any row where the reconciliation returned CHECK
  • any total above [your own threshold]
  • any supplier appearing for the first time
  • any invoice number already present in the sheet

SAMPLE REVIEW, five random rows every week

  • open the document, read the figures off it yourself
  • compare against the row, field by field
  • write down every disagreement, even trivial ones

WHAT THE DISAGREEMENTS TELL YOU

  • always the same field: your definition of that field is loose
  • always the same supplier: their layout has changed
  • scattered and rare: normal, keep sampling
  • rising week on week: stop and rebuild the extraction

Never let an extraction step trigger a payment, and never let it write into your accounts as the final record without a person approving the row. Extraction prepares the entry. A human makes it official.

Keep the link to the original document in a column next to the numbers. Checking a figure takes about four seconds when the document is one click away, and about four minutes when it is not, which decides whether anyone ever checks at all.

๐Ÿ“ Quiz

Question 1 of 4

An invoice has no visible total. What should the extraction instruction require?

Found this useful? Pass it on.