How to Price CNC Machined Parts: From Drawing to Quoted Unit Price
June 22, 2026
Most shops know their hourly machine rate. Fewer know how to turn that rate into a defensible unit price for a specific part. The gap between the two is where quoting by feel lives — "that looks like a two-hour job" — and where margin silently disappears when the actual cycle time runs long, the setup takes the whole morning, or the raw stock costs twice what you estimated. Pricing CNC machined parts correctly means building the unit price up from its components every time, not back-calculating from what you think the market will bear.
This article walks through the cost structure for how to price CNC machined parts: material, machine time, setup amortized over batch, overhead, and margin — from drawing to a number you can defend.
The unit price is a sum, not a guess
A CNC machined part has four cost blocks. Each has its own inputs and each can swing the final price independently. Treating them as one blended gut feel means you cannot tell which block is eating your margin when the job runs over.
- Material cost — raw stock purchased for this part, including waste.
- Machine time cost — cycle time on each machine times the machine's fully burdened rate.
- Setup cost amortized over batch — the time to set up the job, divided by the number of parts.
- Overhead and margin — everything else the shop spends, plus the profit you are entitled to.
Add them and you have a cost. Apply your target margin and you have a price.
Material: buy cost plus waste, not catalogue weight
The part weighs what the drawing says it weighs. The stock you buy does not. CNC machining pricing starts with the stock shape — round bar, flat bar, plate, or extrusion — not the finished part weight.
For a turned part: you need a bar long enough for the part plus the cutoff, the chuck grip, and any facing allowance. For a milled part from plate: you need a blank that fits the part plus the clamping tabs or fixture allowance. For a complex five-axis part: you might start with a billet twice the finished weight.
The formula is straightforward:
- Identify the stock shape and its price per kg (or per metre, per sheet).
- Calculate the volume of stock consumed per part, including the waste.
- Multiply by the material price. Add any certification premium (3.1 cert, RoHS, DFARS compliance) if the drawing requires it.
Do not use the finished part weight as a proxy for material cost unless the part is nearly solid and the process removes almost nothing. That shortcut underquotes every part with significant material removal, which is most CNC work.
Machine time: cycle time times the right rate
Machine time cost is the one most estimators handle reasonably well, but two details trip it up regularly.
Cycle time needs to account for the full machine engagement: roughing passes, finishing passes, drilling, tapping, boring, deburring at the machine, and any in-process gauging. If the part needs two setups on the same machine — turn the OD, re-chuck to turn the bore — that is two cycle times plus the rechucking. Turned parts push this further — bar stock, parting, grip length — and the CNC turning cost estimation guide walks the lathe-specific version of this build.
Machine rate needs to be the fully burdened rate for that specific machine, not a shop average. A five-axis machining center costs more per hour than a two-axis lathe from 2005. Using a blended rate systematically overprices simple work (and you lose those bids) and underprices complex work (and you lose those margins). The machine shop hourly rate calculation article covers how to build a rate per machine from depreciation, floor space, power, and labor burden.
Setup: the cost that batch size divides
Setup cost is fixed per job, not per part. Setting up the machine, loading the program, indicating the fixture, running the first-off and adjusting offsets, and completing the first-article check takes the same time whether the batch is one part or fifty. Spread over one part, setup can double the unit cost. Spread over fifty, it becomes almost invisible.
The correct approach: estimate setup time in minutes (or hours for complex five-axis work), multiply by the shop rate for that machine, and divide by the batch quantity. That is the setup contribution per part.
| Batch size | Setup cost (€200 total) | Setup contribution per part |
|---|---|---|
| 1 | €200 | €200.00 |
| 5 | €200 | €40.00 |
| 10 | €200 | €20.00 |
| 25 | €200 | €8.00 |
| 50 | €200 | €4.00 |
This is why unit price drops sharply with quantity at low batch sizes, and why quoting a single prototype the same way as a production run of fifty will lose you the prototype and undervalue your setup time on small orders.
Tolerance and complexity: where the rate multiplier earns its keep
Not all machine time is equal. A part with a ±0.5 mm general tolerance runs faster than one with a ±0.01 mm bore that requires a finishing pass, honing, and a gauged check. The same nominal cycle time does different amounts of real work depending on what the drawing demands.
Some shops handle this with a time multiplier on complex features. Others bake it into the cycle time estimate by planning the operation properly — adding the finish pass, the measurement loop, the possible adjustment and re-run. Either approach works; what does not work is using the same cycle time regardless of the tolerance. A tight tolerance takes more time and more scrap risk. Both cost money.
The same logic applies to material machinability. Hardened tool steel, titanium, Inconel, and other difficult materials run at a fraction of the surface speed of soft aluminum or mild steel. The machine is on the same rate per hour; it is just producing less material removal per hour. Cycle time goes up. Price goes up.
Overhead: what the shop spends outside the machine
Even after machine time and setup, there are costs that do not attach to a specific machine or a specific operation: the quality inspection at the end, the packaging, the administration of the order, and the portion of shop overhead not already in the machine rate.
Some shops include these in the machine rate. Others add a percentage on top of the calculated cost. The important thing is that they are included somewhere, consistently, and not absorbed into the margin by accident. Overhead that is invisible in the estimate is overhead paid out of profit.
Applying the margin: on cost, not on guesswork
Once you have a total cost — material plus machine time plus setup amortized plus overhead — applying margin is arithmetic. Decide the target margin percentage the job needs to carry, use the margin formula (price = cost ÷ (1 − margin %)), and that is your unit price.
The discipline is using the same target margin across all jobs unless there is a specific reason to vary it — strategic pricing on a new customer, a repeat order with negotiated terms, or a high-risk job that deserves a premium. Random variation in margin across quotes is how shops end up with a portfolio of jobs where half are keeping the lights on and half are paying for the ones that slipped.
From drawing to price in a repeatable workflow
The bottleneck in CNC machining pricing is usually not the arithmetic — it is the reading. Extracting material, operations, tolerances, and features from a technical drawing by hand takes time, and under deadline pressure that reading gets shortcut. Features get missed. Tolerances get averaged. Material gets assumed rather than called out from the title block.
QuoteBuddy reads the technical drawing and surfaces the features — material callout, key dimensions, tolerance classes, operations implied by the geometry — so the estimator works from a complete picture rather than a hurried scan. The cost engine then builds the unit price from your machine rates, setup times, material costs, and target margin, the same way every time. The number you quote is the number the job was priced to, not a feeling from a busy afternoon.
Start a 30-day trial and run a few real drawings through the process — from upload to a complete, itemized quote PDF. See whether the unit price it builds matches what you would have quoted by feel, and whether the margin lands where you intended.