The Level Index, by trade
General contractor financial benchmarks
The honest benchmark for commercial general contractors. GCs run thin because they pass most cost through to subs, margin lives in overhead control and working capital, not gross spread. Anchored by CFMA's nonresidential segment and public GC filings.
4.1%
Net margin (before tax)
commercial/nonresidential GC, CFMA; thinnest segment
4.6-20%
Gross margin
public GCs, self-perform vs pure pass-through
~47-83 days
DSO
GC, retainage extends the cycle
919,000+
US establishments
construction (AGC), ~$2.1T/yr
The nuance most 'GC margin' numbers miss
A general contractor's gross margin is almost meaningless on its own. It swings from 4.6% to 20% depending on how much work is self-performed vs passed through to subs.
Tutor Perini, a near-pure pass-through GC, ran a 4.6% gross margin in FY2024 and posted a net loss. Granite Construction's construction segment ran 14.4% gross, while its materials segment (aggregates and asphalt manufacturing) ran 9.7% and dragged the blend. Sterling Infrastructure's segments spread from 6.5% operating (transportation) to 22.0% (e-infrastructure). The lesson: a GC that mostly coordinates subs shows a thin gross margin by design, because cost passes straight through. The margin lives in overhead control, working-capital discipline, and self-perform scope, not in the gross spread.
Do not benchmark your GC business on gross margin alone. Overhead as a percent of revenue and how fast you turn WIP into cash decide whether a 4% or a 14% gross margin actually makes money.
How to read this: Level measured a blended pool across six trades, so the numbers below are drawn from named public sources specific to general contractor contractors (SEC filings, BLS, CFMA, industry research), each tagged by confidence tier. Level's own cross-trade benchmarks (further down) apply across trades and are labeled as such. Every Tier A and B row links its primary source so you, or an AI, can verify it.
A GC's gross margin swings from 5% to 20% depending on how much work is self-performed.
Public GC gross margin, FY2024
Source / sample: TPC, GVA, STRL FY2024 10-Ks
Tutor Perini, a near-pure pass-through GC, ran 4.6% gross and posted a net loss in FY2024. Sterling, with a richer self-perform and specialty mix, ran 20%. A GC that mostly coordinates subs shows a thin gross margin by design, because cost passes straight through. Gross margin alone is a poor benchmark for a GC.
The materials/manufacturing arm drags the blended margin; the construction arm is the real GC read.
Granite: Construction vs Materials segment gross margin, FY2024
Source / sample: Granite Construction FY2024 10-K segment gross margin
Granite reports both a Construction segment (14.4% gross) and a Materials segment (9.7% gross) that manufactures aggregates and asphalt. The Materials arm drags the blended company number, so the consolidated margin understates the actual contracting work. When you read a diversified GC's margin, separate the construction from the materials or you are comparing yourself to the wrong number.
Source: Granite Construction FY2024 10-K
Because gross is thin, a GC's real result lives in overhead control and cash velocity.
The GC true-net bridge (illustrative)
Source / sample: Level analysis; CFMA pegs commercial GC net before tax at 4.1%
Start from a job's gross margin, subtract the general-conditions and home-office overhead that rarely gets fully allocated, then the financing cost of carrying WIP and retainage across a 47-to-83-day collection cycle. For a pass-through GC the gross is thin to begin with, so overhead discipline and cash velocity, not gross spread, decide whether the job actually made money. CFMA pegs commercial GC net before tax at just 4.1%.
Source: Level analysis; CFMA 2024 Construction Financial Benchmarker
General Contractor benchmarks, by source
Commercial/nonresidential GC net before tax
Tier B4.1%
The thinnest of all CFMA segments; GCs pass cost through to subs. Heavy-highway runs higher at 7.2%.
Source: CFMA 2024 Construction Financial Benchmarker (n=1,290)
Public GC gross margin
Tier A4.6% to 20%
Tutor Perini 4.6% (pure pass-through), Granite 14.3%, Sterling 20.1% (mix-elevated), FY2024. Illustrates the self-perform-vs-management spread.
GC DSO (implied)
Tier A~47 to 83 days
Granite ~47-77, Tutor Perini ~83, computed from FY2024 receivables. Retainage extends the cycle.
Best-in-class contractor gross margin / net
Tier B21.8% GM / 11.9% net
Top-quartile across CFMA respondents.
US construction establishments
Tier B919,000+
8.0M employees, ~$2.1T structures/yr across the sector.
Source: AGC of America
Tier A = public-company SEC filings or BLS government data (highest confidence, permanent URL). Tier B = trade-association or research-firm survey (CFMA, IBISWorld). Tier C = industry publications, directional only. Public-company figures are large scaled operators and read as an upper reference, not a typical private contractor. Where sources conflict, both are shown, never averaged.
What the public general contractors actually earn
GC margins swing wildly with the self-perform-vs-pass-through mix, and materials/manufacturing arms distort the blend. These segment reads separate the construction work from everything else.
| Company / scope | Gross | Operating | Net | What it tells you |
|---|---|---|---|---|
| Tutor Perini (TPC)Consolidated, FY2024 | 4.6% | -2.4% | -3.8% | Near-pure pass-through GC; posted a net LOSS in FY2024. |
| Granite Construction (GVA)Construction segment, FY2024 | 14.4% | 9.1% | n/d | The GC read, with meaningful self-perform. |
| Granite Construction (GVA)Materials segment, FY2024 | 9.7% | 6.4% | n/d | Aggregates/asphalt MANUFACTURING, drags the blend. |
| Sterling Infrastructure (STRL)E-Infra vs Transportation op margin, FY2024 | n/d | 22.0% / 6.5% | n/d | Same company, a 15-point spread across segment mix. |
n/d = not disclosed at that cut. Granite and Sterling segment operating margins exclude unallocated corporate G&A, so they slightly overstate fully-loaded segment profitability.
The Level lens, reported vs. real margin
The job looked like a 12% gross margin. After overhead and the WIP financing cost, the real net is closer to 3%.
Where a commercial GC job's apparent margin goes
Source / sample: Level analysis; DSO/retainage drag anchored to public-GC filings + cost-of-capital
Reproduce it on your own book: start from the job's gross margin, subtract the general-conditions and home-office overhead that never gets fully allocated to the job, then the financing cost of carrying WIP and retainage across a 47-to-83-day collection cycle (DSO over 365, times the balance, times your cost of capital). For a pass-through GC the gross number is thin to begin with, so overhead discipline and cash velocity, not gross spread, decide whether the job actually made money. CFMA pegs commercial GC net before tax at just 4.1%.
Public-company anchors used
Tutor Perini (TPC), Granite Construction (GVA), Sterling Infrastructure (STRL). These are large, publicly traded operators; their audited 10-K figures are hard, verifiable reference points, not a stand-in for a typical private general contractor shop, which runs on different economics.
Level's cross-trade benchmarks (apply to general contractor too)
These come from Level's own analysis of 2,200+ contractors across six trades. They are cash and sales-process metrics that do not vary much by trade, so they apply to general contractor contractors as much as any other. Shown as the blended measure they are, not a per-trade split.
n=464 (blended). Effective cash conversion across the blended 6-trade pool; top decile 96.0%.
n=733 (blended). 1 day with progress billing included; 7 days among post-completion invoicers.
n=794 (blended). On decided quotes; 38.1% across all quotes.
n=430 (blended). Blended across trades; 91% of jobs carry revenue with no cost data attached.
Every Tier A and B figure above links its primary source, and the full tiered dataset for all six trades (public-company actuals, BLS wages, CFMA and market figures, each with its source URL) is downloadable and free to cite with attribution. Download the per-trade benchmark facts (JSON).
See where your general contractor numbers land
We pull your margin, labor economics, and collections and rank you against the public comps and the 2,200-contractor Level Index, then show you the first leak to fix. Free audit included.
No commitment. Real numbers, not generic advice.
Frequently asked questions
What is a good profit margin for a general contractor?
It depends on whether you mean gross or net, and on commercial vs residential work. The best hard reference points are public-company actuals: 4.6% to 20% (Tutor Perini 4.6% (pure pass-through), Granite 14.3%, Sterling 20.1% (mix-elevated), FY2024. Illustrates the self-perform-vs-management spread.). CFMA puts all-contractor net profit before tax around 6.3%, with the top quartile near 11.9%. Small private shops vary widely, so use the tiered sources on this page rather than a single number.
Where does this GC benchmark data come from?
External, citable sources specific to GC contractors: public-company SEC 10-K filings, BLS wage data, CFMA's Construction Financial Benchmarker, and industry research, each tagged by confidence tier with a source link. Level layers its own blended analysis of 2,200+ contractors (collection rate, billing speed, quote conversion) on top, labeled as a cross-trade measure, because Level measured a blended pool and does not split its own dataset by trade.
Why is a general contractor's gross margin so low?
Because a GC passes most job cost straight through to subcontractors, so there is little gross spread to begin with. Tutor Perini, a near-pure pass-through GC, ran a 4.6% gross margin in FY2024. A GC that self-performs more work shows a higher gross margin (Granite's construction segment 14.4%). CFMA puts commercial/nonresidential GC net before tax at 4.1%, the thinnest of all construction segments. The margin lives in overhead control and working capital, not gross spread.
What should a general contractor benchmark on instead of gross margin?
Overhead as a percent of revenue, WIP discipline (jobs sitting open without being billed), DSO and retainage carry, and net before tax. Because GC gross margin is thin and swings with the self-perform mix, it is a poor standalone benchmark. Public GC DSO runs roughly 47 to 83 days with retainage extending the cycle, so how fast you convert completed work into cash matters more to the bottom line than the gross number on any single job.