Projects making 22 to 30% gross profit
A range, not a number, because where you sit inside it is decided by how much of the work your own crews touch and how clean your cost codes are.
Gross profit is the first of the three because it's the only one a crew can move this week. Everything above it on the income statement is revenue you already agreed to, and everything below it is overhead you already committed to. The job either comes in at the margin you bid or it doesn't, and the shortfall reads out in labor hours, equipment days, and material takeoff long before it reaches a P and L.
Where 22 to 30% sits against 48 trades
Published gross margin at $1M–$5M, across the whole benchmark reference.
| Trade | Published average | Against the target |
|---|---|---|
| Elevator | 27% | Inside the range |
| Curtain wall and glazing | 27% | Inside the range |
| Waterproofing | 26% | Inside the range |
| Scaffolding | 26% | Inside the range |
| Electrical | 25% | Inside the range |
| Mechanical | 25% | Inside the range |
| Painting | 18% | 4 points under |
| Framing | 18% | 4 points under |
| Underground utility | 18% | 4 points under |
| Sitework | 18% | 4 points under |
| Grading | 18% | 4 points under |
| Interiors | 19% | 3 points under |
All 48 trades sit on the gross margin page across every one of the 7 revenue bands.
- 2024 Construction Financial Benchmarker, Executive Summary, Construction Financial Management Association, 2024. The survey puts gross profit margin at 21.8%, SG&A at 11.8%, and net income before taxes at 6.3% across all respondents. The best-in-class top quartile reaches 11.9% net income before taxes. Those figures are the whole-population reading, so a single trade can sit well either side of them.
- 2025 Performance Benchmarks, Construction Companies, Jones Maresca and Company, 2025. This study reports specialty contractor gross margin between 15% and 25%. It puts net profit at 5% to 8% for a well managed company, and total indirect cost between 8% and 15%. The indirect cost band is the one worth reading twice, because it's the number most owners have never calculated for their own shop.
- SPM Trade Benchmark Reference, Sulphur Prairie Operations LLC, 2026. The reference holds 48 trades, and net profit in it is stated before taxes. It publishes here as 47 trade pages, because landscaping and irrigation share an identical benchmark profile and are one market, so they're presented together. Everything else carries its own row.
How these figures were built. Gross margin and overhead come from CFMA's 2024 and 2025 financial survey data, plus a January 2026 specialty trade study. Net profit comes from a 48 trade master dataset that covers 24 served trades and 24 adjacent trades. The reference holds 48 trades and the site publishes 47 pages, because landscaping and irrigation carry the same figures and are the same market. Where the survey and the master disagree on net profit, the master carries it. Benchmarks are reviewed against each new CFMA survey release and reconciled before publication.
The reasoning
The range exists because trades aren't built the same way. A trade that self performs almost everything carries more risk on every hour and gets paid for carrying it. A trade that brokers material and subs out install runs thinner in the books, and it should. The low end of the range is where a heavy pass-through trade sits when it is running clean. The high end is a self performing trade with real cost codes and an estimator who is reading actuals.
Read it per project and per week, not per year. An annual gross margin number is an average of jobs that made money and jobs that didn't, and the average hides both. The point of the range is to catch a job drifting out of it while there's still schedule left to react.
Under it. Under the range and you're either bidding at a number your cost structure can't deliver, or delivering at a number your bid never contemplated. Those look identical on a P and L and they have opposite fixes.
Three moves, in order
Step 04: Estimating system
The estimate maps one to one onto the job cost codes, so variance means something the day it appears.
What sits either side of this one
What owners ask
What gross profit percentage should a construction project make?
22 to 30%. A range, not a number, because where you sit inside it is decided by how much of the work your own crews touch and how clean your cost codes are. Gross profit is the first of the three because it's the only one a crew can move this week. Everything above it on the income statement is revenue you already agreed to, and everything below it is overhead you already committed to. The job either comes in at the margin you bid or it doesn't, and the shortfall reads out in labor hours, equipment days, and material takeoff long before it reaches a P and L.
Is 22 to 30% above what the benchmarks show?
Yes, and deliberately. Across the 48 benchmarked trades, gross margin at $1M–$5M averages 22.1% with a published span of 18 to 27%. 31 of 48 trades average somewhere inside 22 to 30%. A survey average describes the population. This describes an installed business.
What moves this number?
The step is number 04, estimating system. The estimate maps one to one onto the job cost codes, so variance means something the day it appears. It's chapter 4 of CONTROL: The Construction Financial Operating System.
How do I read it?
Read it per project and per week, not per year. An annual gross margin number is an average of jobs that made money and jobs that didn't, and the average hides both. The point of the range is to catch a job drifting out of it while there's still schedule left to react.
What does it mean if I am under it?
Under the range and you're either bidding at a number your cost structure can't deliver, or delivering at a number your bid never contemplated. Those look identical on a P and L and they have opposite fixes.
Where do I start?
Pull your last five closed jobs and calculate gross profit on each one, with labor burden and equipment charged in at real rates.
