Skip to content

Case Study

The Bills Nobody Was Checking

How an AI-powered scanning system took Mill Software's invoice verification from around 70% accuracy to 98%, even on handwritten bills.

Zryth Research · September 2026 · 4 min read

[Bill scanning system in use]

A process too slow to actually work

Mill Software's finance team was processing purchase invoices by hand: reading each bill, typing the details into their system, and checking the numbers against what was expected. For most manufacturers, this is normal. For a business receiving a high volume of bills, it also meant something else, nobody had time to look closely at every single one.

There was no reliable way to catch a bill that looked slightly off. Duplicate entries, inflated amounts and simple data-entry mistakes could all slip through unnoticed, and the cost of a missed error only showed up later, as an overpayment or a reconciliation headache.

[Manual invoice verification, before AI]
Every bill still had to be read, typed and cross-checked by hand.

Understanding the problem before building anything

Before writing any code, our team spent time inside Mill Software's actual bill-processing workflow: what kinds of bills came in, how they were checked today, and where mistakes tended to happen. Some bills were clean, printed invoices. A meaningful share, roughly one in three, were handwritten, with inconsistent formatting and the usual quirks of handwriting.

That distinction turned out to matter more than anything else in the project.

Building a system that reads bills and flags what looks wrong

We built an AI-powered bill-scanning system combining OCR with Google's Gemini models. The system reads each bill, extracts the relevant fields, and checks for irregularities that would normally require a person to notice, flagging anything uncertain for review instead of guessing.

Testing five models before picking one

Speed and accuracy don't always move together, so we tested the workflow across five Gemini models on real bills, printed and handwritten, under the same lighting and camera conditions the system would actually run in.

Gemini 2.5 Flash was the fastest, at 20–30 seconds per bill. Gemini 3.1 Flash and Gemini 2.5 Flash-Lite followed at 25–32 seconds and 25–30 seconds. Gemini 3.1 Pro took 30–35 seconds, and Gemini 2.5 Pro was the slowest, at 40–50 seconds.

[Processing time by model]
Speed varied by model, but speed wasn't the deciding factor.

Why we picked the slower model

On clean, printed bills, every model performed reasonably well. The difference showed up on the handwritten third of the bills, the ones that actually determine whether a system works in the real world. Gemini 3.1 Pro handled these consistently better than the faster options, even though it wasn't the quickest.

Since the system had to work on the bills Mill Software actually receives, not just the easy ones, we chose reliability on the hardest cases over shaving a few seconds off the average.

The result: a slower process that finally works

Bill verification now takes 60–70% longer than before, because every bill is scanned and checked systematically instead of being reviewed only when someone had time. That trade-off was deliberate.

Verification accuracy rose from roughly 70–75% to 98%. More importantly, mistakes the old process had no real way of catching, especially on handwritten bills, are now being found and flagged before they turn into overpayments or reconciliation problems.

The takeaway

The biggest win wasn't speed. It was turning bill verification from a manual process that was too difficult to apply consistently into a systematic one that catches mistakes that used to go unnoticed entirely.


Zryth Research

A look at how AI-powered OCR and careful model selection turned an overwhelmed manual process into a reliable, systematic one, even on the bills humans found hardest to read.

Next: The ₹12 Question

← Back to Research