Skip to content
All insights AI finance-operations automation

Intelligent document processing for finance, end to end

IDP is more than OCR. Here is the classify, extract, validate and route pipeline we build so finance documents flow without a keying team.

5 min read #idp#document-automation#finance-ops
Financial services professionals working through an AI initiative

Intelligent document processing is the pipeline that turns an inbound finance document into structured, validated data a downstream system can act on without a person keying it. It runs in four stages: classify the document, extract the fields that matter, validate those fields against systems that already hold the truth, and route the result to either straight-through processing or a review queue. OCR sits inside stage two. It handles one part of the job, and rarely the part that breaks.

Most teams discover this the hard way. They buy an OCR engine, point it at a pile of invoices and bank statements, get 96 percent character accuracy in a demo, then watch the real pipeline stall because nobody decided what happens to the other four percent. The character recognition was never the constraint. The constraint is knowing which document you are holding, which fields are load-bearing, and what to do when the model is unsure.

Classify before you extract

The first mistake is running one extractor across everything. A remittance advice, a signed loan agreement, a KYC utility bill, and a broker statement have almost nothing in common in layout or in the fields you need. Pointing a single model at all of them produces mush and, worse, hides where accuracy is failing.

Classify first. A document classifier assigns each inbound file to a type, and that type decides which extraction schema and which validation rules apply. This buys you two things. You can tune extractors per document class instead of averaging their behavior, and you get an accuracy number per class, which is the only granularity that lets you attribute a regression when quarter-end volume spikes and something slips.

Classification has its own failure modes worth naming:

  • Mixed-type PDFs, where a single file holds a cover letter, three invoices, and a statement. You need page-level splitting before you classify, or the type label is meaningless.
  • Near-duplicate classes, like a credit note versus an invoice from the same vendor template. These are where a classifier quietly misfires, and the cost lands two stages downstream.
  • New types with no training examples. The classifier should be able to say “unknown” and route to a human, rather than guessing the nearest class it has seen.

Extraction is a schema problem

Once you know the type, extraction fills a schema. For an invoice that means the vendor, the tax ID, line items, currency, totals, and payment terms. The engineering discipline is treating extraction as the production of typed, constrained values rather than free text you clean up later.

An amount field should return a number in a known currency, not the string “USD 1,240.00 ” with a trailing space that breaks a downstream join. A date should be parsed to a point-in-time value with its timezone assumption made explicit, because a value date read one day off changes reconciliation. We attach a per-field confidence to every extracted value, because the routing decision later depends on it, and a document-level confidence throws away exactly the information you need.

Layout matters more than model choice. Tables that wrap across pages, line items with merged cells, stamps and handwriting overlaid on printed forms, and scanned faxes at 150 DPI all degrade extraction in ways a clean PDF never shows. Build the eval set from the ugly real documents, not the clean ones the vendor sent, or your accuracy number describes a population you will never process.

Validation is where finance IDP earns its keep

A field can be extracted correctly and still be wrong for the business. Validation is the stage that catches this, and it is what separates a finance-grade pipeline from a demo. Extracted values are checked against systems that already hold authoritative data:

  • The vendor on an invoice resolves to a record in the vendor master through entity resolution, not a fuzzy string match that pairs “ACME Corp” with “ACME Corporation Ltd” and pays the wrong bank account.
  • Line items and totals reconcile arithmetically, and a total that does not sum to its lines is flagged before it reaches the ledger.
  • An invoice matches to its purchase order and goods receipt where three-way matching applies, and the tolerances on that match are configurable, because a two-cent rounding difference should not stop a payment while a two-thousand-dollar gap should.
  • Bank details are checked against the record on file and against sanctions and fraud rules, since a changed account number on a known vendor is one of the most common payment-fraud signals.

A validation failure is a routing signal, so suppress it and you defeat the point of the stage. Every extracted value carries lineage back to the page, the region, and the model version that produced it, so when a controller disputes a figure you can show where it came from. That audit trail earns its place. Under most financial-controls regimes it is the difference between a pipeline you can put into production and one that stays a prototype.

Routing, straight-through, and the review queue

The last stage decides each document’s fate. If every load-bearing field cleared extraction above its threshold and passed validation, the document goes straight through, posted to the target system with no human touch. If any field fell below threshold or failed a validation rule, it routes to a review queue with the low-confidence fields highlighted and the source region shown, so a reviewer confirms in seconds instead of re-keying the whole thing.

Two design choices govern whether this works in production:

  • Thresholds are set per field from a labeled eval set, tuned so the review queue volume matches the false-positive budget the finance team can staff. Set them by intuition and you either flood the queue or let bad data through silently. Both erode trust in the pipeline, and the second is far more expensive.
  • Reviewer corrections feed back as labeled data. Every human fix is a training example, and a pipeline that captures them improves where it was weakest instead of drifting quietly. Watch the straight-through rate per document class over time; a falling rate is usually drift, a new document variant, or an upstream template change, and you want to catch which one before quarter-end.

Run it this way and the review team shrinks from people who key every document to people who adjudicate the fraction the pipeline flags. The keying job goes away. The judgment job stays, which is the correct place for a person to sit.

FAQ

How is IDP different from OCR?

OCR converts pixels to characters. IDP is the full pipeline around it: classifying the document, pulling the fields that matter, checking them against source-of-truth systems, and deciding whether a person needs to look. OCR is one component inside that, and often not the hardest one.

What confidence threshold should route a document to a human?

There is no universal number. Set it per field from a labeled eval set so the review queue matches the false-positive budget the finance team can actually staff. A remittance amount and a free-text memo line warrant very different thresholds.

Can one model handle every document type we receive?

We do not recommend it. Classify first, then run extractors tuned per type. A single catch-all extractor hides which document class is failing and makes drift almost impossible to attribute when accuracy drops.

Working on something similar?

Tell us about your data and the workflow around it, and we will give you a straight read.

Book a 30-min intro call