Giacomo Mantovani

Case study

Financial statement extraction at scale: 2,500+ documents a day, 84% less manual work

For a financial services client, an OCR and LLM pipeline pulls data out of more than 2,500 financial documents a day and runs about 30 validation checks on each one. It runs on FastAPI and Kafka, with 16 workers on the client's OpenShift. Documents that pass every check clear automatically, and manual work fell by 84%.

Key numbers

2,500+documents a day
~30validation checks per document
−84%manual work

The problem

Financial statements arrive in large volumes and in all kinds of formats. Analysts re-keyed the figures and checked them by hand. It was slow and expensive, and it couldn't keep up as volume grew.

What was built

The pipeline runs OCR, extracts the fields with an LLM, then runs about 30 validation checks per document (for example, totals that have to reconcile). Documents that pass every check clear with no human step, and the rest go to review. I was the pipeline architect in a team of 5.

Architecture and stack

  • FastAPI services, with Kafka for queueing and back-pressure
  • 16 workers on the client's OpenShift (an on-premise container platform)
  • OCR + LLM extraction, with the LLM on Azure OpenAI inside the client's EU cloud
  • Audit trail on every production document, no sensitive data in logs

Results

  • 2,500+ documents a day
  • ~30 validation checks per document
  • −84% manual work

What it means for your company

With financial data, LLM extraction alone is not enough. The validation checks are what let you clear documents automatically without reviewing every one. If you handle thousands of documents a day, a queue-based design (Kafka + horizontally scaled workers) keeps throughput steady and can run on your own platform.

Frequently asked questions

Can AI extract data from financial statements reliably?

Yes, if every extraction is validated. This pipeline combines OCR and an LLM, then runs about 30 checks on every document. Only documents that pass all of them clear automatically, so the reliability comes from the checks.

How many documents a day can an LLM pipeline process?

This one handles more than 2,500 financial documents a day with 16 workers behind Kafka. To raise throughput you add workers, because each document is an independent message on the queue.

Can it run on-premise or on OpenShift?

Yes. The pipeline is made of FastAPI services and Kafka, containerised and deployed on the client's own OpenShift platform. Document processing stays inside infrastructure the bank's security team already controls.

How much manual work does it remove?

Manual work fell by 84%. Analysts no longer re-key every statement. They review only the documents that fail a check, and they already know which check failed.

Next step

Still copying figures out of PDFs? We can find out how much of that AI can extract.

Tell me the workflow. We scope it on a free call, then a working version is live within 10 days.

Book a scoping call