Bills checked against orders

  • 90–120 mindesigned to save on every bill
  • 99%extraction agreement in testing on real cases
  • 27 → 9items needing manual review

The problem

A construction firm checks every supplier bill against its purchase order and delivery challan, line by line, then compares prices with the supplier’s past rates. Each bill takes 90–120 minutes, and some POs are handwritten in Hindi.

What I delivered

A web app where staff photograph the three documents. A five-stage AI pipeline classifies and reads them, matches every line back to the PO, flags quantity and price mismatches, and pushes the results to the team’s Google Sheet.

The result

The system is designed to save 90–120 minutes on every bill: 75–150 hours a month at this client’s volume of 50–75 bills. In testing on real historical cases, it agreed with manual extraction 99% of the time and cut the items needing manual review from 27 to 9.

How it's built

From input to result

  1. Staff photograph PO, challan and invoice
  2. AI reads and translates
  3. Items matched to the PO
  4. Prices checked against history
  5. Results in Google Sheets

Built with

  • Gemini vision
  • FastAPI
  • Firestore
  • Firebase Auth
  • Google Sheets API
  • 113 automated tests

Engineering decisions

  • Items are matched on their identifying tokens, not loose text similarity, so a 2M modular plate is never confused with a 6M one.
  • Prices are compared on the pre-tax rate; comparing the wrong column shows a false 18% increase that is really GST.
  • Handwritten Hindi and Hinglish POs are translated, and low-confidence reads are flagged instead of guessed.

Have a similar process?

Tell me which task eats most of your team's time. The first assessment is free, with no obligation.

WhatsApp