Think Build Implement Repeat
Data & Scraping

Getting Structured Data Out of PDFs, Emails and Scans

Last updated:

What it is good at now

Structured and semi-structured business documents — invoices, purchase orders, delivery notes, statements, application forms — extract well. Layouts vary, but the fields are named and the values are in predictable formats.

Handwriting and photographs of documents are workable but noticeably less accurate, and should always route through review rather than straight into a system of record.

Realistic accuracy by document type

DocumentTypical field accuracyMain difficulty
Standard supplier invoice92–97%Line items on multi-page documents
Purchase order93–97%Non-standard product codes
Bank statement95%+Merchant names and categorisation
Handwritten form70–90%Legibility, obviously
Photographed document80–92%Angle, lighting, shadows
Contract or long-formVariesMeaning rather than fields

Confidence scores are the design centre

A useful extraction system does not just return values, it returns how sure it is about each one. That is what lets you automate the confident majority and review the rest.

Set thresholds per field by consequence. A supplier name being wrong is recoverable; a bank account number being wrong is not. Different fields deserve different confidence bars.

Design the review step properly, because it is the product

The review interface determines whether the system saves time. Done well, a person confirms twenty documents in the time it took to key one. Done badly, review is slower than typing and people abandon it.

  • Show the original document beside the extracted fields, with the source region highlighted
  • Focus the cursor on the first uncertain field, not the top of the form
  • Allow keyboard-only completion — reviewers should never need the mouse
  • Learn from corrections so the same supplier is not queried repeatedly

Validate against what you already know

The cheapest accuracy improvement is not a better model, it is checking against your own data. Does the supplier exist? Does the total equal the sum of the lines? Does the purchase order number match an open order? Is the date plausible?

These rules catch errors extraction cannot detect on its own and are quick to implement. They also make the failure modes intelligible, which matters for trust.

Measure the right thing

Field-level accuracy is the vanity metric. What matters operationally is straight-through processing rate: the proportion of documents needing no human touch at all, and time per document overall including review.

A system at 94% field accuracy might have a 60% straight-through rate, because one uncertain field sends the whole document to review. Improving the reviewable design often beats improving the model.

Frequently asked questions

Do we need to train it on our documents?

Modern extraction works on unseen layouts without training, which is a significant change from a few years ago. Learning from your corrections improves repeat suppliers, but you do not need a labelled dataset to begin.

What about documents in other languages?

Major languages extract well. Verify with a native speaker on a sample before relying on it, particularly for anything where a misread number has financial consequences.

How much does a document extraction project cost?

A single document type with review interface and validation typically runs £10,000–£25,000. The review interface is often a third of that, and it is the part that determines whether anyone uses the system.

Can it handle documents that arrive as email attachments?

Yes, and that is the common case. Mailbox monitoring, attachment handling and routing are usually a small part of the build compared with extraction and review.

Keep reading

Drowning in PDFs that become spreadsheet rows?

Send us five representative documents, including two awkward ones. We will tell you the realistic accuracy and what the review step would look like.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

Web ScrapingData Science