Guides · 24 October 2026
How to charge for CNC programming time on a quote
Programming a part in CAM can take longer than machining a small batch of it. Shops that leave it out of the quote give that time away; shops that spread it over a small quantity can price themselves out of the job. Here is how to estimate it, and two ways to put it on the quote.
What counts as programming time
Everything between receiving the model and having a program that is ready to run:
- reading the drawing and deciding the operations and workholding;
- building the toolpaths in CAM, including the second side if the part is flipped;
- simulating and checking them, and posting the program;
- a setup sheet for the operator.
Proving the program out on the machine is part of the setup, not the programming, because the machine is tied up while it happens. Price it at the machine rate.
Estimating it
The best estimate is your own history. Keep a note of programming hours on each job for a month and group the parts by type: simple 2D profiles and plates, prismatic parts with pockets and holes on several sides, and parts with 3D surfaces or 5-axis work. Each group settles into a range quickly, and you quote from the range, adjusting for the part in front of you. The customer's 3D model helps: the number of holes, pockets and sides you have to machine is a good guide to how long the toolpaths will take.
Price programming time at its own hourly rate: the programmer's cost with on-costs, the CAM software and the computer, plus overhead. It is often lower than a machine rate, because there is no machine in it.
Option 1: spread it over the parts
Most shops add the programming to the job's cost and divide by the quantity, like the setup. Three hours of programming at US$85 an hour is US$255; together with a one-hour setup at US$95 an hour, per part that is:
| Quantity | Programming per part | Setup per part | Together |
|---|---|---|---|
| 5 | US$51.00 | US$19.00 | US$70.00 |
| 10 | US$25.50 | US$9.50 | US$35.00 |
| 25 | US$10.20 | US$3.80 | US$14.00 |
| 50 | US$5.10 | US$1.90 | US$7.00 |
| 100 | US$2.55 | US$0.95 | US$3.50 |
This is simple and the buyer sees one number per quantity. The catch is the small batch: at 5 pieces, the programming alone adds US$51 to every part, and that is before overhead and margin. A buyer comparing your price at 5 with a shop that already has a program for a similar part will see a big gap.
Option 2: show it once, as a one-off charge
The alternative is a separate line, “CAM programming, first order only”, and unit prices that cover only the setup and the parts. With the same part, material at US$6.20 a blank, a 9-minute cycle at US$95 an hour, 10% overhead and 25% margin:
| Quantity | Unit price, programming spread | Unit price, programming shown once |
|---|---|---|
| 10 | US$76.24 | US$41.18 |
| 50 | US$37.74 | US$30.73 |
| 100 | US$32.93 | US$29.43 |
plus one line of US$350.62 for programming: the US$255 of programming time with the same overhead and margin added. The total for any single order is the same either way. What changes:
- The unit prices are honest about the part. The buyer can see that 10 pieces are not three times the work of 100; most of the difference was the programming.
- The repeat order is cheaper, visibly. When the same part comes back, the programming line disappears. That is a good reason to come back to you rather than to a shop that would have to program it from scratch.
- The buyer can split the decision. Some buyers approve one-off charges and part prices from different budgets.
The risk is a buyer who compares unit prices only and forgets the extra line. Put the one-off charge directly under the part lines, not in the small print.
When the part comes back
On a repeat order you do not program again, but you should still check: is it the same drawing revision, does the program still match your current tooling, did the first batch run as planned? A quarter of an hour of checking (about US$21 at the rate above) is worth putting in. If the revision has changed, it is a new programming estimate, not a repeat. The guide on pricing repeat orders covers the rest of what to take off and what to check again.
Check it afterwards
Record the real programming time on every job, next to the estimate. It is the number shops most often guess low, because programming happens at a desk and nobody times it. A month of records is enough to correct your ranges.