In a CNC cutting shop, every job already produces all the information needed to price a quote. The problem is that it is locked inside a nesting report that only the person who programs the machines knows how to read. Here is how we got that information out, and what the measured numbers honestly say.
The bottleneck wasn’t the math
At 3D Coupe, a Québec City-area manufacturer that cuts plastic and other materials on an active CNC fleet, every price request went back through the programmer. Even the simplest ones. The nesting report holds everything: the parts, the material, the cut lengths, the sheets used, the offcuts. But it is a dense PDF, built for someone who knows the machines, not for a salesperson.
So the salesperson could not produce a quote alone. And since time estimates relied on experience rather than a written method, two people pricing the same part could land on two different numbers. Neither was wrong, there was simply no common rule.
Twenty-two options, one place to start
We did not start by building. We first mapped the real workflow, from the moment the client’s drawing arrives to the moment the program is sent to the machine. Then we assessed twenty-two automation options, one by one, each with its difficulty, its cost and its integration timeline.
Estimating came out first, and not because it was the most spectacular. It came up often, it blocked sales, and above all the information it needed already existed, complete and reliable. The options we set aside were not thrown out: they form the plan for the next phases, each with the data that has to be accumulated first.
This is the part of the engagement we talk about least and that matters most. Management chose its starting point based on a comparison, not on a hunch or on what looked impressive in a demo.
Five agents, each with a single task
The system we built is a chain of five specialized agents, built on the OpenAI API. A nesting report is dropped into a watched folder and the chain starts on its own.
- Extraction. It reads the PDF and pulls out the raw data blocks.
- Normalization. It turns those blocks into a clean table of parts, comparable from one project to the next.
- Tool matching. It links each part to its cutting tool using the shop’s tool chart.
- Pricing. It calculates the passes, the cutting and setup times, and the material consumed.
- Report. It assembles everything into a quote document, emailed to the person in charge.
Splitting the work is not an architecture detail. When a number is wrong, we know which link to fix, and we fix it without touching the others. One big request that does everything would be impossible to debug in a shop where nobody wants to read model logs.
The heart of the system is the formula
We could have asked a model to estimate a machining time. We didn’t. The calculation rests on a written method: number of passes by thickness, actual cut length, feed rate by tool, setup time that decreases with the number of parts per sheet, and net surface consumed after offcuts.
The agents apply this method, they don’t invent it. The result: the calculation is reproducible, and an estimator can check it by hand, line by line. To make it work, we had to clean up the tool chart and put on paper rules that until then lived in the heads of a few people. That work is not elegant, but it is what makes everything else credible.
Test on the real thing, fix the instructions
About ten real cases served as the test: varied clients, materials, thicknesses and quantities. Every time the system strayed from the expected result, we fixed the faulty agent’s instructions rather than excuse the gap. Nothing was connected to the machines. The chain works on reports that already exist, so there was no risk to production during setup.
What the numbers say, and what they don’t
In testing, estimating a 2D part went from an average of 58.4 minutes to 14.5 minutes. At the shop’s current pace, six quotes a week of about five parts each, that is roughly thirty parts to price every week. At 43.9 minutes recovered per part, we are talking about nearly 22 hours a week, so more than 1,100 hours a year.
Now the caveats, because they matter. These figures come from about ten tests on real projects, not from a year of operation. The salesperson still has to add the material price and check the report before sending it: nothing goes out without that step. And the ± 5% precision on machining time is a target, not a result we claim as achieved. What we can say without overstating anything is that the most repetitive task in the sales process has become a check rather than a calculation.
The gain that is harder to see
The most lasting gain is not in the minutes column. The calculation method is now written down. Two people pricing the same project arrive at the same number, and a new employee starts from the right base instead of relearning by trial and error. Every project processed also leaves behind real times, which will be used to refine the estimates and open the next phases: drawing validation on intake, offcut tracking, a link to the management system.
“In a shop, a solution that requires data entry doesn’t survive three weeks. This one asks for nothing: it reads what already exists and applies a formula you can check by hand.”
What this means for your shop
If you are a manufacturer, the useful question is not “can we put AI in estimating?” It is: what information does my shop already produce, in a form that nobody but two or three people can read? That is almost always where the first profitable project hides. It can start without touching the machines, without adding a minute of data entry, and it can be measured: one minute before, one minute after.
The full details of the engagement, with the roadmap for the next phases, are in the 3D Coupe case study →
The project was also the subject of an article by STIQ: Artificial intelligence is transforming the plastics industry ↗

What this article argues, we put into production for a client. The case walks through what was built, how, and what changed.


