There isn't one "good" contractor profit margin. It depends on your trade, how much work you self-perform and how much risk you carry. For a published reference point, the NYU Stern margins by industry dataset (Aswath Damodaran, January 2026) shows 48 publicly traded US engineering and construction companies at a 15.46% gross margin and a 5.94% net margin. Those are large public companies, not a $3M contractor, so use them as a sanity check, not a target. The numbers that matter are yours: gross margin (revenue minus direct job costs, divided by revenue), overhead percentage (company overhead divided by revenue) and net margin (what's left, divided by revenue). And remember that markup isn't margin: a 20% markup on cost is only a 16.7% margin on the price.
Most contractors know their revenue to the dollar. Far fewer can say what percentage of it they keep, or how much every job has to carry to pay for the office. Margin and overhead are the two numbers that decide whether growth makes you money or just makes you busier.
What's the difference between gross margin and net margin?
Gross margin is what's left of your revenue after the direct costs of doing the work. In construction, direct costs are the ones you can tie to a job: field labor and its payroll burden, materials, subcontractors, equipment used on the job and job-specific costs like permits or a site trailer. Gross profit divided by revenue is your gross margin.
Net margin is what's left after everything else too: the office, the estimator, insurance that isn't charged to jobs, software, the owner's administrative time, accounting, marketing. Net profit divided by revenue is your net margin.
The gap between the two is your overhead. A contractor can have a healthy gross margin and still lose money if overhead grows faster than the jobs that pay for it. That's why you watch both, every month, not just at tax time.
What do the published benchmarks actually say?
Benchmarks for private contractors are hard to find for free, and many numbers you'll see quoted online don't say where they came from. One source that's public, dated and transparent about its method is the margins by industry dataset maintained by Aswath Damodaran at NYU Stern. His January 2026 update for US companies shows:
| Industry (Damodaran, Jan 2026) | Firms | Gross margin | Pre-tax operating margin | Net margin |
|---|---|---|---|---|
| Engineering/Construction | 48 | 15.46% | 6.49% | 5.94% |
| Homebuilding | 30 | 22.70% | 12.57% | 9.47% |
| Total US market | 5,994 | 37.76% | 12.82% | 9.74% |
Read these carefully. They come from publicly traded companies, which are far larger than a contractor doing $1M to $5M, and the engineering and construction group mixes engineering firms with builders. Your cost structure, your owner's pay and your tax situation will all look different. The pre-tax operating margin column is listed as "unadjusted" in the dataset.
So what's the benchmark for you? Your own history. If your gross margin was 22% two years ago and it's 17% now, that trend tells you more than any national average. The rest of this post is about measuring it.
Why isn't markup the same as margin?
This is the most expensive misunderstanding in construction pricing. Markup is a percentage of cost. Margin is a percentage of the selling price. Same dollars, different denominator.
Say a job costs you $100,000 and you add a 20% markup. You bid $120,000. Your profit is $20,000. As a margin, that's $20,000 divided by $120,000, which is 16.7%, not 20%. If you set a goal of a 20% margin and price with a 20% markup, you'll miss it on every job.
The conversions are simple once you write them down:
- Margin = markup ÷ (1 + markup). A 25% markup is 0.25 ÷ 1.25 = 20% margin.
- Markup = margin ÷ (1 − margin). To hit a 20% margin you need 0.20 ÷ 0.80 = 25% markup.
| Markup on cost | Price on a $100,000 job | Profit | Margin on price |
|---|---|---|---|
| 10% | $110,000 | $10,000 | 9.1% |
| 15% | $115,000 | $15,000 | 13.0% |
| 20% | $120,000 | $20,000 | 16.7% |
| 25% | $125,000 | $25,000 | 20.0% |
| 30% | $130,000 | $30,000 | 23.1% |
| 50% | $150,000 | $50,000 | 33.3% |
What counts as overhead in a construction company?
Overhead is any cost of running the company that you can't charge to a specific job. Typical items:
- Office rent, utilities and phones
- Office and administrative salaries, including estimators and the owner's time spent running the business rather than a job
- Insurance and vehicle costs that aren't charged to jobs
- Accounting, legal, software and IT
- Marketing, bid costs and business development
Keep one line clear: job overhead (often called general conditions) is different. A superintendent dedicated to one project, that project's dumpsters, temporary power and permits are direct costs of that job. They belong in the job's cost codes, not in company overhead. When job overhead leaks into the office line, your jobs look more profitable than they are and your overhead looks bloated.
How do you calculate your overhead percentage?
Start with a full year of numbers. Here's a contractor doing $3 million in revenue:
| Line | Amount | % of revenue |
|---|---|---|
| Contract revenue | $3,000,000 | 100.0% |
| Field labor and payroll burden | $900,000 | 30.0% |
| Materials | $700,000 | 23.3% |
| Subcontractors | $650,000 | 21.7% |
| Equipment and job overhead | $150,000 | 5.0% |
| Total direct job costs | $2,400,000 | 80.0% |
| Gross profit | $600,000 | 20.0% |
| Company overhead | $360,000 | 12.0% |
| Net operating profit | $240,000 | 8.0% |
There are two ways to state overhead, and both are useful:
- Overhead as a percentage of revenue: $360,000 ÷ $3,000,000 = 12%. This is the number you compare year to year.
- Overhead as a percentage of direct cost: $360,000 ÷ $2,400,000 = 15%. This is the number you price with, because estimates are built up from cost.
Mixing the two up is how a contractor ends up "covering overhead" on paper and short in the bank. If you add 12% to cost, you've recovered only $288,000 of a $360,000 overhead on this volume.
What's an overhead recovery rate, and how do you use it in a bid?
An overhead recovery rate is the amount each job has to carry so that, across the year, your jobs pay for the office. You pick a base that tracks what really drives your overhead, then divide.
Per dollar of direct cost: 15%, as above. Per field labor hour: if your crews work 40,000 hours a year, $360,000 ÷ 40,000 = $9.00 per hour.
The base you choose changes the answer, and that's the point. Compare two jobs with the same $200,000 of direct cost:
| Job | Direct cost | Field hours | Overhead at 15% of cost | Overhead at $9.00 per hour |
|---|---|---|---|---|
| A: mostly self-performed | $200,000 | 3,000 | $30,000 | $27,000 |
| B: mostly subcontracted | $200,000 | 600 | $30,000 | $5,400 |
If your office time really goes into managing crews, the hourly rate is closer to the truth and Job B is cheaper to run than a flat percentage suggests. If your project managers spend just as long coordinating subcontractors, the percentage of cost is fairer. Many contractors use a blend. What matters is that you choose on purpose and test it against last year's actuals.
Now price Job A. Direct cost $200,000, plus $30,000 overhead recovery, gives a break-even of $230,000. To earn an 8% net margin on the price, divide by (1 − 0.08): $230,000 ÷ 0.92 = $250,000. Profit is $20,000, which is 8% of $250,000. Total markup on direct cost is 25%, and the job's gross margin is $50,000 ÷ $250,000 = 20%.
What happens to your margin when volume changes?
Most overhead is fixed in the short run. The office rent doesn't drop because you lost a bid. Keep the same 20% gross margin and $360,000 overhead from the table above and watch net margin move with revenue:
| Revenue | Gross profit at 20% | Overhead | Net profit | Net margin |
|---|---|---|---|---|
| $2,500,000 | $500,000 | $360,000 | $140,000 | 5.6% |
| $3,000,000 | $600,000 | $360,000 | $240,000 | 8.0% |
| $3,500,000 | $700,000 | $360,000 | $340,000 | 9.7% |
That's why the recovery rate should be built on the volume you realistically expect next year, not the best year you ever had. If you set it on $3.5 million and do $2.5 million, every job was underpriced for overhead before it started.
How do you measure your own margins?
None of this works without clean job numbers. Three habits make the difference:
- Job cost every job, by cost code, including fully burdened labor. Our posts on job costing and labor burden walk through the setup.
- Recognize revenue on open jobs correctly. On jobs that cross month-end, gross margin is only meaningful when revenue is matched to the work done. That's what percentage of completion and a monthly WIP schedule do. You can try the math with our free WIP calculator.
- Compare bid margin to final margin on every closed job. If the estimate said 20% and the job finished at 14%, find out where the six points went before you bid the next one.
Building margin reporting, overhead budgets and recovery rates for growing contractors is part of our construction fractional CFO and construction accounting work.