
Why copying a competitor's shop rate is a guessing game
Somebody asks in a forum, at a trade show, or in a group text with three other owners: "what are you charging per hour?" A number comes back — $85, $95, $110 — and it gets typed into the next quote without much more thought than that. It feels like market research. It isn't. That other shop's rate reflects their overhead, their machine mix, their labor cost, their debt load, and how badly they wanted that particular job the day they set it. None of that is your cost structure.
The result shows up months later, not at the moment you quote. A job that looked profitable on the quote comes in over on setup time, the material spec changed mid-run, or the operator ran it at a more conservative feed than the estimate assumed — and the invoice still reflects the borrowed rate, not what the job actually cost you to run. By the time the quarter closes and margin has quietly eroded, there's no way to trace which jobs did it, because the rate was never built from your own numbers in the first place.
This article walks through how to build a machining hourly rate from your own cost structure — labor, machine burden, and overhead — so the number you quote is defensible, work-center-specific, and traceable back to an actual cost rather than a guess borrowed from someone else's shop.
The real question isn't "what's the going rate" — it's "what does an hour actually cost me"
The question "how much to charge for machining per hour" only has a stable answer once you've separated it from "what does the market seem to be paying." Those are different problems solved with different data. The market rate tells you what a customer might accept. Your cost rate tells you the floor below which every hour you sell loses money. You need the second number first — the market rate is a negotiating input you layer on top, not a substitute.
The cost rate has three components:
- Direct labor — what the operator running that work center actually costs you per hour, fully loaded (wages, payroll taxes, benefits — not just the number on their paycheck).
- Machine burden — the cost of owning and running that specific piece of equipment: depreciation or lease, power, tooling, maintenance, and the facility cost allocated to the square footage it occupies.
- Shop overhead — everything that doesn't attach to one machine: rent on common areas, admin salaries, insurance, software, quality functions — spread across your total billable hours.
Add those three together per work center and you get a burden rate specific to that machine, not a single number for the whole shop. A 5-axis mill with expensive tooling and a large footprint should carry a different rate than a manual lathe or a welding bay — blending them into one shop-wide number either overprices the cheap work center or underprices the expensive one, and you won't know which until the job's already done.
Building the rate: a worked example
This is illustrative arithmetic to show the method, not a number to copy — plug in your own figures.
Say a representative shop work center runs on these assumptions for the year:
- Annual overhead allocated to that work center (rent share, utilities, maintenance, admin allocation): $120,000
- Annual depreciation and lease cost for the machine: $36,000
- Annual tooling and consumables tied to that machine: $24,000
- Available billable hours for the year (accounting for setup, downtime, and non-billable time — not a theoretical 2,080-hour year): 1,800 hours
Total annual burden for that work center: $120,000 + $36,000 + $24,000 = $180,000. Divide by billable hours: $180,000 ÷ 1,800 = $100/hour machine burden rate.
Add the fully loaded labor cost for the operator running that work center — say $38/hour in this illustration, including taxes and benefits — and the base cost rate for that work center is $138/hour before any margin. Whatever you add on top of that (target margin, risk premium for a difficult customer, rush pricing) is a business decision layered on a real cost floor, not a guess.
Run this same calculation for every distinct work center — mill, lathe, welding bay, assembly line — and you get a rate table instead of one shop-wide number. That's the difference between a machine shop rate calculator that reflects your actual equipment mix and a single figure that averages away the real cost differences between machines.
A rate you can't trace back to a cost breakdown isn't a rate — it's a guess with a dollar sign in front of it.
Where the number actually breaks: actual vs. quoted
Building the rate is half the job. The other half is finding out, job after job, whether the rate held — because a burden rate calculated once a year and never checked against reality drifts quietly out of date. Setup times run longer than estimated, a work center's utilization drops because of unplanned downtime, or tooling costs rise and nobody updates the model.
This is the actual-vs-quoted comparison: for each completed operation, what did the routing say it should take, and what did the clock-in/clock-out record say it actually took? WorkTickets logs a labor actual against each operation on a job's traveler and compares it to the standard time set on the routing — on every tier, per operation and rolled up per job — so a shop can see where quoted hours and actual hours diverge before it becomes a pattern across ten more jobs. On Professional and above, that comparison rolls into a job-level profitability summary once burden and machine rates are configured per work center, so the rate you built on paper gets checked against what jobs are actually costing to run.
That feedback loop is what keeps a machining hourly rate from becoming stale. A rate built once from a spreadsheet and never revisited is only as good as the assumptions that went into it the day you built it.
Setting a rate by work center, not by shop
A single shop-wide hourly rate is easier to quote from, which is exactly why it's dangerous. It hides the fact that your CNC mill, your manual lathe, and your welding bay do not cost the same amount to run per hour. If your rate table is one number, you're either overcharging on the cheap work centers (and losing bids you should win) or undercharging on the expensive ones (and losing margin on every job that uses them).
The fix is a rate table with one line per work center, each built from that work center's own burden and labor cost — the same method as the worked example above, run separately for each machine class. That's the structure behind a CNC shop rate calculator worth using: it asks for machine-specific inputs, not a shop-wide average.
A note for Canadian shops
The mechanics of the calculation don't change north of the border, but a few inputs do — payroll tax treatment, provincial overhead costs, and currency all shift the numbers that go into the same formula. The method stays identical: fully loaded labor, machine burden, shop overhead, divided by realistic billable hours per work center. If you're building a machine shop hourly rate in Canada specifically, confirm your payroll tax and benefits inputs with your accountant before plugging them into the model — the formula travels, the inputs don't.
Build the rate table once, then keep it honest
Getting to a defensible answer for how much to charge for machining per hour isn't a single number — it's a rate table, one line per work center, each one traceable back to labor cost, machine burden, and overhead, checked periodically against what jobs are actually costing to run. Get that structure in place once and every quote afterward starts from a real floor instead of a borrowed guess.
To build your own version of the worked example above, the Shop Rate & Burden Calculator walks through the same inputs — labor, machine burden, overhead, billable hours — for however many work centers your shop runs, and outputs a rate table you can drop straight into your next quote.


