Coordinate-aware extraction
Read words and their page positions, then identify invoice fields and service columns.
Turn document layouts into inspectable data, with a local processing workflow and explicit review points.
Filter a real extraction run, inspect the source text positions and separate field checks from arithmetic reconciliation.
Open dashboard ↗Six fictional suppliers, three service months and two column orders. The sample includes known review conditions; no real client invoice is published.
Invoice extraction must distinguish header fields from service rows, preserve repeated services and avoid confusing a line amount with an invoice total. Different suppliers can place the same information in different columns.
Read words and their page positions, then identify invoice fields and service columns.
Keep each service line as a record, including repeated descriptions on different dates.
Flag missing identifiers, fields or incomplete line information for a person to inspect.
Retain source text and coordinates alongside the structured result.
Produce line-item CSV, validation records, a review list, failures and a run manifest.
The extractor uses PDF coordinates and deterministic rules. It does not require an LLM.
The unmodified extractor processed 24 generated text-layer PDFs locally. All 132 extracted rows were compared with the known fixture values. OCR and model calls were not used in this batch. The browser replays the computed results; it does not accept uploads or run extraction online.
The original extractor supplies field-review flags. The dashboard separately compares extracted line amounts with the printed invoice total, using integer cents. GST is counted once per invoice rather than once per exported line. Passing these checks does not represent payment approval or a general accuracy benchmark.