Guides · 23 October 2026
Why small CNC batches lose money, and how to price them
A buyer asks for prices at 10, 25, 50 and 100 pieces. Many shops work out a price per part and use it for every quantity, maybe with a small discount for the big batch. That is how small batches end up losing money: the costs you pay once per order are hidden inside a per-part price that assumes a long run.
Costs per order, costs per part
Every job has two kinds of cost:
- Once per order: CAM programming, setting up the machine, first-off inspection, fixtures, a supplier's minimum lot charge for anodising or heat treatment.
- Every part: material, cycle time, the operator's time per part, outside processing per piece.
At 100 pieces, two hours of programming barely shows in the unit price. At 10 pieces, it can be a third of it.
A worked example
An aluminium part: one hour of setup and a 6-minute cycle on a machine that costs A$120 an hour with its operator, 2.5 hours of CAM programming at A$95 an hour, A$7.50 of material per blank, and clear anodising at A$3.00 a part with a A$120 minimum lot charge. Plan for 97% good parts, add 10% overhead and 25% margin on cost.
| Quantity | Blanks started | Setup + CAM per part | Unit price |
|---|---|---|---|
| 10 | 11 | A$35.75 | A$95.15 |
| 25 | 26 | A$14.30 | A$54.15 |
| 50 | 52 | A$7.15 | A$41.85 |
| 100 | 104 | A$3.58 | A$36.93 |
The price at 10 pieces is more than two and a half times the price at 100, and that is correct. If you had quoted A$45 for every quantity, the batch of 10 would not have covered its own setup and programming.
Two details are easy to miss. First, the anodiser's minimum charge: 10 parts at A$3 is A$30, but you pay A$120. Second, yield: to finish 10 good parts you start 11, and the extra blank and its cycle time are part of the cost.
How to show it to the buyer
Buyers expect a lower unit price for a bigger order; what annoys them is a price that looks arbitrary. A quote that shows several quantity breaks answers the question before they ask it, and often moves them to a larger order. A short line such as "price includes programming and setup, charged once per order" is enough.
For a repeat order of the same revision, the programming is already done. Take it off and say so: it is a fair discount that costs you nothing.
A quick check for your current quotes
- Take the last job you quoted at a small quantity.
- Add up programming, setup and any minimum charges, and divide by the quantity.
- Compare that with the margin in your unit price.
If the one-off costs per part are bigger than your margin, that job was paid for by your other work.