CNC Programming Cost: Estimating CAM Hours in Quotes
September 17, 2026
Still quoting parts like this by hand? Try QuoteBuddy free — from drawing to quote in minutesFree for 30 days · Unlimited quotes · No credit card required
CNC programming is the cost block estimators handle worst. Machine time gets a cycle-time estimate, material gets weighed, setup gets its minutes — and then the hours a programmer will spend in CAM building toolpaths, picking tools, and proving the program out get either forgotten entirely or buried inside a vague "engineering" line that nobody can defend when the customer asks what it covers. On a one-off 5-axis part, programming can be the single largest cost in the job, bigger than the machining itself. On a repeat order of a part programmed two years ago, it can legitimately be close to zero. Estimating CNC programming cost properly means knowing which of those two worlds the job lives in before the quote goes out.
This guide breaks programming down the way an estimator needs it: hours by complexity class, what the programmer's hour costs once the CAM seat is loaded onto it, when to line-item versus amortize, how program reuse changes the maths on repeats, and when conversational programming at the control is the honest answer.
How much does CNC programming cost? Benchmark ranges
Start with the ballpark. These are 2026 calibration ranges for European job shops — points to check your own numbers against, not prices to copy, because the programmer's rate and the CAM software you carry move every row.
| Item | Typical range (EUR) |
|---|---|
| CAM programmer, fully burdened (incl. seat) | €55–90 / h |
| 2D profile / simple turning program | €20–60 (15–45 min) |
| Prismatic 3-axis part, one setup | €60–180 (1–2.5 h) |
| Multi-setup 3-axis with fixtures | €200–600 (3–8 h) |
| 3+2 positional 5-axis | €350–1,200 (5–15 h) |
| Simultaneous 5-axis (surfaces, impellers) | €1,200–4,000 (2–5 d) |
| Repeat order, program on file | €0–80 (0–1 h check) |
Two things jump out. The spread is enormous — three orders of magnitude — which is why a flat "programming: €150" line is wrong on almost every job. And the last row wins or loses repeat work: re-charging full programming on a repeat prices you out of the job, while never charging it at all funds new-part development out of overhead.
Programming hours by complexity class
The honest way to estimate programming time is to classify the part, not to guess a number. Complexity in CAM is driven by a handful of things you can read off the drawing: how many setups the part needs, how many distinct features and tools, whether the geometry is prismatic or sculptured, and how tight the process must be controlled around thin walls, deep pockets, or exotic material.
A workable classification for quoting:
- Class 1 — 2D and simple turning. Profiles, flat plates, simple turned parts with external features. The geometry imports clean, standard tools, one operation. 15–45 minutes including posting and a quick simulation.
- Class 2 — prismatic 3-axis, one setup. Pockets, holes, faces on a single side. Feature recognition does much of the work; the programmer's time goes into tool selection and sensible ordering. 1–2.5 hours.
- Class 3 — multi-setup 3-axis. Two to four setups, fixture thinking, datum transfer between operations, more simulation because a crash between setups is expensive. 3–8 hours, and the fixture design itself may be separate NRE.
- Class 4 — 3+2 positional 5-axis. The machine tilts to reach faces but cuts with three axes. The programming is manageable, the verification is not optional: full machine simulation with the real head, table, and fixture models to prove clearances. 5–15 hours.
- Class 5 — simultaneous 5-axis. Sculptured surfaces, impellers, blisks, ports. Toolpath strategy is engineering work: lead and tilt angles, collision avoidance in motion, surface finish tuning, and usually at least one iteration after the first article. Two to five days is normal, and on a genuinely new family of parts it can be more.
Classify the part first, then apply your programmer's rate to that class's hours — thirty seconds that remove the biggest source of noise in the estimate. The same reading feeds cycle time estimation: if the geometry pushed the job into a higher programming class, the cycle time probably moved with it. The 3-axis versus 5-axis cost question is tangled up here too: 5-axis often wins machine time back by killing setups, but part of what it saves on the floor it spends in front of the CAM screen.
The programmer's hour costs more than the programmer
The rate you apply to those hours must be a burdened rate, built with the same discipline you use for a machine's hourly rate. A CAM programmer's cost is not their salary divided by their hours. It carries the workstation, the office share — and above all the CAM seat.
A mid-range 3-axis CAM package runs roughly €4,000–8,000 per year per seat in licence and maintenance; a high-end 5-axis system with machine simulation lands at €12,000–25,000 per year once you add the post-processors, which are purchased or commissioned per machine and are not a rounding error — a proven 5-axis post can cost €3,000–10,000 on its own. Spread over perhaps 1,400 productive programming hours a year, the software alone adds €3–18 to every programming hour, before the verification seat and tool-library maintenance. A shop that pays its programmer €35 an hour in salary and quotes programming at €40 is donating the entire CAM infrastructure to its customers.
One second-order decision: does the CAM burden sit on the programming rate or in the machine rates? Both are defensible; mixing them is not. If the milling rate already carries a share of the seat, do not load it onto the programming hour too, or every new part pays for the software twice. For most job shops the cleaner model is CAM cost on the programming hour, where the cost is actually consumed.
Line item or amortized? Batch size and repeat likelihood decide
Once you have hours and a rate, the estimating question becomes a pricing question: does programming appear as its own NRE line on the quote, or does it disappear into the piece price? There is no universal answer, but there is a two-variable rule that covers most cases: batch size and repeat likelihood.
| Situation | Treatment |
|---|---|
| One-off / prototype, unlikely to repeat | Full programming as a visible NRE line |
| Small batch (1–20), repeat plausible | NRE line, or amortize over the batch — state which |
| Production batch, repeats expected | Amortize over first order or a stated total quantity |
| Frame agreement / scheduled releases | Amortize over the contracted volume, or absorb strategically |
The failure modes sit at the extremes. Amortizing three days of 5-axis programming into two prototypes produces a piece price that looks insane next to competitors who line-item the NRE — same money, unwinnable optics. Silently absorbing programming on "production" work that never repeats leaves the shop having financed development for a customer who took the second order elsewhere, program in hand. It is the same arithmetic as prototype versus production pricing: fixed job costs need an explicit home. When you amortize, write the assumption on the quote — "programming amortized over first 200 pieces" — because that sentence protects you when the order arrives for 40.
Repeats: the program is an asset, treat it like one
The second order of a part you have already programmed should not pay for programming again — but not automatically zero either. A realistic repeat carries 15–60 minutes: pull the program, check the drawing revision against the one the program was cut for, confirm the tools still exist, re-post if the job moves machines. That cost is real and trivially small compared to the first run — which is precisely the incumbent's margin advantage on every repeat, and a good reason to fight for first orders at thin margins on parts with obvious repeat potential.
The operational risk on repeats is not the hours, it is the revision. A program cut against revision C quietly run against a revision D drawing is how scrap happens at full batch quantity. That is a quoting problem before it is a shop-floor problem: the quote, the drawing revision, and the program version need to be linked so that a repeat RFQ against a new revision triggers a re-check instead of a reflex "program on file, €0". How to keep that thread intact is the subject of quote version control — the estimating discipline and the programming asset register are the same list viewed from two ends.
When conversational programming at the machine is cheaper
Not every part deserves CAM. Modern controls program 2D milling, drilling patterns, and straightforward turning conversationally at the machine in minutes, and for the right jobs that is the cheapest correct answer: no CAM seat consumed, no posting, no file handling, and the person programming is the person who will cut the part.
The economics are easy to misapply. Conversational programming costs machine-rate minutes, not programmer-rate hours: fifteen minutes on a €75/h machine is under €20, where the same part through CAM might cost €60. But the trade flips fast — conversational time is machine downtime, invisible in the quote and very visible in setup time, it leaves no reusable asset for the repeat, and beyond simple geometry it is slower than CAM and unverifiable before the first cut. A sensible calibration: conversational for class 1 work in small quantities, CAM for everything else, and never conversational for a part with repeat potential — the €60 of CAM buys the asset that makes the second order nearly free.
Worked example: one bracket, three scenarios
A prismatic steel mounting bracket, two setups on a 3-axis mill, class 3 at the light end: 3.0 hours of programming at a burdened €75/h, so €225 of NRE. Machining runs 22 minutes a piece at €70/h (€25.70), material is €6.10, setup is €90 per batch. Same part, three commercial situations:
| Scenario | Programming charged | Per-part impact | Piece price effect |
|---|---|---|---|
| One-off prototype | €225 NRE line | — | Part priced on its own cost |
| First batch of 25, repeat likely | €225 amortized over 25 | €9.00 | Piece price carries €9.00 |
| Repeat batch of 25, program held | 0.5 h revision check, €37.50 | €1.50 | €7.50/part cheaper than run 1 |
The numbers are small and the point is large: on the repeat, the shop can cut its price by €7.50 a part while making better margin than on the first batch, because the programming asset already exists. A competitor quoting the same repeat from scratch carries the full €9.00 — or ignores programming entirely, wins the development work at a loss, and hands the profitable repeat to whoever holds the program.
FAQ: CNC programming cost
How much does CNC programming cost? At a burdened programmer rate of €55–90/h, a simple turned or 2D part costs €20–60 to program, a single-setup prismatic 3-axis part €60–180, multi-setup work €200–600, and 3+2 five-axis €350–1,200. Simultaneous 5-axis surface work runs €1,200–4,000 or more, because it is measured in days. The driver is complexity class — setups, features, and whether the geometry is prismatic or sculptured — not part size.
Is CNC programming charged separately on a quote? It depends on batch size and repeat likelihood. One-offs and prototypes should carry programming as a visible NRE line; production batches with expected repeats usually amortize it into the piece price over a stated quantity. The mistake is silence: absorbing it invisibly on parts that never repeat, or amortizing days of 5-axis work into two prototypes and producing an unexplainable piece price.
Do repeat orders pay for programming again? They should not pay full price, and they should rarely pay zero. A realistic repeat carries 15–60 minutes: retrieving the program, checking the drawing revision against the one the program was written for, and confirming tooling. The revision check is the part that matters — running an old program against a new revision is how a full batch gets scrapped.
How long does 5-axis programming take? Positional 3+2 work typically takes 5–15 hours including machine simulation, since proving clearances with the real head and fixture models is not optional. Simultaneous 5-axis — impellers, blisks, sculptured surfaces — takes two to five days and often an iteration after first article. On a one-off, that programming block can exceed the machining cost itself.
Should the CAM software cost be in the machine rate or the programming rate? Either works; both at once does not. A CAM seat plus posts costs roughly €4,000–25,000 per year, which is €3–18 per productive programming hour. Load it onto the programming hour — that is where it is consumed — and keep it out of the machine rates, so repeat parts that barely touch CAM are not paying for it twice.
Programming hours start from reading the drawing
Everything in this guide starts with the same act: reading the part. The complexity class, the setup count, the features that force 5-axis, the revision letter that decides whether the repeat is free — all of it comes off the drawing, and under quoting pressure that reading is exactly what gets rushed. A part skimmed as "3-axis, one setup" that is actually a class 4 job is a programming estimate wrong by a factor of five before anyone opens CAM.
QuoteBuddy reads the technical drawing and surfaces what the programming estimate needs — geometry, feature count, setups implied by the faces being machined, material and revision from the title block — so the estimator classifies the part from a complete picture instead of a thirty-second scan. The cost engine then builds the quote deterministically from your rates: programmer hours by class, machine time, material, setup, margin — the same way every time, with programming visible as its own block instead of vanishing into a round number.
Start a 30-day trial and run a few real drawings through it — including one repeat you quoted last year. See where the programming block lands, and whether your current quotes were charging for it at all.