
The Job That Looked Fine Until the Books Closed
A shop runs a five-axis part for a regular customer, quotes it the way it always has — labor hours times a shop rate that hasn't been touched since last year — and the job comes in on time, no scrap, no drama. Then the quarter closes and the accountant's overhead allocation lands, and the job that looked fine on the floor shows a thinner margin than the quote assumed. Nothing went wrong in production. What went wrong is that overhead — rent, utilities, depreciation, indirect labor, maintenance, insurance — never got attached to the job until the books were done, months after the quote was written and the price was locked in.
A predetermined overhead rate exists to close that gap. It lets a shop attach an overhead cost to a job before the year closes, using an estimate set at the start of the period instead of waiting for actual costs to settle. This article walks through how to build that rate, how to apply it at the operation level instead of just the job level, and how to reconcile it against real overhead once the numbers come in.
What a Predetermined Overhead Rate Actually Is
The formula itself is simple:
Predetermined overhead rate = Estimated total overhead for the period ÷ Estimated total allocation base for the period
The two variables that matter are the estimate of overhead itself, and the choice of allocation base — the thing you divide by to turn a lump of overhead into a per-unit rate. Everything in overhead allocation for manufacturing comes down to picking a base that tracks how overhead is actually consumed by jobs, not just one that's easy to measure.
The rate is set once, at the start of a fiscal year or a shorter budget period, using estimates — not last year's actuals dressed up as this year's plan, and not a number pulled from a spreadsheet tab nobody's updated since the last software migration. It has to reflect what the shop expects to spend and expects to run over the coming period.
Choosing an Allocation Base
Three bases show up most often in a job shop:
- Direct labor hours — works when jobs are labor-intensive and machine time tracks roughly with labor time.
- Machine hours — a better fit once CNC and unattended run time start driving cost more than the operator standing next to the machine. This is the base behind the machine hourly rate formula, which builds a rate per machine or per work center rather than one blended shop-wide number.
- Direct labor dollars — sometimes used where wage rates vary a lot across operations and a straight hours count would misrepresent which jobs are actually expensive to run.
Picking the wrong base doesn't just introduce a small error — it can systematically overcost the jobs that don't use much of the base and undercost the ones that do. A shop running a mix of manual and CNC work often needs more than one rate: one per work center, tied to the base that actually drives cost in that center, rather than a single shop-wide number applied everywhere. That's the same logic covered in how to calculate burden rate — burden is rarely uniform across a shop floor, and treating it as if it were is where a lot of quoting drift starts.
Building the Rate: A Worked Example
This is illustrative — plug in a shop's own estimates rather than treating these numbers as a benchmark.
A representative shop estimates $420,000 in total overhead for the coming year: rent, utilities, indirect labor, equipment depreciation, insurance, and shop supplies. It estimates 12,000 machine hours across its CNC work centers for the same period.
Predetermined overhead rate = $420,000 ÷ 12,000 machine hours = $35 per machine hour
Now that rate can be applied to any job as it's quoted or run. A job that requires 8 machine hours on that work center carries $280 of applied overhead ($35 × 8), on top of direct labor and material — before the job is even started, let alone finished and closed out at year-end.
If the shop instead ran multiple work centers with different overhead intensity — a manual mill next to a five-axis CNC cell, say — the same estimated overhead pool would need to be split across cost centers first, each with its own base and its own rate, rather than blended into one number that overcosts the manual work and undercosts the CNC work.
Applying the Rate Per Operation and Per Job
The rate only earns its keep once it's applied consistently, operation by operation, as jobs move through the shop. That means the routing for a part — the sequence of setup, run, and any secondary operations — carries not just standard time but the burden rate for the work center each operation runs on. Roll those operation-level overhead figures up and you get a job-level overhead cost that reflects where the job actually spent time, not just how many total hours it took.
This is the same principle behind labor burden rate calculations for manufacturing: burden isn't a single number bolted onto a labor rate at the end. It's built per work center, applied per operation, and only then summed into a job total.
This is the layer WorkTickets was built to sit on. It's a standalone, SaaS-native execution-and-costing tool — not an ERP system, and not trying to be one — that lets a shop configure burden and machine rates per work center on the Professional tier and above, apply them automatically as a job routes through operations, and see actual-vs-quoted labor and a job-level profitability summary without waiting for month-end. The overhead rate itself still has to be set by the shop; the tool applies it consistently, operation by operation, so the number on the quote and the number on the closed job are built the same way.
Reconciling at Year-End: Over- and Under-Applied Overhead
An estimate is still an estimate. Once actual overhead and actual allocation-base usage are known — actual machine hours run, actual dollars spent on rent and utilities and indirect labor — the applied overhead (rate × actual base usage) almost never matches actual overhead exactly.
- If actual overhead is less than what was applied, overhead is over-applied — jobs were charged more than they actually cost.
- If actual overhead is more than what was applied, overhead is under-applied — jobs were charged less than they actually cost, and margin looked better on paper than it really was.
Most shops close this gap once a year, adjusting cost of goods sold or spreading the variance across the jobs run during the period. The size of that variance is itself a diagnostic: a small gap means the estimate was close and the allocation base was a reasonable proxy for cost; a large one means it's time to revisit either the overhead estimate or the base itself before setting next year's rate.
Where This Breaks Down on Paper Travelers and Spreadsheets
The math above is straightforward. The failure mode isn't the formula — it's that a paper traveler and a QuickBooks export have no way to carry a per-work-center rate through a routing automatically. Someone has to remember to apply it, operation by operation, on every job, every time, and reconcile it by hand at year-end. That's exactly the kind of quiet, compounding error that shows up as unexplained margin erosion a quarter later, with no single culprit to point to.
For a broader look at how job costing fits together end to end — quoting, routing, actual-vs-quoted labor, and scrap tied back to the operation that caused it — see the job costing resource hub.
To set up your own rate without doing the arithmetic by hand, download the Shop Rate & Burden Calculator — a working template for estimating overhead, choosing an allocation base, and calculating a predetermined rate per work center before the next quoting cycle starts.

