Markup isn't arbitrary. It's a math problem with specific inputs: overhead rate, profit target, project type, risk profile, and whether the work is self-perform or subcontracted. Contractors who set markup by feel or by what the market seems to accept are pricing blind. Contractors who build markup from actual cost data — including labor hours captured by construction time tracking software — price from evidence.
This guide covers how to calculate GC markup by work type, how to price subcontractor coordination, how to defend markup in open-book contracts, and how to handle change order markup when owners push back.
Contractors who calculate markup from real cost data — especially labor hours captured using construction time tracking resources — price from evidence instead of guesswork.
Markup on construction cost covers three things:
|
Component |
What It Is |
|---|---|
|
Company overhead |
Office, admin, vehicles, indirect salaries, insurance, software — all costs that exist regardless of project activity |
|
Profit |
Return to owner for capital at risk, business development investment, and management capacity committed |
|
Risk premium |
Contingency for scope ambiguity, schedule compression, payment risk, and performance exposure |
Markup on subcontractor work specifically also covers:
A GC who passes through sub bids at zero markup is providing coordination, risk assumption, and payment guarantee for free. That's not competitive pricing — it's a business model error.
Your overhead rate should come directly from your P&L. If you need a full breakdown of how to calculate it, see the construction overhead and profit guide inside our construction management resources.
Markup rates vary by sector, contract type, and risk:
|
Project Type |
Typical GC Markup |
Breakdown |
|---|---|---|
|
Residential custom home |
20–30% |
10–14% overhead, 8–12% profit |
|
Residential remodeling |
25–40% |
12–16% overhead, 10–20% profit |
|
Commercial GC (negotiated) |
15–22% |
10–14% overhead, 5–8% profit |
|
Commercial GC (hard bid) |
12–18% |
10–14% overhead, 3–6% profit |
|
Specialty / design-build |
20–35% |
12–15% overhead, 8–18% profit |
|
Public works / prevailing wage |
15–20% |
12–16% overhead, 3–6% profit |
|
Cost-plus GCP (fee) |
8–15% fee |
Overhead and profit, lower risk |
Hard-bid commercial carries the lowest markup because competition compresses pricing — and because the GC has less pricing control than in negotiated work. The risk is higher (fixed price on design documents with ambiguity) but the margin is lower. That math only works if the contractor wins enough volume to absorb periodic losses on individual projects.
Contractors using project management software for general contractors can track coordination hours and cost exposure more accurately across commercial projects.
Self-perform work (your own crews) carries full markup — overhead and profit on all labor, material, and equipment.
Subcontracted work carries GC coordination markup on top of the sub's price. This is lower than the self-perform markup because the sub has already built their own overhead and profit into their number.
Typical GC coordination markup on subs: 5–15%
What drives it higher or lower:
|
Factor |
Direction |
Why |
|---|---|---|
|
Complex coordination (MEP interfaces, sequencing-critical) |
Higher |
More PM hours per dollar of sub work |
|
Single large sub with experienced PM |
Lower |
Less day-to-day management burden |
|
Public project with certified payroll requirements |
Higher |
Compliance and reporting overhead |
|
Pre-qualified sub, ongoing relationship |
Lower |
Less vetting, more predictable performance |
|
New sub, first time working together |
Higher |
Risk premium for unknown performance |
Example markup build-up — commercial project:
|
Cost Category |
Cost |
Markup Rate |
Markup $ |
Selling Price |
|---|---|---|---|---|
|
Self-perform labor (burdened) |
$95,000 |
25% |
$23,750 |
$118,750 |
|
Self-perform materials |
$48,000 |
25% |
$12,000 |
$60,000 |
|
Subcontracted MEP |
$310,000 |
10% |
$31,000 |
$341,000 |
|
Subcontracted specialty |
$85,000 |
10% |
$8,500 |
$93,500 |
|
General conditions |
$42,000 |
15% |
$6,300 |
$48,300 |
|
Total |
$580,000 |
avg 14.0% |
$81,550 |
$661,550 |
Effective markup on total cost: 14.1%. Effective margin on selling price: 12.3%.
If you are evaluating documentation-only tools versus full cost-code tracking systems, review the TaskTag vs CompanyCam comparison to understand the difference.
Start from target margin and work backward. See the full overhead rate calculation process in the Construction Overhead and Profit guide — once you have your overhead rate, the markup formula is:
Required markup = (Overhead rate + Target profit) ÷ (1 − Target profit)
Example:
Apply 26.7% markup to total cost to recover 14% overhead and achieve 10% profit margin on selling price.
Verify:
Markup is embedded in the total price. Owner doesn't see the breakdown. GC bears full cost risk — if actual costs exceed estimate, the GC absorbs the overage.
Best practice: Higher markup to reflect risk. No obligation to disclose overhead or profit.
Owner pays actual costs plus a GC fee (fixed dollar or percentage). Savings below GMP are shared per the contract. Owner typically has audit rights on cost records.
Best practice: Fee should still cover overhead (as a % of expected project volume) and profit. A 10% fee on a $1M project sounds significant but only covers overhead if your overhead rate is below 10%.
Construction time tracking apps for contractors become critical in cost-plus contracts — every labor hour is a billed cost that the owner can audit. Clean time records by job and cost code protect the GC's billing and make audits painless.
Owner sees all costs and markup. Common in development relationships, repeat clients, negotiated work.
Best practice: Pre-agree on markup rates by cost category before the project starts, documented in the contract. See How to Negotiate a Construction Contract for markup definition language. Once rates are set, protect them — open-book doesn't mean negotiating every line item mid-project.
Change orders are where markup discipline breaks down. Owners resist change order pricing more than base contract pricing, and contractors often capitulate — cutting markup to avoid confrontation. The result: changes become money-losers.
Change order markup should match or exceed base contract markup for three reasons:
Standard change order markup structure:
|
Component |
Rate |
|---|---|
|
Direct labor (burdened) |
Cost + 15–25% |
|
Materials |
Cost + 15–20% |
|
Subcontractor cost |
Cost + 10–15% |
|
Equipment rental |
Cost + 10–15% |
|
GC overhead |
10–15% of above |
|
GC profit |
5–10% of subtotal |
Total effective markup on change order work: 15–25% above the sub's or direct cost.
Many contracts specify change order markup limits. Review the contract before the project starts — not when the first change arrives. See How to Negotiate a Construction Contract for change order markup clause negotiation. See Construction Project Delay for delay-related change orders where markup may also include time extension costs.
Document labor hours on all change order work. A construction timesheet app with job and cost code selection lets crews clock into change order cost codes in real time. This produces defensible, timestamped labor records — essential when an owner disputes change order labor billing.
On competitive bids or in owner-friendly markets, GCs face pressure to reduce markup. How to respond:
Know your floor. Before negotiating, know the minimum markup that recovers overhead and breaks even on profit. Anything below that floor means the project costs you money to run. Contractor profit and loss statement analysis tells you where the floor is.
Separate overhead recovery from profit. In a negotiation, you can offer to reduce profit — but overhead recovery is non-negotiable. The conversation is: "I can reduce my profit margin from 8% to 5% on this project — but the 14% overhead recovery is fixed; it covers costs I incur regardless of whether this project happens."
Show productivity data. A GC who can demonstrate from construction employee time tracking data that their crews run at X% efficiency advantage over the market has a quantified argument for their markup. Historical labor hours per unit of work showing consistent productivity below industry averages = earned premium.
Don't win jobs you'll regret. A project won below overhead recovery isn't a competitive success — it's a future cash flow problem. See Construction Cash Flow Management for how below-cost projects ripple through company liquidity.
Specialty and trade contractors carry different markup structures than GCs because they self-perform more of the work:
|
Trade |
Typical Gross Markup |
Notes |
|---|---|---|
|
Electrical |
30–45% |
High labor content, skilled trades premium |
|
Plumbing |
30–45% |
Similar to electrical |
|
HVAC |
25–40% |
Equipment cost dilutes labor-heavy markup |
|
Concrete / masonry |
20–30% |
Material-heavy, lower margin |
|
Drywall / framing |
20–28% |
Competitive, volume-driven |
|
Painting |
25–40% |
High labor percentage |
|
Landscaping |
30–50% |
High overhead, seasonal business; see Time Tracking for Landscapers |
|
Roofing |
25–40% |
Risk premium for warranty exposure |
Flat markup regardless of work type. Applying one markup percentage to self-perform labor and subcontracted MEP treats a $20/hour laborer and a $180,000 mechanical sub the same. Differentiate by cost type.
Not updating markup when overhead changes. An overhead rate calculated in a $3M revenue year should increase when revenue drops to $2M (same fixed overhead, less volume to absorb it). Recalculate annually.
Cutting markup to win competitive bids without modeling the floor. Know the minimum before negotiating. Winning below cost is worse than not winning.
Failing to protect markup on change orders. Contracts written with markup caps on base scope often silently cap change orders too — or owners assume they do. Negotiate separate change order markup provisions.
Not tracking actual overhead to validate the markup rate. If you set markup based on a 16% overhead estimate but actual overhead is 19%, you're recovering 3% less than needed on every project. Use actual P&L data from construction time keeping software that integrates with job costs to verify annual overhead vs. what was recovered through markup.MARKUP CALCULATION WORKSHEET Annual overhead rate (from P&L): _______% Target profit margin: _______% Required markup formula: (Overhead + Profit) ÷ (1 − Profit) = _______% BY COST TYPE: Self-perform labor + materials: _______% (typically overhead + profit + 2-5% risk) Subcontracted work: _______% (typically 8-15% coordination markup) General conditions: _______% (same as self-perform or lower) CHANGE ORDER MARKUP: Direct costs markup: _______% GC overhead on changes: _______% GC profit on changes: _______% Total effective change order markup: _______% MARKUP FLOOR (minimum to break even): Overhead recovery only, zero profit: _______% If you want to align markup with real labor data, you can start your free TaskTag account today.
(Insert link on anchor text:
To compare options, explore TaskTag pricing plans and review free & team plans for construction companies.
You can also book a TaskTag demo to see cost-code tracking and markup validation in action.
To learn more about the company behind the platform, visit about TaskTag.
If you want mobile access for field teams, download the TaskTag app and start managing projects from the field.
TaskTag Features
Related Blog Posts