The short answer
Documents vary in layout, quality and completeness, so extraction is never perfectly accurate. Designing as though it will be is the usual cause of failure.
The workable pattern is extract, present for confirmation, and correct quickly. That is far faster than typing and far safer than trusting.
Design for confirmation
- Extract the fields you need.
- Show them beside the document image.
- Highlight where each value came from.
- Make correcting a value a single action.
- Flag low confidence values clearly.
Point three is what makes checking fast. Seeing where a value was taken from lets someone verify at a glance instead of reading the whole document.
Know what is hard
| Difficulty | Effect |
|---|---|
| Poor scan quality | Extraction accuracy falls sharply |
| Handwriting | Much harder than print |
| Tables spanning pages | Structure lost |
| Many different layouts | Each needs handling |
| Documents in several languages | Additional complexity |
Scan quality is worth addressing at source. Asking suppliers to send documents in a consistent digital format removes the problem entirely for those suppliers.
Match the check to the consequence
- Low value, low risk: accept with sampling
- Financial values: always confirmed by a person
- Anything triggering a payment: confirmed, with limits
- Anything with legal effect: confirmed
- Reference data: accept and correct later
The second and third rows are where the real risk sits. An incorrectly extracted amount that triggers a payment is expensive and embarrassing.
Improve from the corrections
Every correction is information about where extraction is weak. Record them, look for patterns by document type or supplier, and address the biggest source.
Without that loop the same errors are corrected by hand indefinitely, which is most of the benefit lost.