The problem
The best-documented reason automation projects fail is not integration. It is that nothing defines what the system does when it is not sure. A deployment without that boundary either proceeds silently, which is dangerous, or blocks on a person nobody appointed to review it — a bottleneck wearing automation's clothes.
There is a second failure underneath it. The longer an automatic system runs without visibly breaking, the less anyone checks it, so confidence in the output drifts upward while its accuracy does not. Any design that treats human review as a formality inherits that drift.
Invoices are where this gets expensive and measurable. Manual handling runs roughly five times the cost of an automated pass, Türkiye's e-invoice regime makes structured invoice data effectively compulsory, and document tooling is overwhelmingly English-first — so Arabic script and Turkish diacritics are exactly where the off-the-shelf accuracy degrades and the boundary matters most.
How it works
Decisions
What makes a non-deterministic extractor trustworthy?
ChoseDeterministic checks over the model's output
Instead ofA confidence score from the model alone
A model's own confidence is a self-report, and a fluent extractor is confidently wrong in exactly the cases that matter. Arithmetic is not: line items either sum to the subtotal or they do not, a tax rate either legally exists or it does not, an identifier either passes its checksum or it fails. The model proposes and the arithmetic disposes, which converts an opaque probability into a specific, nameable failure.
What does the system do when it is not sure?
ChoseHold it, and name the field and the failed check
Instead ofCommitting anyway, or flagging the whole document as low confidence
These are the two documented ways this fails. Proceeding silently is how a wrong number reaches an accounting system. Handing back a whole document marked uncertain makes a human re-read all of it, which is the work the automation claimed to remove. Naming one field and the check it failed turns review into a decision instead of a re-keying job.
How do you stop people over-trusting the automatic path?
ChoseSample the auto-committed output for spot-checking
Instead ofReviewing only what the system flags
Automation complacency is the failure where a system that has not visibly broken stops being checked at all. If humans only ever see the documents the machine already doubted, nobody is measuring the errors inside the confident set — which is the only error rate that matters, and the one nobody publishes. A deliberate sample keeps trust calibrated by evidence.
Cloud document AI, or self-hosted?
ChoseSelf-hosted OCR and layout analysis
Instead ofA per-page cloud document API
Three reasons pointing the same way: financial documents never leave the client's premises, which is often the objection that decides the sale; there is no per-page cost, so volume does not change the economics; and the multilingual open-source models handle Arabic script and the full Turkish diacritic set, which is the specific place English-first tooling degrades.