# CNC Setup Amortization and Quantity Price Break Calculator

> Source: https://netray.co/tools/cnc-setup-amortization-and-quantity-price-break-calculator
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

See how setup hours and first article cost fall per piece as lot size grows, and find the quantity where setup drops below 10 percent of cost.

## Category

cost-finance

## Industry

CNC Machining

## Audience

- Estimator
- Sales engineer
- Shop owner

## Tool

**Kind:** calculator

**Currency:** $

**Inputs:**

#### Lot quantity

**Key:** qty

**Type:** slider

**Default:** 50

**Min:** 1

**Max:** 1000

**Step:** 1

**Unit:** parts

**Help:** Pieces ordered on this release.

#### Setup time

**Key:** setup_hr

**Type:** number

**Default:** 2.5

**Min:** 0

**Step:** 0.25

**Unit:** hours

**Help:** Fixture install, tool loading, offsets, program prove-out.

#### Setup rate

**Key:** setup_rate

**Type:** number

**Default:** 95

**Min:** 0

**Step:** 5

**Unit:** $/hr

**Help:** Burdened machine plus setter rate.

#### First article and one-time cost

**Key:** fai_cost

**Type:** number

**Default:** 150

**Min:** 0

**Step:** 10

**Unit:** $

**Help:** First article inspection, CMM program, special gauges.

#### Run time per part

**Key:** run_min

**Type:** number

**Default:** 6.5

**Min:** 0

**Step:** 0.1

**Unit:** min

#### Run rate

**Key:** run_rate

**Type:** number

**Default:** 85

**Min:** 0

**Step:** 5

**Unit:** $/hr

#### Material per piece

**Key:** material_pc

**Type:** number

**Default:** 14.5

**Min:** 0

**Step:** 0.25

**Unit:** $

#### Tooling and consumables per piece

**Key:** tooling_pc

**Type:** number

**Default:** 0.8

**Min:** 0

**Step:** 0.05

**Unit:** $

#### Scrap allowance

**Key:** scrap

**Type:** slider

**Default:** 3

**Min:** 0

**Max:** 20

**Step:** 0.5

**Unit:** %

**Help:** Share of pieces expected to be scrapped. Cost is spread over good pieces.

#### Target margin on price

**Key:** margin

**Type:** slider

**Default:** 30

**Min:** 0

**Max:** 60

**Step:** 1

**Unit:** %

**Help:** Margin as a share of the selling price, not markup on cost.

**Outputs:**

#### One-time cost for the lot

**Key:** onetime

**Expr:** setup_hr * setup_rate + fai_cost

**Format:** currency

**Description:** Setup labor plus first article and one-time costs.

#### Run cost per piece

**Key:** run_cost_pc

**Expr:** run_min / 60 * run_rate

**Format:** currency

#### Variable cost per good piece

**Key:** var_pc

**Expr:** (run_cost_pc + material_pc + tooling_pc) / (1 - scrap / 100)

**Format:** currency

**Description:** Run, material and tooling, grossed up for scrap.

#### Setup cost per piece

**Key:** setup_pc

**Expr:** onetime / qty

**Format:** currency

#### Total cost per piece

**Key:** cost_pc

**Expr:** var_pc + setup_pc

**Format:** currency

**Primary:** true

#### Price per piece

**Key:** price_pc

**Expr:** cost_pc / (1 - margin / 100)

**Format:** currency

**Primary:** true

**Description:** Cost divided by (1 minus margin) delivers the stated margin on price.

#### Total lot price

**Key:** lot_price

**Expr:** price_pc * qty

**Format:** currency

#### Setup share of cost

**Key:** setup_share

**Expr:** setup_pc / cost_pc * 100

**Format:** percent

#### Quantity where setup is 10% of cost

**Key:** qty_10

**Expr:** ceil(9 * onetime / var_pc)

**Format:** integer

**Description:** Derived from onetime / qty = 0.1 / 0.9 x variable cost.

**Chart:**

#### Cost and price per piece vs lot quantity

**Type:** line

**X:** qty

**From:** 1

**To:** 500

**Steps:** 50

**Series:**

- cost_pc
- price_pc

**Disclaimer:** Planning aid. Costs are your own inputs, and price breaks should also consider material buy quantities, capacity and customer relationship. Scrap is spread over good pieces by dividing variable cost by (1 minus scrap).

## Content

**Intro:** Every machining quote with quantity breaks hides the same curve: a fixed setup cost divided by a growing lot. This calculator builds the curve from your own setup, run, material and scrap numbers so you can set price breaks you can defend.

**Sections:**

#### How to use the calculator

**Body:** Enter the setup hours and rate, plus any one-time first article cost. Then enter run time, run rate, material and tooling per piece and a scrap allowance. Set the lot quantity with the slider and read cost and price per piece. The chart sweeps quantity from 1 to 500 so you can pick break points such as 10, 25, 50, 100 and 250 directly from the curve. The last output tells you the quantity at which setup falls to 10 percent of piece cost, a practical rule of thumb for where further price breaks give diminishing returns.

**Bullets:**

- Use the same machine rate you use on your quote worksheet
- Put CMM programming and special gauging in the one-time field
- Re-run for the repeat order case with setup reduced to 0.5 to 1 hour

#### The costing method

**Body:** Unit cost = (run + material + tooling) / (1 - scrap rate) + (setup + one-time) / quantity. Dividing variable cost by the good-piece yield spreads scrap over what you ship. Price uses margin on price: price = cost / (1 - margin). This is the standard contribution view used in job shop costing, and differs from markup, which multiplies cost. A 30 percent margin on price equals a 42.9 percent markup on cost. Keep the two straight when quoting, because mixing them is the most common reason quoted margins come in below target.

#### Reading the break curve

**Body:** With the defaults, one-time cost is 387.50 dollars. At 10 pieces setup adds about 38.75 per piece, at 50 pieces about 7.75 and at 500 pieces under 1. The curve falls steeply and then flattens, so the first quantity doublings matter most. If a customer asks for 25 and 100 piece prices, the gap should roughly equal the setup saved per piece, not a flat percentage. Showing that arithmetic in your quote note makes the price break easy to justify and discourages arbitrary discount requests.

#### Common mistakes

**Body:** Spreading setup over the quantity ordered but forgetting that scrap pieces also absorb setup is a common slip, so the scrap gross-up here is applied to variable cost. Another is quoting a price break that is lower than variable cost plus a fair share of setup for repeat orders. Also avoid using a single setup figure for every part family: a simple turned part and a five-axis housing have very different setups. If you have routings in your ERP, pull setup hours from actuals rather than standards.

**Cta:** If setup hours and scrap rates live in your ERP routings and shop floor data, Netray can pull actuals into this calculation so quantity breaks reflect what jobs really cost.

**Faq:**

#### What is the difference between margin and markup?

**Answer:** Margin is profit as a share of selling price, and markup is profit as a share of cost. A 30 percent margin needs a 42.9 percent markup. Confusing them is why many quotes miss target profit.

#### Should repeat orders use the same setup?

**Answer:** Usually not. Repeat orders reuse fixtures, programs and proven offsets, so setup often falls to 0.5 to 1 hour and first article cost drops to zero. Quote the repeat price as a separate break to stay competitive.

#### How should I treat scrap?

**Answer:** Use the historical scrap percent for similar parts and apply it to variable cost, since scrap pieces consume material and machine time. Keep a separate allowance for first-lot proving-out if that is typical in your shop.

#### Where should I place quantity breaks?

**Answer:** Place them where setup per piece changes meaningfully, often at 1, 5, 10, 25, 50, 100, 250 and 500. Use the chart to confirm that each break saves the customer a visible amount without cutting below your floor margin.

## Search terms

cnc setup cost amortization, quantity price break calculator machining, setup cost per part calculator, machined part price by quantity, lot size price break cnc, job shop quantity breaks, setup cost amortization by lot size, cost per piece vs lot size

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
