

Every customer PO has to be checked against the quotation before the order is confirmed. Item codes, quantities, amounts. TOTO India now gets that check done by machine: AI reads the PO, fixed rules compare it against the quotation, and the confirmation screen gets a clear answer in seconds.

The quotation is already in the system. Item codes, quantities, the rate agreed with the party, site details, validity. Then the customer sends a PO, and somebody has to check that this PO matches that quotation before the order is confirmed.
That check takes time, and it is easy to get wrong. POs arrive in every possible shape. A clean PDF. A photo taken on a phone. An Excel sheet exported and cropped at the edges. One item code can be split across two or three lines. OCR mangles item codes that carry special characters. A 10-page PO has terms pages in it, and often a copy of your own quotation attached, so quantities get picked up from the wrong page.
And sometimes the file is simply the wrong one. An old quotation. An invoice. An RFQ. It looks official, it passes, the order is confirmed. Then the wrong material is dispatched, or the order goes out at a rate nobody agreed to.
A wrong PO does not cost you an email. It costs you a dispatch.
A comparison service that the quotation platform calls the moment somebody tries to confirm an order. It receives the quotation the platform already holds, plus the customer PO. It sends back a status, a short message, a comparison table, and a list of exactly what does not match.
How the work is split is the part worth explaining. AI reads the document. AI never decides. The file is checked for quality first, so a cropped Excel export or a blurred scan is stopped before it can throw up a false mismatch. If the PDF already has selectable text it is read directly, at no OCR cost. OCR runs only on scans. A language model then pulls the page into a fixed format - header, item table, totals, and what kind of document this actually is - and it is instructed never to invent a number.
After that it is plain code. Item codes are grouped and totalled. Quantities have to match exactly. The amount has to match within a set tolerance. Site and validity are raised as warnings, not failures. Run the same two files twice and you get the same answer both times, and for every answer you can point to the rule that gave it.
The PO has to be checked against the quotation first. What used to depend on how carefully somebody read a PDF at seven in the evening is now a step nobody can skip.
A cropped Excel export is not a pricing dispute. The system says the file cannot be read and asks for a better one, instead of sending your team to argue over quantities that were never there. This one distinction is most of why people trust the result.
When something does not agree, the screen shows the item code and the field - quotation value against PO value. Not a general error message. Your sales and accounts people can see which rule failed, and why.
A model reads the document, but fixed rules make the decision. So the answer does not change from one run to the next, and it can be checked again afterwards. A model deciding on its own could never give you that.
A separate service with a fixed JSON contract. The quotation platform got the check without a single change to the way it makes quotations.
PO against quotation. Invoice against delivery challan. Test certificate against specification. Anywhere a person has to prove that two documents agree, quickly, right at the end of a process. Tell us how yours is checked today and we will tell you straight which part a machine should decide, and which part it should not.