Sourcing

How to Read a CNC Quote: Setup, Cycle Time, and Margin Explained

April 25, 2026 · 7 min read

Two CNC quotes for the same part can be 3× different and both can be honest. Here's how to read a quote line-by-line so you can compare apples to apples and spot the shop that's about to lose money on your job (which usually means a bad part).

Setup

Setup is the time to load the program, install workholding, set tool offsets, and prove the first article. It's a one-time cost amortized across the run. Typical setup runs 1–4 hours on a milling job, 0.5–2 hours on a lathe job. If a quote shows zero setup, the shop is hiding it inside the cycle time — which makes quantity 100 look weirdly expensive.

Cycle time per piece

Cycle time is the actual machine running time per part: programmed feeds, rapids, tool changes, and probing. Real shops can tell you cycle time within 10% before cutting metal. A quote without cycle time is a guess.

Material cost

Should be itemized: alloy, size, supplier, and price per pound or per blank. If you supply material, the line should drop to zero (some shops still charge a material handling fee, which is fair).

Programming

For one-off prototypes, programming is often 1–8 hours and is its own line. For recurring production, programming is amortized into the first build and shouldn't re-charge on reorders. Watch out for shops that re-charge programming on every PO.

Inspection

For tight-tolerance work, CMM inspection time per part is its own cost. FAI documentation (AS9102) is usually a separate flat fee on the first build. PPAP documentation is a much bigger flat fee. If you need either, ask up front.

Finishing & secondary ops

Anodizing, plating, heat treat, deburring, marking, threading, hardware install, and assembly should each have a separate line so you can see who's doing what and where it's going. Outside processes add days of lead time — in-house ones don't.

The margin reality

A healthy CNC shop runs on roughly 30–45% gross margin. If a quote feels too good, the shop is either underestimating cycle time, skipping inspection, or planning to lowball the first job and raise prices on the reorder. None of those end well.

Quantity break math

On most jobs, the price-per-piece curve looks like this:

  • Qty 1: high (setup + programming dominate)
  • Qty 10: setup is 1/10 of itself, programming amortized — should drop 30–50%
  • Qty 100: cycle time dominates — should drop another 20–30%
  • Qty 1000+: setup is irrelevant; price approaches the steady-state cycle cost

If a quote is flat across quantity tiers, the shop hasn't actually thought about your job — they're using a markup formula on a per-pound basis.

Lead time

A real lead time references machine availability. "3 weeks ARO" (after receipt of order) is honest. "Quote good for 30 days, lead time TBD" is a placeholder, not a quote.

The scariest line on a CNC quote: "NRE"

Non-Recurring Engineering charges cover fixtures, custom tooling, dedicated gauges, or programming on weird parts. Legitimate on complex jobs. On a 10-piece bracket order, an NRE line is a sign the shop is using your job to fund a fixture they'll keep.

What a clean quote looks like

Setup • cycle time per piece • material per piece • inspection per piece • finishing per piece • subtotal per quantity tier • lead time ARO • notes on what the shop assumed about the drawing. That's it.

We send all our quotes broken out this way — even on $200 jobs. Send a drawing and you'll see exactly where the money goes.