Skip to content
WorkTickets.comTraveler & Job CostingWorkTickets.com home
Job Costing

How to Calculate a Machine Shop Hourly Rate You Can Defend

Rovaryn Digital10 min read

The rate you quoted from memory is the rate you can't explain later

A customer calls asking why the quote came in higher than last year's job on the same part. You pull up the number — $85 an hour, same as always — and you have no good answer for where it came from. Maybe it's what the shop down the street charges. Maybe it's what you charged in 2019 and never revisited. Maybe it's a number that felt right the day you set it and has drifted ever since, quietly eating margin on every job that runs longer or every machine that sits idle more than you assumed.

An hourly rate built on feel works fine until someone asks you to defend it — a customer negotiating a blanket order, a new hire pricing their first quote, your own gut telling you a job that should have been profitable wasn't. At that point, "it's what we've always charged" isn't an answer. A rate built from your actual overhead, your actual wages, and your actual productive hours is an answer. It's also the only version of the number that moves correctly when your costs move.

This article walks through the calculation itself — the overhead pool, the productive-hours denominator, the burden rate, and the markup that turns burden into a billable price — using a worked example you can substitute your own numbers into.

What a shop hourly rate actually has to pay for

A defensible hourly rate is built from three layers, in order:

  1. Direct labor — the wage (and associated payroll costs) of the person running the machine or work center for that hour.
  2. Burden (overhead) — everything that keeps the shop capable of running that hour: rent, utilities, machine depreciation, insurance, indirect labor (supervision, quality, maintenance), software, and the rest of the cost pool that doesn't attach to any single job but has to be paid for by all of them collectively.
  3. Margin — the profit built on top of labor and burden, which is a business decision, not an accounting one, and outside the scope of this calculation.

The mechanical part of the job — the part most shops skip or approximate — is turning a shop's total overhead into a per-hour number that can sit on a quote next to labor and margin. That's the burden rate, and it's the foundation for how to calculate burden rate in more detail if you want the deeper mechanics of that single step. This article covers the full path from overhead pool to defensible billable rate.

Step 1: Total your annual overhead pool

Start by listing every cost the shop incurs that isn't direct labor tied to a specific job. A representative pool for a small job shop typically includes:

  • Facility costs: rent or mortgage, utilities, property tax, facility insurance
  • Equipment costs: machine depreciation or lease payments, maintenance contracts, tooling that isn't billed per-job
  • Indirect labor: supervisors, quality inspectors, schedulers, admin/office staff — anyone not directly running a billable operation
  • Insurance and benefits not already captured in direct wage cost
  • Software and systems: ERP or costing tools, accounting software, any subscriptions the shop runs on
  • Consumables and shop supplies not billed to a specific job

Add these up for a full fiscal year. This is the burden pool — the total dollar amount that has to be recovered across every productive hour the shop sells, regardless of which job produced it.

Worked example (illustrative, for a representative small shop):

Overhead category Annual cost
Rent & utilities $84,000
Equipment depreciation & maintenance $96,000
Indirect labor (supervision, QC, admin) $210,000
Insurance & benefits (non-wage) $38,000
Software & systems $9,000
Shop supplies & consumables $13,000
Total annual overhead $450,000

These numbers are illustrative — the exercise is the method, not the figures. Your own pool could be a fraction of this or several times larger depending on shop size, equipment age, and how much is leased versus owned.

Step 2: Determine productive hours, not calendar hours

This is the step most shops get wrong, and it's the single biggest lever in the whole calculation. The temptation is to divide overhead by the theoretical hours available — one shift, five days a week, fifty-two weeks a year, times the number of machines or people. That number is always too high, because it assumes zero downtime, zero setup time that isn't separately billed, zero vacation, and zero maintenance.

Productive hours are the hours actually available to run billable work, after subtracting:

  • Holidays, vacation, and planned time off
  • Average unplanned downtime (breakdowns, waiting on material, waiting on inspection)
  • Setup and changeover time, if your shop doesn't bill setup separately from run time
  • Non-billable internal work (training, housekeeping, tooling prep)

Worked example continued: A shop with 5 machines, each nominally available 2,080 hours a year (40 hours × 52 weeks) has 10,400 theoretical machine-hours. After subtracting holidays and vacation (roughly 200 hours per machine-equivalent), planned maintenance, and an honest estimate of unplanned downtime and non-billable setup, the shop might land on something closer to 7,500–8,000 productive hours across all five machines combined — not 10,400.

The gap between theoretical and productive hours is exactly where a rate calculation quietly goes wrong. A shop that divides its overhead pool by theoretical hours understates its true burden rate, prices jobs too low, and doesn't find out until year-end that the "profitable" jobs weren't. This is also where a live utilization number — not a guess — matters: a shop tracking actual clock-in/clock-out time against setup, run, waiting, and rework reason codes has a real productive-hours figure to plug into this formula instead of an assumption held over from the last time someone did this exercise.

Step 3: Roll overhead into a burden rate per hour

Once you have an annual overhead total and an annual productive-hours total, the burden rate is:

Burden rate per hour = Total annual overhead ÷ Total annual productive hours

Using the worked example above:

$450,000 ÷ 7,750 productive hours ≈ $58.06 per hour in overhead burden.

That's the cost of keeping the shop capable of running for one hour, before a single dollar of direct labor or margin is added. If your shop runs multiple work centers with meaningfully different equipment costs — a five-axis mill carrying more depreciation than a manual saw — the more accurate version of this step allocates overhead per work center rather than as one shop-wide average, so a job routed heavily through your most capital-intensive equipment carries more of that equipment's real cost. That's the mechanics behind labor burden rate manufacturing calculations done at the work-center level rather than the shop-wide level, and it's also how WorkTickets' burden-rate configuration works on the Professional tier and above — burden and machine rates are set per work center, so a job-level profitability summary reflects which work centers a job actually consumed rather than a single blended shop average.

Step 4: Add direct labor and margin to reach a billable rate

Burden alone isn't a quotable rate — it's the overhead component. The full billable rate is:

Billable hourly rate = Direct labor cost per hour + Burden rate per hour + Margin

Direct labor cost per hour should include the fully loaded cost of the operator: base wage plus employer-paid payroll taxes, workers' comp, and benefits — not just the number on their paycheck. A shop that quotes off take-home wage alone is understating labor cost by whatever percentage payroll taxes and benefits add on top, which varies by shop and should come from your own payroll records rather than a published wage figure. (For reference, the U.S. Bureau of Labor Statistics puts the national median annual wage for machinists at $56,150 as of May 2024 — but a national median is not your payroll, and a defensible rate is built from what you actually pay, adjusted for your local labor market, shift differentials, and benefits load, not a figure pulled from a government table. Confirm the current figure directly with the BLS if you want it as a sanity check, not a substitute for your own numbers.)

Margin is a business decision — how much profit you need on top of labor and burden to hit growth, reinvestment, and owner-compensation targets. There's no formula for the "right" margin; it depends on your market position, your backlog, and what you're competing against on a given quote.

Worked example, completed:

  • Direct labor (fully loaded): $32.00/hour
  • Burden rate (from Step 3): $58.06/hour
  • Margin at 20%: $18.01/hour
  • Billable hourly rate: ≈ $108/hour

That's a number you can walk a customer through line by line, because every piece of it traces back to a real cost or a stated business decision — not a figure copied from a competitor's rate card or held over from three years ago.

Where this calculation quietly breaks down

A few failure modes show up repeatedly in shops doing this exercise for the first time:

Overhead pool is incomplete. Software subscriptions, tooling that isn't billed per-job, and indirect labor (a working supervisor who also runs jobs) get missed, understating the pool and therefore the rate.

Productive hours are optimistic. Using theoretical availability instead of a real, measured figure for downtime and setup is the most common single error, and it always errs in the direction of undercharging.

One blended rate hides real cost differences. A shop with a mix of manual and CNC equipment, or light fabrication next to precision machining, loses information by averaging everything into one number. Work-center-level burden rates cost more effort to set up but produce quotes that reflect what a job actually consumed.

The rate is set once and never revisited. Overhead changes — new equipment, new lease terms, headcount changes — and a rate calculated two years ago on old numbers is wrong today even if the method was sound at the time.

Defending the rate when a customer pushes back

The value of building the rate this way shows up the moment someone questions it. Instead of "that's our rate," the answer becomes a description of what's actually in the number: fully loaded labor, a burden figure built from real overhead and real productive hours, and a stated margin. A customer negotiating price is negotiating against a method, not a guess, and that's a fundamentally different conversation — one where you can reasonably discuss margin without having to defend numbers you can't actually explain.

It also means the rate can move correctly when conditions change. Overhead goes up when you add a machine; productive hours go down when a piece of equipment starts breaking more often; either change should flow through to the rate the next time you calculate it, rather than sitting frozen until someone notices margin has quietly eroded.

Keep the inputs current, not the output

This calculation is only as good as the inputs behind it, and both halves — the overhead pool and the productive-hours figure — change constantly in a working shop. The overhead side moves with equipment purchases, lease renewals, and insurance renewals. The productive-hours side moves with actual downtime, which is exactly the kind of number that's easy to guess and hard to measure without logging setup, run, waiting, and rework time at the operation level.

If you want to run this calculation with your own numbers rather than the worked example above, the Shop Rate & Burden Calculator is built around this exact four-step method — overhead pool, productive hours, burden rate, and billable rate — as a downloadable template you fill in with your own figures. For the deeper mechanics of the burden-rate step specifically, see how to calculate burden rate; for the full formula reference, see the machine hourly rate formula breakdown; and for how this fits into the broader picture of costing a job start to finish, the job costing resource hub is the starting point. If you want to see what your current rate assumptions are actually costing you against measured shop data, the ROI calculator walks through that comparison directly.

Share this guideShare on LinkedInShare by email