Overhead Allocation in Construction: Methods and Examples

Overhead allocation in construction means spreading the costs you can’t charge to one job, such as office rent, estimators, insurance and supervision, across the projects that cause or benefit from them. Most contractors do it with a percentage of direct labor, a percentage of total direct costs, or a rate per labor hour. The method matters less than three things: separating job overhead from general overhead, picking a rate you can defend, and applying it the same way every period.
This guide walks through each method with a worked example, the benchmark ratios to sanity-check your numbers, and the mistakes that quietly wreck job margins.
TL;DR
- Split overhead into two buckets first: job overhead (traceable to a project) and general overhead (costs you’d pay with zero active jobs). Allocate only what belongs in each.
- The three common bases are percentage of direct labor, percentage of total direct costs, and rate per labor hour. Pick the one that matches what actually drives your overhead.
- Calculate the rate from history: annual general overhead divided by your chosen base. Review it at least once a year.
- Consistency beats cleverness. Switching methods between periods without documentation is a classic trigger for audit findings.
- Software that ties cost codes, payroll and the general ledger together makes allocation automatic instead of a month-end spreadsheet exercise.
Table of Contents
- Job overhead vs. general overhead
- Why the allocation method changes your margins
- The three common allocation methods
- A worked example
- Benchmarks: what is a good overhead percentage?
- How to calculate and apply your overhead rate
- Keep your method consistent
- Common mistakes
- Our perspective: allocation should run in the background
- Automate overhead allocation with DesignFlow Build
- FAQ
- Sources
Job overhead vs. general overhead
Most allocation errors start here. Contractors lump everything indirect into one pile, and project margins get distorted before any formula is applied.
Job overhead (also called job-site or project indirect costs) is traceable to a specific project even though it isn’t a direct labor or material line. Think site trailers, temporary utilities, project-specific supervision and safety equipment. As one construction CPA firm explains, misclassifying project supervisors as direct labor, or lumping real project costs into general overhead, distorts job profitability and makes year-end numbers hard to reconcile with actual results.
General overhead (G&A) is the cost of running the company itself. The rule of thumb, attributed to the Associated General Contractors of America, is that G&A covers costs you would still pay if no projects were running. Typical examples are office rent, estimating salaries, the vehicle fleet, non-project insurance, owner salary, accounting and legal fees, software and marketing. The Fennec Lab’s bid markup calculator lists the same categories as company-level fixed overhead allocated as a percentage of direct cost.
A quick test for any expense: if the job ended tomorrow, would this cost end with it? If yes, it is job overhead and should be coded to that job. If no, it is general overhead and belongs in the pool you allocate.
| Cost | Bucket | Why |
|---|---|---|
| Job-site trailer rental | Job overhead | Ends when the project ends |
| Project superintendent salary | Job overhead | Assigned to one project (or split by time across a few) |
| Temporary power and water | Job overhead | Traceable to the site |
| Estimator salaries | General overhead | Needed to win work, not tied to one job |
| Office rent and utilities | General overhead | Paid with zero active projects |
| Accounting software and bookkeeping | General overhead | Company-wide function |
| Owner salary | General overhead | Company-wide function |
The best-case allocation is no allocation at all. Whenever an expense was clearly for one project only, assign it directly. Procore’s indirect cost framework, as summarized by one construction-finance guide, puts direct assignment first and labor hours and other proportional splits after it.
Why the allocation method changes your margins
Overhead is real money, and every job either absorbs its share or someone else’s job does. Under-allocate and your bids look cheap and your books look healthy until the cash runs out. Eagle Rock CFO notes that underestimating overhead can leave a contractor covering direct costs but failing to absorb overhead, while overestimating it can price you out of competitive markets.
There is a reporting angle too. Under GAAP, contractors using percentage-of-completion are expected to include a reasonable allocation of indirect costs in contract accounting. Your method needs to be reasonable and documented, not just convenient.
The three common allocation methods
Most contractors pick one of three approaches, according to the same CPA firm’s guide. Each has trade-offs.
Percentage of direct labor
You divide annual general overhead by annual direct labor cost, then apply that percentage to each job’s labor. It works well when labor drives most of your overhead, which is common for service and trade contractors where field crews generate the admin, payroll, insurance and dispatch load.
The weakness: a job heavy on subcontractors or materials but light on self-performed labor absorbs very little overhead, even though it still consumes estimating, project management and accounting time.
Percentage of total direct costs
You divide general overhead by total direct costs (labor, materials, subcontractors, equipment) and apply the result to each job. GovDash describes this as the simplest and most common approach for recovering G&A.
It suits general contractors who subcontract a large share of the work, because subcontract dollars still carry management overhead. The weakness is that a job with a large pass-through material purchase absorbs a big chunk of overhead without really consuming more of your office’s time.
Rate per labor hour
You divide overhead by total direct labor hours and charge a dollar rate per hour worked. It strips out wage differences, so a $38-an-hour laborer and a $75-an-hour foreman absorb the same overhead per hour. That is more accurate when overhead is driven by crew time rather than payroll dollars. It requires reliable hour tracking, which is where field time entry earns its keep.
Activity-based costing
For firms that want more precision, activity-based costing traces costs to specific activities such as change orders or inspections. It is the most accurate and the most work. Most contractors under about $25 million in revenue don’t need it, but it is worth knowing about if one job type (say, heavy change-order work) eats a disproportionate share of your back office.
Which one should you use?
| Method | Best for | Watch out for |
|---|---|---|
| % of direct labor | Trade and service contractors, self-perform heavy | Under-charges sub-heavy jobs |
| % of total direct costs | GCs, mixed self-perform and sub work | Over-charges material-heavy jobs |
| Rate per labor hour | Crew-driven work with solid time tracking | Needs clean hour data |
| Activity-based | Firms with distinct, costly job types | Setup and maintenance effort |
The Deltek help documentation shows the same idea from the software side: an assignment method applies a specified overhead percentage to each project, based on either direct labor or revenue. In other words, even accounting systems treat the base as a choice you make and then apply uniformly.
A worked example
The numbers below are illustrative, not benchmarks. Say a commercial contractor has these annual figures:
- General overhead (office, estimating, insurance, owner salary, software): $900,000
- Total direct costs across all jobs: $6,000,000
- Direct labor across all jobs: $1,800,000
Rate under each method
- Percentage of total direct costs: $900,000 ÷ $6,000,000 = 15%
- Percentage of direct labor: $900,000 ÷ $1,800,000 = 50%
Now apply both to two jobs, each with $500,000 in direct costs:
| Job A (sub-heavy) | Job B (self-performed) | |
|---|---|---|
| Direct costs | $500,000 | $500,000 |
| Direct labor | $100,000 | $250,000 |
| Overhead at 15% of direct costs | $75,000 | $75,000 |
| Overhead at 50% of direct labor | $50,000 | $125,000 |
Same two jobs, very different answers. Under the direct cost method they look identical. Under the labor method, Job B carries $75,000 more overhead than Job A. Neither is wrong. The question is which one reflects how your company really consumes overhead. If your office spends its time chasing self-performed crews, labor is the better driver. If your project managers spend their days coordinating subs, direct cost is fairer to Job A.
A sensible check: run last year’s closed jobs through both methods and see which one lines up better with where your office time actually went. Then pick one and keep it.

Benchmarks: what is a good overhead percentage?

The percentage depends heavily on size and trade, and published ranges vary by source and by how they define overhead. Treat all of them as a sanity check, not a target.
Eagle Rock CFO reports, as of Q1 2026, these overhead ratios (overhead as a percentage of revenue):
| Contractor size | Typical overhead ratio |
|---|---|
| Under $5M revenue | 15% to 20% |
| $5M to $25M | 12% to 16% |
| $25M and up | 10% to 14% |
If you are well above your size band, look at whether you are classifying job costs as general overhead. If you are well below it, check that you are not leaving owner compensation or estimating time out of the pool, which flatters your numbers and underprices your bids.
The better benchmark is your own history, tracked by project type, size and customer. Eagle Rock CFO makes the same point: balancing overhead recovery against competitiveness depends on tracking these ratios at that level of detail.
How to calculate and apply your overhead rate
- Build the pool. List every general overhead cost for the last 12 months from your general ledger. Move anything that ended with a project into job overhead.
- Add the costs you forget. Owner salary, estimating time, software subscriptions and marketing are the usual omissions.
- Pick the base. Use direct labor, total direct costs or labor hours, based on what drives your overhead (see the table above).
- Divide. Pool divided by base gives your rate.
- Adjust for next year. Use the rate against projected volume. If you expect revenue to fall, the same pool spreads over less work and the rate rises.
- Apply it consistently to every job, in bids and in job costing.
- Review quarterly, change annually. Compare actual overhead to what you recovered. Update the rate when the year closes, not mid-stream.
The bid side matters as much as the books. When your rate is baked into every estimate, you stop discounting overhead out of the price to win work. Even homeowners comparing sealed contractor bids on a remodel, as in this guide to comparing 3 to 5 bids, end up looking at prices where each contractor has decided how much overhead to carry, so a bid that looks low may simply be leaving overhead out.
Keep your method consistent
The most overlooked rule in overhead allocation is consistency. GovDash warns that changing your method between periods, for example from direct labor hours to a direct cost percentage, without documented justification is a major trigger for audit findings. That is most acute for government contractors, but private contractors benefit as well: year-over-year job margins are only comparable if the method didn’t change underneath them.
If you do change methods, write down why, when, and what the effect on prior-period rates would have been. Then talk to your CPA before the new method goes live, especially if you have bonded work, government contracts or a lender that reads your WIP schedule.
Common mistakes
- Mixing job and general overhead. Superintendent pay in G&A inflates your overhead rate and makes every job look more profitable than it is.
- Using last year’s rate on this year’s volume. A pool that stays flat while revenue drops needs a higher rate.
- Allocating by gut feel. “We add 10%” with no calculation behind it is fine until it isn’t.
- Forgetting owner pay and estimating time. Both are real costs of winning work.
- Late coding. If expenses are coded to jobs weeks after the fact, allocation becomes a month-end scramble. Clean cost codes mapped to your general ledger fix most of this at the source.
- Ignoring variance. If a job’s actual overhead is far from its allocated share, job cost variance is where you find out why.
Our perspective: allocation should run in the background
We build construction ERP software, so we see how contractors actually handle overhead. The pattern is consistent: the formula is easy, the data is the problem. Overhead lives in one spreadsheet, payroll in another, job costs in a third, and somebody reconciles them at month-end. By the time the rate is calculated, the jobs it applies to have already been bid.
We think allocation works best when it is a rule inside the system your jobs already live in. That means a chart of accounts built around job costing first (see our guide to a construction chart of accounts with ERP), cost codes that roll up cleanly to the general ledger, and field time and expenses captured against the right job as they happen. When those pieces connect, the overhead pool, the base and the rate are all one report away, and you can watch job costs in real time instead of finding surprises at month-end.
Our advice for a contractor starting from scratch: choose the simplest defensible method, document it in one paragraph, and make sure your software applies it automatically. Precision you can’t maintain is worse than a simple rate you apply every time. You can always tighten the method once the data is clean.
— Keith
Automate overhead allocation with DesignFlow Build
DesignFlow Build combines project management, accounting (general ledger, AR/AP, certified payroll, job costing by cost code and WIP) and field operations in one construction ERP, so overhead, labor and job costs are not spread across separate tools. You can see how it fits together on our Construction ERP page.
Pricing is published: Pro is $100 per month per office user, and Field seats are $25 per month per user. See the pricing page for Essentials, Pro and Field seats, or start free and see how your own job costing looks.
FAQ
What is overhead allocation in construction?
It is the process of assigning a share of indirect costs to each project. Job overhead, such as trailers and temporary utilities, is coded to the project it belongs to. General overhead, such as office rent and estimator salaries, is spread across all projects using a base like direct labor or total direct costs.
What is a good overhead percentage for a contractor?
It depends on size and trade. Eagle Rock CFO’s Q1 2026 benchmarks put small contractors under $5M at 15% to 20% of revenue, mid-size contractors at 12% to 16%, and larger firms at 10% to 14%. Your own multi-year trend, tracked by project type, is more useful than any published number.
Which overhead allocation method is best for a general contractor?
Many general contractors use percentage of total direct costs, because subcontract dollars still consume management time and it is the simplest common method. If you self-perform most of the work, direct labor or labor hours may reflect your costs better. Test both on closed jobs before deciding.
How often should I change my overhead rate?
Review it quarterly against actual overhead, and reset it once a year when you close the books and plan next year’s volume. Avoid switching the method itself without documentation and a conversation with your CPA, since inconsistent methods are a known audit trigger.
Sources
- Construction Overhead Costs and Allocation (JMCO)
- Direct vs. Indirect Costs Guide (GovDash)
- Construction Financial Benchmarks 2026 (Eagle Rock CFO)
- Job-Site Expense Allocation in Excel (ImageToTable)
- General Contractor Bid Markup Calculator (The Fennec Lab)
- Assignment Method of Overhead Allocation (Deltek Help)
