Quantity pricing in a machine shop should come from cost behavior, not from a generic discount table. The key is to separate work performed once per batch from work repeated for every part.
1. Separate fixed batch work from per-part work
Typical fixed batch work includes setup, programming, and one-time tooling. Typical variable work includes machine run time, material, and normal scrap.
For a simple estimate:
fixed batch cost = (setup hours + programming hours) × hourly cost rate + one-time tooling
expected starts = good quantity ÷ (1 − scrap rate)
variable cost = expected starts × (run hours per part × hourly cost rate + material per start)
estimated cost = fixed batch cost + variable cost
selling price = estimated cost ÷ (1 − target margin)
unit price = selling price ÷ good quantity
Use one unit consistently. If run time is entered in minutes, divide by 60 before multiplying by an hourly rate.
2. Allocate setup across good parts
Assume a job has three setup hours, two programming hours, a $128/hour cost rate, and $150 of one-time tooling.
(3 + 2) × $128 + $150 = $790 fixed batch cost
At 10 good parts, the fixed share is $79 per part. At 50 parts, it is $15.80. At 100 parts, it is $7.90. That declining fixed share is the main reason a defensible unit price can fall as quantity rises.
Run time does not disappear at higher quantities. Unless the process itself becomes more efficient, the variable machining cost per expected start remains.
3. Treat scrap as yield loss
A 10% scrap rate means 10 out of every 100 starts are rejected. It does not mean simply adding 10% to the requested good quantity.
expected starts for 100 good parts = 100 ÷ (1 − 0.10) = 111.11
Adding 10% would produce 110 starts, which understates the expected requirement. The result is a planning average, not an instruction to start a fraction of a physical part.
4. Do not apply profit twice
If the hourly input already includes profit and the quote calculation applies margin again, the estimate double-counts profit. Use a break-even cost rate when building job cost, then apply one documented selling-price rule at the end.
Margin and markup are also different:
selling price from margin = cost ÷ (1 − margin)
selling price from markup = cost × (1 + markup)
A 20% margin therefore requires dividing cost by 0.80, not multiplying it by 1.20.
5. Review what the formula leaves out
The basic model does not automatically include inspection, outside processing, freight, certifications, special packaging, order administration, expedite risk, or commercial adjustments. Add those items explicitly before releasing a quote. Also compare the result with any documented minimum charge.
I work on ShopQuote Flow. We built a free, no-sign-up setup + run time quantity calculator that implements the formulas above and shows three quantities side by side. The calculator stores its draft locally in the browser and can export the comparison as CSV.
The useful habit is not choosing a bigger discount for a bigger order. It is showing which costs are fixed, which costs vary, and which assumptions changed.
Top comments (0)