Service

Documents in,

and every field can say where it came from.

Somewhere in your company there is a spreadsheet being filled in by hand from PDFs. Or a queue of invoices, statements, contracts, claims or recordings that a person opens one at a time and retypes.

Automating that is not hard to demo and is hard to trust. The demo runs on clean documents. Production runs on a photograph of a receipt taken at an angle, in a second currency, with the total handwritten.

We build the pipeline for the second case — with confidence on every field, a review queue for what falls below the line, and a trace from every record back to the pixel it came from.

The constraint

A number you cannot point at is not an answer.

Every design decision on this page follows from that sentence.

01

What goes in

Named formats, not “any data”. The difficulty is not the file type — it is how far the real input sits from the sample you built against.

InputWhat actually makes it hard
Digital PDFText layer present. The easy case, and the one demos use.
Scanned image / photoSkew, shadow, thumb in frame, 200dpi. Where accuracy actually gets decided.
Arbitrary CSVEvery bank exports a different shape. Column mapping has to be inferred per file, not configured per customer.
AudioTranscription, then extraction from the transcript. Two error surfaces, compounding.
VideoTranscript and frames disagree more often than you'd expect. Something has to reconcile them.
Scraped HTMLStructure changes without warning. The pipeline has to notice rather than silently extract nothing.
02

The pipeline

Six stages. The model appears in exactly one of them — stage 02, where it reads. It is deliberately kept out of the judgement.

01

Ingest

Normalise the input, record its hash, and keep the original. You cannot re-derive what you did not keep.

02

Read

OCR, transcription, or direct parse. This is where a model earns its place — reading messy input is what it is genuinely good at.

03

Extract

Into a typed schema, not free text. A schema that fails loudly beats a blob that fails silently.

04

Score

Per-field confidence, from the extractor and from cross-checks. Confidence that gates nothing is decoration.

05

Route

High confidence goes to the table of record. Low confidence goes to a human queue. Nothing goes straight through unexamined.

06

Attest

Every field carries its origin — the page, the timestamp, the frame, the cell. This is the part that survives an audit.

03

How these break

Five failures we expect to find in an extraction system that was built to demo. If you recognise two or more, the audit is the cheaper way to start.

SymptomUsual cause
Accuracy fell off a cliff in productionThe eval set was built from clean documents. Real inputs are photographed, rotated, and multi-currency.
Numbers are subtly wrong, nobody noticed for weeksConfidence is computed but never gates a write, so bad rows are indistinguishable from good ones downstream.
A layout change broke everything silentlyThe extractor returned empty rather than erroring. No assertion on expected field presence.
The bill tripledFull documents sent when a page would do, no caching on repeated pages, and the largest model used for the easiest step.
"Why did it say that?" is unanswerableIntermediate artefacts were discarded. Only the final record was persisted.
04

What it costs to run

The honest answer is that inference is rarely the line item that hurts. At volume, the cost is dominated by how many times you send the same page, how large a model you sent it to, and how much of the document you sent when a single page would have done.

A pipeline that caches aggressively, routes easy pages to a small model, and only escalates on low confidence usually costs a fraction of the naive version — and is more accurate, because the escalation path exists at all.

We publish a real cost breakdown at volume in the cost guide rather than quoting a range here.

Where the money goes, typically

BASELINE — EVERY PAGE, LARGEST MODEL
~0.3×
WITH PAGE-LEVEL CACHING
~0.1×
WITH CONFIDENCE-BASED ESCALATION

Illustrative ratios, not a quote. The real number depends on your document mix and is something the audit measures.

Your documents

by a person. Let's fix the expensive part first.