Skip to main content
2,200+ service businesses benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level

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

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.

Source: Tutor Perini, Granite & Sterling FY2024 10-Ks

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.

TPC, GVA, STRL FY2024 10-Ks

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.

Source: Tutor Perini, Granite, Sterling FY2024 10-Ks

Granite Construction FY2024 10-K segment gross margin

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

Level analysis; CFMA pegs commercial GC net before tax at 4.1%

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 B

4.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 A

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.

Source: SEC 10-K filings (TPC, GVA, STRL) FY2024

GC DSO (implied)

Tier A

~47 to 83 days

Granite ~47-77, Tutor Perini ~83, computed from FY2024 receivables. Retainage extends the cycle.

Source: Computed from SEC 10-K filings FY2024

Best-in-class contractor gross margin / net

Tier B

21.8% GM / 11.9% net

Top-quartile across CFMA respondents.

Source: CFMA 2024 Construction Financial Benchmarker

US construction establishments

Tier B

919,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 / scopeGrossOperatingNetWhat it tells you
Tutor Perini (TPC)Consolidated, FY20244.6%-2.4%-3.8%Near-pure pass-through GC; posted a net LOSS in FY2024.
Granite Construction (GVA)Construction segment, FY202414.4%9.1%n/dThe GC read, with meaningful self-perform.
Granite Construction (GVA)Materials segment, FY20249.7%6.4%n/dAggregates/asphalt MANUFACTURING, drags the blend.
Sterling Infrastructure (STRL)E-Infra vs Transportation op margin, FY2024n/d22.0% / 6.5%n/dSame 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.

Median collection rate85.1%

n=464 (blended). Effective cash conversion across the blended 6-trade pool; top decile 96.0%.

Median billing speed1 day

n=733 (blended). 1 day with progress billing included; 7 days among post-completion invoicers.

Quote conversion (decided)73.9%

n=794 (blended). On decided quotes; 38.1% across all quotes.

Median job gross margin44.3%

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.

2,200+ service businesses benchmarked$13.25B in revenue analyzedWeekly action cadence

No credit card. 15-min audit. We only follow up if we can actually help.

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.