Cost guides · Updated 2026-10-30
How much should a shop charge for CNC programming time?
Price one of your own parts: Drop a STEP model or PDF drawing — about 90 seconds, no account.
Your part priced in about 90 seconds, no account.
Charge programming at your programmer's hourly rate, estimated from the work in the part: our engine allows 15 minutes to bring in the model and plan the job, 5 minutes per setup and 4 minutes per toolpath. At $95 an hour that is $77.58 for a simple drilled plate, $123.50 for a bracket with taps and a pocket, and $213.75 for a housing with 25 toolpaths over 4 setups. Charge it once per part number, not per order: on a 10-piece repeat of that housing, leaving programming in the price overcharges by $27.79 a part.
See how QuotedPart connects to your workflow with its API, MCP server, autonomous quoting and shop-specific learning.
How programming time is estimated
Programming time follows what the programmer actually does, not the size of the part. Bringing in the model, checking it against the print, setting up stock, posting the program and writing the setup sheet is a fixed block of about 15 minutes. Each setup needs a work offset and workholding or a vise defined: about 5 minutes. Each toolpath needs a tool picked from the library, geometry selected, cuts set and the simulation checked: about 4 minutes.
Toolpaths come from the features: a facing pass and a finishing pass per setup, a roughing pass when most of the stock is removed, a drill per hole size plus a spot drill, one more per tap, counterbore or countersink size, and a roughing and a finishing pass per pocket or slot size. A row of identical slots is one toolpath, not six. Lathe programs are mostly 2D profiles written quickly, often at the control, so they start from a smaller base.
| Part | Setups | Toolpaths | Programming min | Programming cost | Share of a 1-piece price | Programming per part at 10 |
|---|---|---|---|---|---|---|
| Drilled plate, 6 × 4 × 0.5 in, 4 holes | 2 | 6 | 49 | $77.58 | 31% | $7.76 |
| Bracket, 4 × 3 × 1 in, holes, 2 taps, 1 pocket | 3 | 12 | 78 | $123.50 | 35% | $12.35 |
| Housing, 6 × 4 × 2 in, 15 holes in 4 sizes, pocket, slots, step | 4 | 25 | 135 | $213.75 | 36% | $21.38 |
| Turned adapter, Ø7/8 × 1.5 in, bore, groove, side tap | 2 | lathe profile | 30 | $46.71 | 17% | $4.67 |
Programming as a share of the price
On a one-piece order programming is a big part of the price: with markup, it is 36% of the one-off housing price and 31% of the drilled plate. At 10 pieces it shrinks to $21.38 of cost per housing, and at 100 pieces it is noise. The other big fixed cost, machine setup, is separate: the housing also carries 113 minutes of mill setup for its 4 setups.
Charge it once: NRE vs spreading it over the lot
Suppose a customer orders the housing in lots of 10, three times a year. If programming is baked into the piece price, every order pays for it: $188.86 each. The program already exists on the second order, so that is $27.79 a part the customer pays for work you aren't doing, and a competitor who prices the repeat correctly beats you by that much.
Shown as a one-time NRE line, programming is $277.88 on the first order, and the piece price is $161.07 on every order. Over three orders of 10 the customer pays $5,110.05 instead of $5,665.80. The first order looks the same, and the repeats get cheaper, and the repeats are the orders worth winning.
- Put programming on its own line for new part numbers, or note it as included on the first order only.
- On a revision, charge the time the edit takes, not a new program.
- Keep the program, setup sheet and first-article data with the part, so the repeat quote can drop the line with confidence.
- Don't waive programming to win a one-off. It is real work, and a buyer comparing shops on a single piece is comparing setup charges anyway.
What makes programming take longer
The formula is a starting point. Raise it for:
- 3D surfaces and blends: roughing and finishing passes per surface, plus time to tune stepovers. Two toolpaths each at minimum.
- 5-axis work: tool-axis control and collision checking take longer than 3+2 positioning.
- Poor models: a PDF-only part or a model that doesn't match the print means drawing geometry first.
- Workholding design: custom workholding is its own program and its own setup.
- Customer program approval or first-article reports that need the program listed.
Engine assumptions
- • Mill programming: 15 min + 5 min a setup + 4 min a toolpath. Lathe programming: 10 min + 1.5 min per face and 3 min per hole, at most 160 min more.
- • Reference parts: fictional, in 6061-T6, ±0.005 in, no finish.
- • CAM programming: $95/h (US catalog default, editable).
- • 3-axis VMC: $95/h, 45 min standard setup (US catalog default, editable).
- • CNC lathe: $90/h, 65 min standard setup (US catalog default, editable).
- • NRE example: three orders of 10 housings; programming marked up 30% like the rest of the cost.
- • Markup: 30% on cost; $65 minimum line charge. No freight, tax, certs or expedite.
| Part | Setups | Toolpaths | Programming min | Programming cost | Share of a 1-piece price | Programming per part at 10 |
|---|---|---|---|---|---|---|
| Drilled plate, 6 × 4 × 0.5 in, 4 holes | 2 | 6 | 49 | $77.58 | 31% | $7.76 |
| Bracket, 4 × 3 × 1 in, holes, 2 taps, 1 pocket | 3 | 12 | 78 | $123.50 | 35% | $12.35 |
| Housing, 6 × 4 × 2 in, 15 holes in 4 sizes, pocket, slots, step | 4 | 25 | 135 | $213.75 | 36% | $21.38 |
| Turned adapter, Ø7/8 × 1.5 in, bore, groove, side tap | 2 | lathe profile | 30 | $46.71 | 17% | $4.67 |
Sources and limits
Claims are dated where they can change. Product calculations are examples from the stated inputs, not a promise about a customer's quote. Competitor wording is attributed to the source shown.
- Programming minutes are computed by QuotedPart's pricing engine's CAM formula from the stated reference parts; rates are the US catalog defaults.
Questions
Should CAM programming be charged at the machine rate?
Charge it at the programmer's rate. Our catalog starts both at $95 an hour, but programming happens at a desk, not on the spindle. If your programmer's loaded cost is lower than your machine rate, a lower programming rate is fair and makes one-offs more competitive.
Is programming the same as setup?
No. Programming is done once per part number at a desk. Setup is loading workholding, tools and offsets at the machine for every lot. A repeat order skips programming but still pays for setup.
Price one of your own parts
Drop a PDF drawing or a STEP file. QuotedPart reads the print, measures the model and prices it in seconds, on default shop rates you can change.
Your STEP file or PDF drawingDrop a PDF drawing, a STEP file or both
Free. No account, no email. Priced at our default US rates until you set yours.
Related QuotedPart guides
Cost guides
How to price large machined parts: one base scaled ×2 and ×4, with crane time and a big-machine rate
Scaling a steel base from 6 × 4 in to 24 × 16 in takes the price from $521 to $1,871 for one. Hoist setup, handling minutes, tool changes and a $150/h large machine priced step by step.
Cost guides
Press brake cost per bend: setup and quantity math
One, four and eight bends priced at an $80/hour brake rate with a 20-minute base setup, tool-program allowance and quantity breaks.
Cost guides
12L14 versus 1018 machining cost for turned parts
Our pricing engine comparison keeps the turned geometry and shop rates fixed while changing only the steel assumption. 12L14 usually wins on cycle time and bar pri
Cost guides
17-4 PH stainless machining cost with a quantity-break example
A small turned 17-4 PH stainless part in this estimate starts with slow cutting and a relatively expensive bar. The pricing engine computes setup, cycle, m