Reading the document
An invoice is not a form, and no two vendors agree.
Template extraction works until the fifty-first vendor, and every accounts-payable function has a fifty-first vendor. The pipeline reads instead of matching: OCR lifts the text, named-entity recognition finds the entities the layout does not label, and an LLM resolves what the page actually means — which number is the total and which is a subtotal, which date is the invoice date and which is the due date, which line is a charge and which is a note. Prompt engineering and contextual embeddings took field-level accuracy to about 95% across the whole set.
- 01.01
Fifty formats, one output
The variety is in the documents; the record they become is the same shape every time.
- 01.02
Context decides the field
Contextual embeddings settle which number is the total on a page that never says so.
- 01.03
About 95%, measured
Field-level rather than document-level, because a document is only as right as its worst field.