Machine Shop Job Cost Calculation: Method and Worked Example
October 20, 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
Most machine shops know their hourly rates. Far fewer know what a job really costs them, because a job is more than spindle time: it carries stock, saw cuts, CAM programming, setups, deburring, inspection, subcontracted finishing, tooling and packaging, and several of those are paid once per batch rather than once per part. Quote only the cycle time and the material and the price looks competitive, until the job is finished and the margin is gone.
This guide shows how to calculate the full cost of a job in a machine shop, line by line, with a worked example in EUR and the same job priced at two batch sizes. It assumes you already have fully burdened machine rates; if you do not, start with how to calculate a machine shop hourly rate.
What a job cost sheet must contain
A job cost sheet is a list of every resource the job consumes, each with its quantity and its unit cost. For a machined part, these are the lines:
- Material: the stock you buy, not the finished part. Bar or plate size rounded up to what you stock, plus cut-off and facing allowance, priced by weight.
- Cutting the stock: sawing time per blank.
- CAM programming: hours at the programmer's rate, paid once per new part number.
- Setups: fixturing, tool loading and first-piece check, once per operation per batch.
- Cycle time: machine time per piece, for every operation (turning, milling, drilling).
- Secondary operations: deburring, washing, marking.
- Inspection: first-article inspection once per batch, plus sampling per piece.
- Subcontracted work: heat treatment, plating, coating, with the supplier's minimum charge, transport and your handling uplift.
- Tooling and consumables: inserts, drills, special tools worn by the job.
- Packaging and shipping: if the price includes them.
Two rules keep the sheet honest. First, one-off costs are spread over the batch: programming, setups, first-article inspection and subcontract minimums are divided by the number of pieces, which is why the unit price of 10 pieces and of 50 pieces cannot be the same. Second, overhead is counted once: if your machine rates are fully burdened, they already carry rent, energy and indirect staff, so do not add an overhead percentage on top. If your rates are bare, absorb overhead explicitly, as explained in the overhead absorption guide.
Step by step: from the drawing to the job cost
- Read the drawing and write the work plan. Material, stock size, the operations in order, the machine for each one. A turned shaft with a keyway is lathe first, then the milling centre. The work plan is the skeleton of the cost; see work plans for multi-step jobs.
- Price the material on the stock you buy. A part that needs a 46 mm diameter is cut from 50 mm bar. Weight = section × length × density, times your delivered price per kg.
- Estimate setup and cycle for each operation. Setup in hours per batch, cycle in minutes per piece, each at the rate of the machine that does the work.
- Add programming, secondary operations and inspection. These are the lines most often left out of a quick quote.
- Add subcontracted work with its minimum. A plating supplier who charges €0.90 per piece with a €120 minimum charges €120 for a batch of 50, not €45.
- Add tooling, consumables and packaging per piece.
- Sum the cost, then apply margin. Price = cost ÷ (1 − margin). Margin goes on the total, not hidden in each line.
Worked example: a turned shaft with a keyway, batch of 50
A C45 steel shaft, turned from 50 mm bar, then milled for a keyway and two flats, electro-zinc plated by a subcontractor. Cut blank length 130 mm, about 2.0 kg of steel at €1.70/kg. Fully burdened rates: lathe €75/h, machining centre €80/h, saw €45/h, programming €60/h, inspection €55/h, bench €40/h.
| Cost line | Basis | Per piece |
|---|---|---|
| Material | 2.004 kg × €1.70/kg | €3.41 |
| Sawing | 1 min at €45/h | €0.75 |
| CAM programming | 2.5 h × €60/h = €150 ÷ 50 | €3.00 |
| Lathe setup | 1.5 h × €75/h = €112.50 ÷ 50 | €2.25 |
| Turning cycle | 6.5 min at €75/h | €8.12 |
| Milling setup | 1.0 h × €80/h = €80 ÷ 50 | €1.60 |
| Milling cycle | 4 min at €80/h | €5.33 |
| Deburring and washing | 1.5 min at €40/h | €1.00 |
| Inspection | first article 30 min ÷ 50 + 1 min per piece, at €55/h | €1.47 |
| Zinc plating, subcontract | €120 minimum + €60 transport, +10% handling = €198 ÷ 50 | €3.96 |
| Tooling and consumables | inserts and drill wear | €0.60 |
| Packaging | box and labels | €0.40 |
| Job cost per piece | €31.89 |
At a 20% margin the price is €31.89 ÷ 0.80 = €39.86 per piece, €1,993 for the batch.
Now the quick version, the one written from memory: material plus the two cycle times, €16.86 per piece, €21.07 with the same margin. That price is €10.82 per piece below cost. On 50 pieces the shop pays about €541 to make the job, and nothing on the quote says why. The missing €15.03 per piece is sawing, programming, two setups, deburring, inspection, the plating minimum, tooling and packaging: every line that is not spindle time.
The same job at 10 pieces
Change only the quantity. Programming, both setups, the first-article inspection and the plating minimum are now divided by 10 instead of 50, and the job cost rises to €77.33 per piece (price €96.66 at 20% margin). The cycle times have not changed at all. This is why a single "price per piece" for every quantity is always wrong at one end, and why quoting several quantity tiers from the same cost sheet beats guessing three numbers. The contract machining quoting guide shows how batch size changes the formula.
Five mistakes that make a job look cheaper than it is
- Cycle time without setup. The most common one, and it hurts most on small batches.
- Finished weight instead of stock weight. The part weighs 1.3 kg; you bought 2.0 kg.
- Subcontract price without minimum and transport. On a small batch the minimum is the price.
- Programming treated as free. It is real hours, paid once per part number; see estimating CNC programming cost.
- Overhead added twice, or never. Pick burdened rates or explicit absorption, never both and never neither.
FAQ: calculating job cost in a machine shop
How do you calculate the cost of a job in a machine shop? List every resource the job uses: stock material, sawing, programming, setups, cycle time per operation, secondary operations, inspection, subcontracted work with its minimum, tooling and packaging. Multiply each by its unit cost, spread the one-off costs over the batch, sum, then apply margin on the total.
What is the difference between job cost and hourly rate? The hourly rate is the cost of one hour of one machine. The job cost is the sum of all the hours of all the machines and people the job uses, plus material, subcontracted work and consumables. A correct rate is necessary for a correct job cost, but it is not enough.
Should overhead be added to the job cost? Only once. If your machine rates are fully burdened they already include overhead; if they cover only machine and operator, add overhead explicitly with an absorption rate.
Why does the unit cost fall as quantity rises? Programming, setups, first-article inspection and subcontract minimums are paid once per batch. Divided over more pieces they weigh less on each one, while cycle time and material stay the same per piece.
Calculating job cost from the drawing with QuoteBuddy
QuoteBuddy builds this cost sheet from the drawing. It reads the technical drawing, classifies the part as turned or milled, rounds the stock up to the sizes in your catalog and prices it by weight at your material price. Each operation becomes a line with its time and cost at the hourly rate of your own machine, setup kept apart from cycle time, CAM programming as its own line. With several quantities on one estimate, setup is spread over each batch, so the price at 10 and at 50 pieces comes from the same model. Heat treatment and finishes called out on the drawing become their own lines, with your uplift for subcontracted work when you mark the process as outsourced. Every line can be checked, changed and locked, and margin is applied on the total before the quote PDF is produced. QuoteBuddy's margin setting is a markup on cost (price = cost × (1 + margin)): to get the 20% margin on price used above, set 25%.
To try it on a job you have already costed, start QuoteBuddy free for 30 days: unlimited quotes, no credit card. Set your machine rates and stock prices, upload the drawing and compare the lines with your own cost sheet. For shops that quote machined parts every day, see quoting software for CNC machine shops.