A large amount of business information arrives in formats designed for people to read: invoices as PDFs, contracts as scans, forms as photographs taken at an angle in poor light. Document extraction is the work of turning that into fields a system can use, and it is one of the highest-return automation projects available to most businesses.
It is also routinely underestimated, because the demo runs on a clean digital PDF and production runs on whatever the supplier sent.
Sort the documents before choosing an approach
Digital PDFs where the text is already embedded are straightforward and should be handled without any image processing at all. Scans need optical character recognition first, and the output quality varies with the scan. Photographs need correcting for angle and lighting before anything else.
Establish the actual mix in your own inbox before designing anything. A pipeline built for clean PDFs meeting a stream of phone photographs is the most common way these projects disappoint, and the mix is usually knowable in an afternoon.
The text layer is where accuracy is won or lost
Everything downstream depends on the characters being read correctly. A model reasoning over garbled text will produce a confident answer built on nonsense, and nothing later in the pipeline can recover what was lost at this step.
- Fix orientation and skew before recognition rather than after.
- Keep the original alongside the extracted text, always, for verification and disputes.
- Preserve layout information where you can. Position distinguishes a total from a line item.
- Track recognition confidence and route poor scans to a person rather than processing them anyway.
Tables are the hardest part and worth testing specifically. A table read row-wise when it should be column-wise produces plausible values attached to the wrong fields, which is the failure mode hardest to spot downstream.
When extraction is wrong, it is almost never the model. It is that the text layer was already wrong and everything after that was reasoning over noise.
Lena Fischer, Solutions Architect, Engineered With AI
Extract to a schema, with a nothing-found option
Define the fields you need and enforce the shape at generation time, which removes an entire class of parsing failure. Include an explicit way to record that a field was absent.
Without that option, a required date field gets a date whether or not the document contained one. This is the single most common source of confidently wrong extracted data, and it is entirely avoidable at design time.
Verify with arithmetic, not with a second model
Documents carry internal consistency you can exploit for free. Line items should sum to the subtotal, tax should be a plausible proportion, dates should fall inside the period the document covers, an invoice number should match the expected format for that supplier.
These checks are deterministic, cheap and catch errors that no confidence score would flag. They are also explainable when something fails, which matters when a person has to resolve it.
Match against what you already know
Extracted values often correspond to records you hold: a supplier, a purchase order, a customer. Matching against those turns extraction into verification and catches transposition errors immediately, because a value that does not match anything is a value worth looking at.
Route the uncertain cases to people
Aiming for full automation on every document is what pushes these projects past their return. The realistic target is high automation on the common formats and a review queue for the rest.
Design the queue to be fast: original document beside the extracted fields, uncertain values highlighted, keyboard-driven correction. A well-built review screen handles a document in seconds, and it is where the human-in-the-loop design pays off. More on where to place review is in the automation hub.
Expect the formats to change
Suppliers redesign invoices, forms get new versions, someone changes accounting software. A pipeline tuned to today’s layouts will degrade quietly, usually noticed weeks later when a total does not reconcile.
Monitor the extraction success rate per source rather than in aggregate. One supplier dropping from near-perfect to poor is invisible in an overall number and obvious when broken out, and that breakdown is what turns a silent failure into a Monday morning ticket.
Drowning in documents?
We will build an extraction pipeline that handles your real document mix, including the awkward ones.





