Teaching AI to Read Purchase Orders Like an Estimator

The most expensive part of quoting isn’t math. It’s typing.

A customer sends a purchase order — a PDF, formatted however their ERP felt like formatting it that day — and somebody in your shop reads it line by line and retypes it: part numbers, quantities, materials, grades, thicknesses. On a 10-line PO that’s an annoyance. On a 100-line PO it’s somebody’s morning, and every line is a chance to fat-finger a quantity or misread a grade and eat the mistake in material.

So we built an AI parser into PolygonLogix: drop the PO PDF in, and it extracts everything and matches it to your CAD files. Getting it to actually work taught me the most important lesson I know about using AI in a fab shop, and it’s worth sharing.

Generic AI Reads Like a Temp on Day One

The first version was simple: hand the PDF to a state-of-the-art AI model and ask for the line items. It came back fast, confident, and not nearly reliable enough to trust. Generic AI knows what a fraction is and what A36 is — the way a temp on day one “knows” — but it doesn’t know your shop: your racks, your grades, your naming. Ask it to convert gauges and fractions while it reads and it’ll be right most of the time, and “most of the time” is worthless on a quote. A wrong thickness or a wrong grade isn’t a typo — it’s eaten material and a blown delivery date. For this to earn a place in the shop, close wasn’t going to cut it.

The Fix: Ground the AI in Your Material Database

The breakthrough wasn’t a smarter model. It came in two parts, and the first one surprised me: stop letting the AI do arithmetic at all. Today’s parser asks the AI to do exactly one thing it’s genuinely great at — read. It reads the document the way an estimator does, zoomed into each line item, and reports back the raw text it saw: “11 GA,” “3/8,” “HRS A36.” It fills in a fixed form; it isn’t allowed to ramble or interpret. Then deterministic shop code — plain, testable, boring code — does the conversions. 11 GA becomes 0.12 because a lookup table says so, every single time. 3/8″ becomes 0.38 because arithmetic in code doesn’t have creative days.

The second part is the database. Every extracted line gets matched against the shop’s actual material database — every valid material, grade, and thickness combination that exists on the racks and in the pricing — with a hard rule: only combinations from this list are legal answers. “MS,” “mild steel,” and “HRS” all resolve to the right real grade at the closest real thickness we stock. The AI stopped being a well-read temp and became a fast reader handing its notes to the shop binder.

With those two rules in place, the parser earns its keep: in production it typically lands 92–97% of lines exactly right on the first pass, and — this matters just as much — it knows which lines it isn’t sure about, so the remainder gets flagged for a human instead of guessed at. On a recent live order — 124 parts across multiple materials and thicknesses — it matched every single line to the right database entry, linked to the right CAD files by part number, in well under a minute.

When It’s Not Sure, It Says So

The part of this system I’m proudest of isn’t the extraction — it’s the honesty. Every line carries a confidence score, and anything the parser had to interpret gets flagged for human review with the reason spelled out. A PO says just “11” where a thickness should be? It’s treated as 11 gauge — and flagged, so you can confirm. A callout converts to an implausibly thick plate? Flagged, not silently accepted. A generic “steel” line that had to default to a grade? Flagged with exactly which grade it chose. You review the handful of flagged lines instead of re-checking a hundred, and nothing sneaks into a quote pretending to be certain when it was a guess. That, more than raw accuracy, is what makes AI actually usable in a shop: a tool that admits what it doesn’t know.

What the Workflow Looks Like

You upload your part files — DXF, DWG, STEP — in one place, and the purchase order PDF in another, so the AI never mistakes a technical drawing for a PO. Hit extract, and it reads the document, pulls part numbers, quantities, materials, grades, and thicknesses, matches them against your database, and populates the whole job. You review the grid — you’re still the estimator, it’s still your call — and go straight to nesting and quoting. The data entry is just gone.

The Lesson for Any Shop Looking at AI

AI in a fab shop isn’t magic and it isn’t a scam — it’s a very fast reader that needs guardrails. Generic AI plus your PO gives you confident mistakes. AI constrained to your materials, your grades, and your terminology gives you an estimator’s first pass in seconds. The difference isn’t the model. It’s whose data it’s allowed to answer from.

Drop a PO. Get a Quote.

Request access and run one of your real purchase orders through the parser.

Request Access