Allocating Overhead and Indirect Costs to Each Job

A job can post a strong gross margin and still leave the company short at year end. The gap is often not in labor or materials. It is in overhead costs. When contractors treat overhead and indirect costs as general expenses instead of job costs, every project looks better than it is. The real question is not whether to allocate those costs. It is which driver gives a defensible, consistent answer.
This analysis explains why some jobs appear profitable while the company quietly does not. It defines overhead and indirect costs for contractors, shows why skipping allocation fails, and compares labor hours, revenue, and crew days as allocation drivers. It also covers consistency, a worked example of one quarter of overhead spread across three jobs, the tax floor under Section 263A, and how to show overhead applied to every job. Pick a driver, apply it consistently, and show it per job.
The Jobs That Look Profitable While the Company Does Not
Job 412 closes the month at 20 percent margin or better. Cash tightened all quarter anyway, and the year-end number did not match the sum of the job margins.
That gap is not rounding. Total gross profit across every job minus net profit at year end equals the overhead and indirect costs that never landed on a job. That number is real, and it came out of the business, not out of the air.
Unassigned Overhead Does Not Disappear
It falls on whatever work was running that month. Your busiest jobs absorb costs they never see, and your thinnest jobs get subsidized by the schedule. Two reports, wrong in opposite directions.
The bid side is worse. An estimator who leaves indirect costs out of a bid does not win more work. They win the jobs better-equipped competitors declined to price properly, at a price that cannot hold through closeout.
The Symptom Is Not the Field
It is the job costing method. The report captures a fraction of the cost of doing the work and calls the remainder company overhead. Hiring, equipment, and bid decisions then get made on margins that were never real.
Naming that cost is the first step. Defining what actually belongs in the pool is the second.
Overhead Costs and Indirect Costs: Plain Definitions for a Contractor
That remainder is not a mystery. It is the pool you have not defined yet, so start with two plain definitions.
Overhead costs are the recurring expenses of staying open and capable of working: general liability and workers' compensation insurance, office rent, truck and trailer costs, the shop and yard, supervisory salaries, software, accounting and legal fees, and the owner's time that never appears on a job ticket.
Indirect costs are incurred by reason of doing the work but are not traceable to one job without an allocation: fuel burned across multiple sites, small tools and consumables, non-billable labor, mobilization and travel between jobs, warranty and rework, and shared permits or fees.
The practical test: you know the cost happened because the company took on the work, but you cannot point to the invoice line belonging to Job 412. If it passes that test and is not a direct cost, it belongs in the pool.
Not everything goes in. Marketing, selling, advertising, distribution, unrelated general and administrative costs, research and development, and depreciation of assets not used in construction are typically expensed rather than spread across jobs.
General and administrative and mixed-service costs such as payroll, legal, and accounting are the gray area. Treatment depends on whether the cost relates to construction, so confirm your company's split with your accountant rather than adopting either position as a rule.
Write the pool definition down. A stable, written boundary between what goes in and what stays out is what makes every allocation you run afterward defensible.
Why Skipping Overhead Allocation Fails
A pool you never assign to jobs does not stay in the pool. It still gets paid, and it comes out of cash. Cash is the one account with no margin analysis attached, which is why the leak never appears on a job report.
Bids lose their anchor, and the drift starts at the quantity takeoff where scope becomes a number. When job cost equals direct cost only, the bid price is set against a fraction of the real cost of doing the work (total cost is direct plus indirect). Margin looks strong until the quarter closes and it is not.
Bad jobs hide in plain sight. A job that burned 300 crew hours on supervision and mobilization reads identical to a clean job beside it, because neither carries overhead.
When a client or partner asks why Job A was priced at $48,000 and Job B at $61,000 for comparable scope, there is no defensible answer.
The cost of the omission is not the allocation. It is the false confidence: owners make hiring, equipment, and bid decisions on numbers that leave out a real cost of running the business.
Fixing that starts with putting the cost somewhere. The next question is which driver carries it.
Choosing an Allocation Driver: Labor Hours, Revenue, or Crew Days
Once you accept that indirect costs belong on jobs, the argument moves to method. No single driver is universally right; three work, each for a different job mix.
Labor hours fit when direct labor is the dominant, stable driver of overhead consumption and when crew hours are tracked reliably per job. The rate is the period overhead pool divided by period direct labor hours; apply it as hours times rate.
Revenue is easiest to compute and reconcile: pool times job revenue divided by period revenue. It quietly assumes uniform margin, so it overcharges high-markup service work and undercharges labor-heavy jobs.
Crew days fit field-heavy work where the cost driver is having a crew on site at all, covering supervision, trucks, mobilization, fuel, and small tools. It works when jobs are scheduled and managed by the day rather than by the labor dollar.
Fit matters more than sophistication. Pick the driver that best tracks how overhead is consumed across your job mix; if that mix spans service calls, remodels, and new construction, run a second pool rather than forcing one rate onto all of it.
Document the driver and the rate in your job costing method. A driver you can explain in one sentence to a lender or a new estimator beats a more precise one nobody in the office understands.
Consistency Is the Part That Makes It Defensible
Choosing the driver is one decision. Keeping it is what makes the resulting numbers credible.
An allocation is defensible when three things hold: it follows a reasonable relationship to the activity that generated the cost, it is applied the same way every period, and it is written down where anyone can find it. Miss any one of those and you are back to explaining, not reporting.
Change drivers mid-year to make one job look better and comparability is gone. Two jobs priced under different bases cannot be compared to each other, and neither can the same job across two months.
Apply the same rate to estimates and to actuals. If you allocate at bid time but not at closeout, or the reverse, your estimate-to-actual variance is measuring your accounting, not your field performance.
Revisit the rate deliberately, not opportunistically. Recompute the pool and the rate on a set schedule, quarterly or annually, or when a known step-change lands: a new shop, a new truck fleet, an added supervisor.
When a job's margin surprises you, check the driver and the rate before you blame the crew. In an unexplained variance, the allocation is the first suspect, not the field.
Hold the driver steady and the per-job numbers become something you can act on rather than argue about.
Worked Example: One Quarter of Overhead Spread Across Three Jobs
With the driver chosen and the rate documented, the arithmetic is mechanical. A company with a $90,000 quarterly pool of overhead and indirect costs, covering shop rent, insurance, truck costs, supervisory salary, fuel, small tools, and office and administrative expenses, ran three jobs. These figures illustrate the method, not a benchmark.
Driver A: labor hours. The quarter ran 4,500 direct labor hours, so the rate is $20 per hour. Job 1 (1,900 hours) carries $38,000, Job 2 (1,600 hours) carries $32,000, and Job 3 (1,000 hours) carries $20,000. Report margins were $95,000, $38,000, and $80,000. After the charge they fall to $57,000, $6,000, and $60,000.
Driver B: revenue. The quarter billed $1.5 million, so the rate is 6 percent. Job 3 now carries $42,000 instead of $20,000. Job 2, at lower revenue, loses less. Job 3 is small-hours work with heavy material pass-through, and material does not consume supervision, fuel, or shop time. Hours track that consumption; revenue does not. Job 3 flips by $22,000.
Multiply a $22,000 flip across a year of similar work and the margin you thought you earned is gone.
Which driver is right depends on your mix. Run your own quarter through both, then keep the one that tracks how your overhead is really consumed.
The Tax Floor: What Section 263A Requires and What It Does Not
Tax law runs on a parallel track and sets a floor, not a method. IRC Section 263A requires contractors to capitalize direct costs and an allocable share of indirect costs to the property they produce, and that reach extends to businesses that contract out construction work as well as self-performers.
Small-business relief is real: businesses under $25 million in average annual gross receipts over the prior three years, indexed for inflation, are exempt. Under the simplified production method, indirect costs of $200,000 or less need not be capitalized to ending inventory, and a de minimis rule lets incidental costs of 5 percent or less of the price charged stay outside capitalization.
What the rules do not do is name a driver for management job costing. They require a reasonable relationship between the cost and the activity that generated it. Compliance sets the floor; the driver you run the business on is your call.
Where sources disagree, do not resolve it yourself. General and administrative costs and mixed-service costs such as payroll, legal, and accounting are treated differently depending on whether the cost relates to construction. Confirm your treatment with your accountant rather than adopting either position as a rule.
Keep the two purposes separate and both documented: satisfy the tax requirement with your accountant, then write down your per-job margin driver. They need not match.
Showing Overhead Applied to Every Job
Satisfying the tax floor and running the business on a defensible driver are two separate jobs. Here is how the second one becomes routine.
Once the driver and rate are set, the rest is mechanical: multiply the driver by the rate and attach the result to every job, so reported margin equals the margin the business keeps.
Build the allocation into the estimate, not a year-end adjusting entry. A bid carrying overhead from the first draft traces back to a decision; a year-end adjustment cannot.
Carry the same rate through job tracking and closeout. When the rate is identical at bid and at reconciliation, estimate-to-actual variance measures field performance rather than accounting differences. Crew & Cost applies overhead as a line item on each job, so true margin sits beside costs, and runs the same numbers through estimates, tracking, and closeout.
Review the rate on a fixed cadence and hold to it. A rate recomputed quarterly and shown on every job is one you can defend in front of a lender, a partner, or a client.
Pick a Driver, Apply It, Show It
The cadence is set. What remains is discipline: a defined pool, one driver, one rate, applied everywhere.
Define the Pool, Then Commit
Define the pool first, in writing. List what counts as overhead and indirect cost for your company, including the general and administrative split you confirmed with your accountant. That written boundary is what makes every allocation defensible later.
Then pick one driver. Labor hours, revenue, or crew days, whichever best tracks how overhead is consumed across your mix. Set the rate from last period's actuals: pool divided by driver. A $90,000 quarterly pool against 4,500 direct labor hours yields $20 per hour. Actuals keep the rate tied to the business you ran, not a target you hoped for.
Apply that same rate to every estimate and every closeout, and recompute it on a set schedule, quarterly or annually, so the numbers stay comparable. It is the same consistency that keeps progress billing for construction predictable: same method, every phase, every job.
Finally, show it per job. A margin that leaves out overhead is not a margin. A job that looks profitable while the company quietly does not is exactly the problem this fixes.
Conclusion
Overhead does not disappear because you ignore it. Define your overhead and indirect pool in writing. Choose one driver, labor hours, revenue, or crew days, and set a rate from actual costs. Apply that same rate to every estimate, job, and closeout, then review it quarterly or annually. Showing overhead on each job turns a misleading margin into a real one. It also gives you defensible numbers for lenders, partners, and clients. So pick your driver, write down your pool, and put the rate on your next estimate today. Do that consistently, and every job will tell you the truth about profit.