Average Construction Profit Margin (2025): Gross vs Net, Markup Math, Benchmarks 6 Sep 2025

Average Construction Profit Margin (2025): Gross vs Net, Markup Math, Benchmarks

Heard someone say “10 and 10” and figured that’s standard profit in construction? That’s how a lot of contractors end up with 3-5% at year‑end and wonder where the money went. The real question isn’t just the average-it’s how to hit a healthy margin on your jobs without scaring off clients or taking dumb risk.

TL;DR:

  • Typical construction profit margin in 2025: gross profit 15-25% for general contractors, 25-40% for specialty trades; net profit 3-8% (GCs), 5-12% (trades). Best‑in‑class can hit 10-15% net.
  • Residential remodelers often run 30-35% gross and 5-8% net; commercial GCs commonly see 12-18% gross and 2-6% net.
  • Markup ≠ margin: a 20% markup delivers a 16.7% margin; to get a 20% margin, markup by 25%.
  • If your net is under 3% or gross under 15%, you’re one hiccup away from red ink. Fix your job costing, change orders, and overhead recovery.
  • North America benchmarks (2024-2025): CFMA Benchmarker shows low single‑digit median net for GCs; NAHB’s remodeler study sits near 35% gross and ~5% net; StatsCan operating margins often fall in the mid‑single digits for construction.
  • Jobs you likely came here to do:
  • Get a straight answer on “average profit margins” by segment (GC vs trades, residential vs commercial).
  • Understand gross vs net vs markup so you can bid correctly.
  • See quick formulas to set profitable prices.
  • Benchmark your numbers and spot where money leaks.
  • Grab a checklist to raise margins without losing work.

What is the average profit margin in construction?

Let’s define terms before numbers:

  • Gross Profit (GP): Revenue minus direct job costs (labor, subs, materials, equipment on the job). GP% = GP ÷ Revenue.
  • Overhead (OH): Office salaries, trucks, rent, software, insurance, bid costs-everything not tied to a specific job.
  • Net Profit (NP): GP minus overhead. NP% = NP ÷ Revenue (pre‑tax).
  • Markup vs Margin: Markup is what you add to cost; margin is profit as a percent of price. Markup% = Margin% ÷ (1 − Margin%).

Industry ranges you can actually use in 2025:

  • General Contractors (mixed work):
  • Gross: 15-25% is normal; 20-25% if you self‑perform a bit, carry some design/build risk, or excel at change orders.
  • Net: 3-8% most years. Many land near 4-6% if they run tight WIP (work‑in‑progress) and overhead.
  • Specialty Trades (electrical, HVAC, concrete, finishes):
  • Gross: 25-40%, sometimes 45% on service/repair.
  • Net: 5-12% common; 12-15% for strong service divisions and maintenance contracts.
  • Residential Remodeling / Custom Homes:
  • Gross: ~30-35% is common for remodelers; custom home builders often target 18-25% GP on build cost.
  • Net: 5-10% when overhead is controlled; custom builders often end up 6-9% in stable years.
  • Commercial Building GC:
  • Gross: 12-18% (tight specs, more competition).
  • Net: 2-6% depending on retainage, schedule risk, and change order recovery.

Benchmarks worth knowing (no links, go by name):

  • CFMA Benchmarker (2023-2024): Median pre‑tax net often low single digits for general building contractors; higher for specialty trades.
  • NAHB Cost of Doing Business (Remodelers, 2024): Gross margins around the mid‑30s; net around ~5% after overhead.
  • Statistics Canada (Quarterly financial stats, 2023-2024): Operating profit margin for construction tends to sit in mid‑single digits; varies by subsector.

Local reality check from Calgary: commercial GCs I see running clean books land 3-6% net in steady years, with gross 14-18% on base scope and better on owner‑driven changes. Residential trades often beat that net when they control scheduling and procurement.

One more nuance: averages hide risk. A 4% net for a volume commercial GC can be fine if backlog is strong and change orders flow. That same 4% for a high‑risk design‑build firm with thin cash reserves is shaky. Look at your volatility (material swings, labor churn, weather exposure) and bid to cover it.

SegmentGross Margin (GP%)Net Margin (NP%)Notes
GC - Commercial12-18%2-6%Tighter specs, retainage, low‑bid pressure
GC - Residential18-25%4-8%More change orders, more client management
Remodeler30-35%5-8%Small jobs, high touch, scheduling risk
Specialty Trades25-40%5-12%Higher on service/maintenance
Service/Repair Divisions35-50%8-15%Fast response, skilled labor bottlenecks

Quick guardrails for 2025 pricing:

  • If your GP is under 15% on average, you’re underpricing or leaking profit in the field.
  • To net 8% with a 12% overhead load, you generally need ~20-22% gross across the year.
  • Material volatility is down from 2021 highs but still lumpy in mechanicals and electrical gear. Budget contingency (1-3% of revenue) beats eating surprise costs.
How to calculate, price, and actually keep your margin

How to calculate, price, and actually keep your margin

Step 1 - Calculate your real margins (company‑wide and per job)

  1. Job Gross Profit: GP = Price − Direct Costs. GP% = GP ÷ Price.
  2. Company Overhead Rate: Overhead ÷ Revenue. Track monthly.
  3. Net Profit: NP = Total GP − Overhead. NP% = NP ÷ Revenue.
  4. Contribution by Job: GP% by job tells you which work types feed or starve the business.

Step 2 - Use the right markup to hit your target margin

  • Formula: Markup% = Margin% ÷ (1 − Margin%).
  • Example: Want 20% gross margin? Markup cost by 25% (0.20 ÷ 0.80).
  • Want 25% margin? Markup 33.3% (0.25 ÷ 0.75).
  • Pricing from cost: Price = Cost ÷ (1 − Margin%). If your cost is $80,000 and target margin 25%, price should be $106,667.

Step 3 - Cover overhead before you talk “profit”

  • Estimate overhead as a % of revenue (say 10-15%).
  • Target Net = Gross Margin − Overhead. If you want 8% net and overhead is 12%, you need ~20% gross consistently.
  • Seasonal work? Raise gross on high‑risk or off‑season jobs to carry fixed overhead year‑round.

Step 4 - Guard against slippage (bid margin vs delivered margin)

  • Pre‑con turnover: Estimator hands PM a scope checklist, allowances, and owner exclusions. Most slippage starts here.
  • Change orders: Price them fast and at your target GP. Unpriced changes crush margin.
  • Procurement: Lock key materials early with quotes that match your schedule; note price‑validity windows.
  • Labor productivity: Track earned hours weekly. If you’re 10% behind by week 3, you won’t make it up without a plan.
  • Scheduling: Stack subs cleanly; chaos is margin leakage in disguise.

Step 5 - Contract terms that protect your margin

  • Escalation clauses: For long‑lead items (elevators, switchgear, HVAC), include cost‑escalation language or owner allowances.
  • Retainage: Negotiate 5% instead of 10% where possible, or tiered release by milestones.
  • Change order timing: “Work only after written approval” prevents you from funding the job.
  • LDs vs bonuses: If liquidated damages sit in the contract, bid a risk premium or negotiate a schedule bonus.

Step 6 - Forecast margin monthly (WIP done right)

  • WIP (work‑in‑progress) schedule: For each job, track contract value, costs to date, percent complete, billed, and remaining cost to complete.
  • Margin fade watchlist: Any job where forecast GP% drops by >2 points gets a root‑cause review this week, not at closeout.
  • Revenue recognition: Percent‑complete accounting (not cash basis) keeps you honest about gross margin mid‑project.

Step 7 - Bid/no‑bid with intent

  • Say no to RFPs that force you under 15% GP with high liquidated damages and extended retainage.
  • Say yes to repeat clients, negotiated work, and scopes where your crew’s learning curve is steep (you’ll build faster than competitors).
  • Go in heavy on small, messy jobs if you control change orders and the client wants speed over price.

Example: Pricing a residential renovation

  • Direct costs: $140,000 (labor, subs, materials)
  • Target gross margin: 30% → Price = 140,000 ÷ 0.70 = $200,000
  • Company overhead: 12% of revenue ($24,000)
  • Expected net: $200,000 × 30% − $24,000 = $36,000 (18% − 12% = 6% net)

If the client pushes back to $190,000, your gross falls to 26.3% and net to roughly 2-3% after overhead. Not worth it unless you narrow scope or lock in paid changes.

Example: Commercial TI for a GC

  • Direct costs: $1,350,000
  • Target gross margin: 16% → Price ≈ $1,607,143
  • Overhead: 10% ($160,714)
  • Expected net ≈ 6% ($96,429) if you control changes and schedule.
  • Risk trigger: If you see long‑lead gear (switchgear, AHUs) with uncertain ship dates, add contingency or escalation.

Pro tips to keep margin in your pocket:

  • Price speed and certainty: Many owners will pay for guaranteed start dates, weekend work, or faster closeout.
  • Standardize allowances: Put cabinet, tile, lighting allowances in writing. Overages become clean change orders.
  • Protect foreman time: Every hour of admin you rip off your lead is an hour of field productivity lost.
  • Rent vs buy: On short jobs, rent. On steady, long‑duration work, buying often raises GP by 1-2 points.
  • Daily reporting: Photos + quantities + hours. Five minutes a day avoids five‑figure misses at month‑end.
Benchmarks, examples, checklists, and FAQ

Benchmarks, examples, checklists, and FAQ

Quick benchmark cheat‑sheet (2025):

  • Healthy GP targets:
  • GC Residential: 20-25%
  • GC Commercial: 14-18%
  • Remodeler: 30-35%
  • Trades: 30-40% (35-50% on service)
  • Healthy NP targets:
  • GC: 5-8% (10%+ if negotiated/design‑build and tight overhead)
  • Trades: 8-12% (12-15% with service contracts)
  • Rule of thumb: If your overhead is 12%, you need ~20-22% GP to net 8%

Pricing math cheat‑sheet:

  • Margin to Markup: 15% margin → 17.6% markup; 20% margin → 25% markup; 25% margin → 33.3% markup; 30% margin → 42.9% markup.
  • Price from cost: Price = Cost ÷ (1 − Margin%).
  • Break‑even revenue: Overhead ÷ Company GP%.

Field slippage checklist (use weekly):

  • Scope drift? Compare daily reports to estimate quantities.
  • Unpriced T&M tickets getting installed? Stop and price.
  • Long‑lead items locked? Review PO dates vs schedule path.
  • Labor hours on track? Plot earned vs actual weekly.
  • Sub invoices match PO and progress? Verify before approving.

Pre‑con checklist (protect your GP before day one):

  • Clear inclusions/exclusions list sent to client.
  • Allowances with unit prices (tile per sq ft, fixtures per list).
  • Escalation language for volatile categories.
  • Schedule with procurement milestones, not just start/finish dates.
  • Change order process spelled out: pricing deadlines, approval flow.

Mini‑FAQ

  • What is a good profit margin for a construction company?
  • For GCs, 5-8% net is solid in competitive markets; 10%+ suggests strong positioning or negotiated work. For trades, 8-12% is healthy, higher if you run a tight service division.
  • Is 10% profit good in construction?
  • As a net profit after overhead, yes-10% is strong. As a gross margin, 10% is too thin for most jobs unless risk is near zero.
  • Why do many contractors end up with only 3-5% net?
  • Underpriced bids, unpriced change orders, poor labor productivity tracking, retainage tying up cash, and overhead growth during busy seasons that never shrinks back.
  • How do I raise margins without losing bids?
  • Specialize, respond faster, and sell schedule certainty. Trim scope instead of cutting price. Use options/alternates rather than a blunt discount.
  • Gross margin vs markup-what’s the simplest way to remember?
  • Margin is profit as a slice of the price; markup is the extra added to cost. To get 25% margin, mark up cost by one‑third.
  • What about Canada specifically?
  • On the Prairies, commercial GCs often net 3-6% with 12-18% GP; trades commonly run 30-40% GP and 8-12% net. StatsCan’s broader construction operating margins sit in the mid‑single digits, which lines up with what I see in Calgary.
  • How do retainage and slow pay change margin targets?
  • Add 1-2 points of margin or a financing fee to cover the cash cost. Or negotiate milestone retainage releases.

Three quick playbooks

  • Small GC (under $5M revenue)
  • Target: 22% GP, 12% OH, 8% net. Bid negotiated and repeat clients first. Outsource non‑core design risk. Weekly WIP and labor tracking. PMs price changes within 48 hours.
  • Specialty trade (electrical/HVAC)
  • Target: 35% GP, 22% service GP, blended net 10-12%. Grow service contracts to smooth backlog. Pre‑fab where possible to raise productivity. Use unit pricing for common extras.
  • Custom home builder / remodeler
  • Target: 30-35% GP, 6-8% net. Standardize selections with allowances. Client portal for approvals. Cost‑plus with a fee floor for volatile scopes, or fixed price with tight exclusions.

Decision cues: when to raise your margin

  • You’re the only bidder with immediate start capacity → Add 2-3 points.
  • High LDs, long lead times, or complex permitting → Add 2-5 points.
  • Small, messy work with many unknowns but fast approvals → Add 3-6 points and lean on change orders.
  • Repeat client with clear scope and quick decisions → You can be tighter, but don’t underprice your value; win on speed, not on margin giveaways.

Red flags that margins will erode

  • “We’ll sort out selections later.” That’s margin begging to leak.
  • Sub quotes with short validity and no stock confirmation.
  • Owner insists on T&M but won’t sign weekly tickets.
  • Schedules that ignore procurement lead times.
  • PM inherits the job without a documented turnover from the estimator.

Next steps

  • Run last 6 months of jobs through a simple GP% report by job and by client. Drop the bottom 10% of clients from future bids.
  • Adopt the price formula this week: Price = Cost ÷ (1 − Target Margin%). Post it above your estimator’s screen.
  • Add a Friday WIP huddle: update cost‑to‑complete on every active job, flag margin fade early.
  • Standardize a one‑page change order: scope, units, price, and schedule impact. No work without signature.
  • Re‑quote your top five material categories quarterly and lock pricing windows into your contracts.

Troubleshooting

  • My net is under 3% even though my gross is 20%
  • Your overhead is likely too high or misallocated. Trim fixed costs, push admin tasks out of the field, and grow revenue on higher‑margin scopes to absorb OH.
  • My bids aren’t winning at 20% GP
  • Either the scope is off or the market is brutal. Sharpen takeoffs, get two quotes per major material, and bid only where you have an edge. Offer alternates to hit budgets without cutting margin.
  • Cash is always tight due to retainage
  • Front‑load your schedule of values within reason, negotiate milestone releases, and bill early/often. Consider a line of credit sized to your WIP; the carrying cost beats missing payroll.
  • Labor is my bottleneck
  • Raise price on labor‑heavy scopes, invest in pre‑fab, and schedule for productivity (fewer site visits, better sequencing). One percent productivity gain usually beats a one percent material discount.

You don’t have to chase the lowest price to stay busy. Know your numbers, bid work that fits your crews, and protect the little processes that keep gross margin from bleeding out. Average margins are a decent compass, but your own job cost history is the map.