A steel compliance card filled in 2 minutes, for about 30 cents
For an industrial manufacturer: the inspection card for incoming steel fills itself from photos of the stamped steel and the mill certificate, and supplier offers are checked against the request for quotation.
What it does
The compliance card fills itself from photos and the mill certificate, on the Excel template the team already uses, and supplier offers are compared with the request automatically. When the heat number stamped on the steel cannot be matched to the certificate, no card is produced at all.
In numbers
- from the email with photos to a filled card
- ~2 min
- Time of a full run at the client demo.
- AI cost per card
- ~$0.30
- Average AI model cost per set of documents. It grows with the number of photos.
The problem
- When steel arrives, an inspector photographs the marking stamped on it, finds the matching line in the mill certificate and fills in a compliance card by hand. Buyers do the same kind of copying when they compare supplier offers.
- The photos are taken on a warehouse floor: glare, rust, rotated shots, several pictures of the same bar. The certificate is a PDF from the mill that made the steel. The card is an Excel template the client has used for years and wanted to keep.
From the quality team's email to a filled card
The system reads the photos before it looks at the certificate, the way inspectors work: the heat number stamped on the steel decides which line of the certificate applies.
- Input
- Deterministic code
- Language model
- Gate that can stop the run
- Output
- Input
Quality team's email and photos
Input is the email from the quality team with the marking photos attached, the mill certificate, an export from the ERP system and the empty card template.
- Language model
Photos sorted
A small, fast model recognises what is on each photo. Warehouse labels are set aside; only marking photos go on.
- Language model
The stamp is read
On each photo the system reads the text (OCR), straightens rotated shots and drops near-duplicates. A vision model then reconstructs the marking and the heat number by looking at the photos themselves, not at the text read from them.
- Gate that can stop the run
Heat number check
If the heat number cannot be read in full, the certificate is unreadable, or the heat is not in the certificate, the run stops here. It is a deliberate refusal to produce a card, not a failure, and the reason goes with the result.
- Language model
The matching certificate line
The model extracts chemistry and mechanical properties from the certificate line that belongs to the stamped heat.
- Deterministic code
ERP data takes precedence
Order number, marking code, receiving date and quantity come from the ERP export and replace whatever the model inferred.
- Output
The card and a report
A model places the values on the client's Excel template, keeping the logo and page layout. Values are compared with the acceptance ranges in the template, and the result of each check goes into the report.
Decisions that shaped it
Read the steel first, the paperwork second
The heat number stamped on the bar decides which line of the certificate applies. The first stage does not read PDFs at all, so this order cannot be skipped by mistake.
Refuse rather than guess
A card with the wrong heat is worse than no card. The check runs before the model extracts anything from the certificate and has three named reasons for refusing. A stopped run finishes properly, with the reason attached, so it reads as a decision rather than an outage.
Supplier documents are not taken on trust
In the offer comparison the rules are checked by plain code and a model only writes the summary. The buyer’s report quotes supplier text, so it is shown in an isolated environment where the offer’s content cannot run anything. A buyer’s note can relax a rule, and the report shows which rule and which sentence did it.
These rules were worked out together with the client, to fit how they work. In your company they may look different, and I will fit the system to the way you work.
Built with
- Amazon Bedrock
- Amazon Textract
- AWS Step Functions
- AWS Lambda
- LangGraph
- ECS Fargate
- Cognito
- FastAPI
- React
- Terraform
- Python