Guides  /  Controller-grade books

How to build an overhead rate for a job shop or trades business

Short version: An overhead rate is how you charge each job its fair share of the costs that don't attach to any one job: the shop, the trucks, the office, the owner. Build it in five steps: define the overhead pool from last year's actuals, pick the allocation base that drives overhead (usually direct labor hours in a job shop or trades business), divide pool by base to get the rate, apply it to every job estimate and job cost report, and compare applied overhead to actual at year-end. The rate lives in your estimating and job reports, not in cost of goods sold.

"We're busy but we're broke" is the most common sentence I hear from job-shop and trades owners, and the cause is almost always the same: jobs are priced on materials and labor, and the shop, trucks, insurance, and office are supposed to come out of what's left. They don't. An overhead rate is how you put those costs into the price of every job before you quote it, so the margin on the estimate is the margin you actually keep.

Step 1: define the overhead pool

Overhead is every cost of running the operation that can't be traced to a specific job. The pool is the annual total. Pull last year's P&L and sort every expense line into one of three buckets:

  • Direct cost (not overhead): materials, direct labor and its burden, subcontractors, job-specific equipment rental, permits. These are already in the job.
  • Production overhead (in the pool): shop rent and utilities, shop supplies, small tools, equipment depreciation and repairs, vehicle costs, shop supervision, indirect labor like a shop helper or a dispatcher, production software, uniform and safety costs, general liability and property insurance.
  • General and administrative (your call): owner's salary, office staff, accounting and legal, marketing, office rent. Some shops put G&A in the pool so every job carries its full share; some keep it separate and add it as a markup on top. Either works as long as you're consistent. For a business under a few million in revenue, one combined rate is simpler and harder to misapply.

Watch the direct-labor line. If field or shop wages are sitting in operating expenses, pull them out to cost of goods sold before you build the pool, or you'll be allocating labor to itself. The chart of accounts has to separate direct from indirect labor for any of this to work.

Adjust the pool for the year ahead: known rent increases, an added truck, a planned hire. The rate is forward-looking because it's used on quotes for next year's work.

Step 2: pick the allocation base

The base is the measure of activity that drives overhead. The right base is the one that, when a job uses more of it, the shop costs more to run. The candidates:

Allocation bases compared
BaseBest forWatch out for
Direct labor hoursTrades, service, fabrication, any shop where people-time drives the work. The usual default.Needs reliable time tracking by job. If hours aren't captured, the rate is applied to a guess.
Direct labor dollarsShops where wage rates vary a lot by job type and higher-skill work also consumes more overhead.A raise changes the allocation even though the shop cost didn't. Rate expressed as a percentage.
Machine hoursEquipment-heavy work: CNC, printing, routing, large-format, where the machine is the bottleneck and the main cost.Needs machine time by job, which few small shops log. Often used for one department and labor hours for the rest.
Direct cost (materials + labor)Quick and crude; common in construction as a flat percentage.Allocates more overhead to material-heavy jobs that didn't use the shop much. Distorts pricing on big-material work.

For most job shops and trades businesses, direct labor hours is the answer. If you have one department that's clearly machine-driven, give it its own rate on machine hours. Don't build five departmental rates for a twelve-person shop; the precision is fake and nobody will maintain it.

Step 3: do the math

Rate = overhead pool ÷ expected base. Use the hours you expect to bill to jobs, not the hours you'll pay for. The difference matters.

Worked example: eight-person shop
LineAmount
Overhead pool (production + G&A), adjusted for next year$486,000
Direct labor headcount6 people
Paid hours per person (52 weeks × 40)2,080
Less PTO, holidays, training, shop cleanup, idle time (~22%)(458)
Productive hours per person1,622
Total productive direct labor hours6 × 1,622 = 9,732
Overhead rate$486,000 ÷ 9,732 = $49.94 per direct labor hour

Call it $50. If the shop had used paid hours (12,480) instead of productive hours, the rate would be $38.94, and every job would be under-recovering overhead by about $11 an hour. That one mistake, using paid hours instead of productive hours, is the most common reason a calculated rate doesn't cover the shop.

Now the fully loaded labor cost per hour:

Average direct wage                     $28.00
Labor burden (taxes, WC, benefits ~24%)   6.72
Overhead rate                            50.00
                                        ------
Fully loaded cost per labor hour        $84.72

That's the number that goes into estimating. A job you quote at $75 an hour for labor is losing money before materials, and the P&L will confirm it at year-end, just too late to do anything about it.

Step 4: apply it

The rate is applied in two places:

  • Estimating. Every estimate carries labor hours × fully loaded rate, plus materials and subs with their own markup, plus profit. The profit line is now real profit, not the pool you're hoping covers rent.
  • Job cost reporting. In QuickBooks, you can apply overhead to jobs with a zero-dollar item or a monthly journal entry that debits an "applied overhead" line in job costs (by job) and credits an "overhead applied" contra account in operating expenses. That gives you job profitability after overhead without ever moving actual overhead into COGS, which keeps the P&L clean. Many shops skip the ledger entry and apply the rate only in estimating and a job-margin spreadsheet; that's fine for a smaller operation, as long as somebody is actually comparing estimated to actual by job. The job costing guide covers the item setup.

Step 5: true it up

At year-end, compare overhead applied (hours × rate) to actual overhead spent. The difference is over- or under-applied overhead, and it tells you something:

  • Under-applied (actual higher than applied): either the pool grew, or productive hours came in below plan. Both mean next year's rate goes up, and this year's job margins were overstated.
  • Over-applied (applied higher than actual): you ran leaner or busier than planned. Job margins were understated. Rate can come down, or you can hold it and bank the cushion.

For the books, the difference is usually closed to cost of goods sold at year-end if you've been applying overhead through the ledger. For the business, the point is the recalculation: new pool, new productive hours, new rate, every January. A rate that hasn't been recalculated in three years is wrong in a direction you can't see.

The owner's test: add up a year of labor hours on invoices and multiply by the overhead rate. If that's less than what the shop actually cost to run, you've been paying the difference out of profit, every job, all year.

Common mistakes

  • Using paid hours as the base instead of productive, billable-to-jobs hours
  • Leaving the owner's shop time out of direct labor while including the owner's salary in the pool
  • Letting direct labor sit in operating expenses so it gets allocated to itself
  • Building departmental rates for a shop too small to track them
  • Pushing actual overhead into COGS by journal entry so the "job margin" on the P&L looks right and gross margin stops meaning anything
  • Never recalculating; the rate from the year you had three trucks is still running the year you have six

Want the rate built and wired into your job reports?

Building the pool, choosing the base, and setting up job costing so estimated-versus-actual actually works is a standard first project for a fractional controller.

The Contractor Job Costing & WIP Schedule workbook covers the layer underneath this one. Its Labor Burden tab takes your actual employer tax, workers comp, benefit and unbillable-hour rates and returns a fully burdened hourly rate, which is the wage-plus-burden figure you add the overhead rate to. It also carries estimate versus actual by cost type, job margin against what you bid, and a percentage-of-completion WIP schedule. What it deliberately does not do is allocate the overhead pool into job cost, for the reason above: applied overhead belongs in estimating and in an entry that offsets to a contra account, not reclassified into COGS. Build the rate here, cost the labor there.

Common questions

What is an overhead rate?

The amount of indirect cost (shop, equipment, vehicles, insurance, office) charged to each unit of activity, usually each direct labor hour. It's calculated as the annual overhead pool divided by the expected productive direct labor hours, and it's added to wages and burden to get a fully loaded cost per hour for estimating and job costing.

How do I calculate an overhead rate per labor hour?

Total next year's expected overhead costs (every cost not traceable to a specific job), then divide by the productive direct labor hours you expect to charge to jobs, which is paid hours minus PTO, holidays, training, and idle time. Using paid hours instead of productive hours understates the rate.

Should overhead be included in cost of goods sold?

No. Keep actual overhead in operating expenses so gross margin reflects direct costs only. Apply overhead to jobs through estimating and job cost reports, or through an applied-overhead entry that offsets to a contra account, rather than reclassifying actual overhead into COGS.

What is a typical overhead rate for a trades business?

It varies too much by shop to generalize usefully. Fully loaded labor cost commonly runs two to three times the base wage once burden and overhead are included, which is why a wage of $28 an hour can need a billing rate well above $100. Calculate yours from your own numbers.

How often should I recalculate the overhead rate?

Annually, as part of budgeting, and any time the business changes materially: a new location, a big equipment purchase, a significant change in headcount. Compare applied overhead to actual at year-end to see how far off the current rate was.

General guidance on cost allocation for management purposes, not accounting, tax, or legal advice. Overhead treatment for tax inventory costing (Section 263A and related rules) follows different requirements; confirm with your preparer.

Free download

Get the next guide when it publishes

Practitioner guides on controller-grade books, the close, and cleaner reporting. One email per guide. Unsubscribe in a click.