There's no universal "right" contractor markup percentage — but there is a wrong one: whatever you're using if you haven't calculated your overhead rate. Here's how to find the number that's right for your business.
Typical contractor markup ranges (2026)
- Materials: 20–35% markup (10–25% margin) — less markup since clients can verify prices
- Labor: 50–100% markup (33–50% margin) — markup must cover burden, overhead, and profit
- Subcontractors: 10–25% markup — management time, liability, and coordination
- Equipment/rental: 15–25% markup — your risk for equipment on the job
Gross margin targets by trade
- Electrical: 40–55%
- Plumbing: 40–55%
- HVAC: 35–50%
- General contracting (remodel): 35–50%
- Painting: 45–60%
- Roofing: 30–45%
- Landscaping: 40–55%
- Cleaning services: 50–70%
The formula for your markup
- Determine your target gross margin (start with industry standard for your trade above)
- Markup factor = 1 ÷ (1 – Gross Margin)
- Example: 45% margin → 1 ÷ 0.55 = 1.82 multiplier
- Apply to every cost line: material at supplier cost × 1.82 = your sell price
Why fixed-percentage markup fails
A material-heavy job (80% materials, 20% labor) and a labor-heavy job (30% materials, 70% labor) have completely different cost structures. The same markup percentage on total costs will either over-price the material job (losing bids) or under-price the labor job (losing money). The fix: separate markup rates for materials and labor.
Markup and your hourly rate
If you charge $100/hour and your fully-loaded cost (wage + burden + overhead) is $75/hour, your labor margin is 25%. If you want 45% margin on labor, you need to charge $75 ÷ (1 – 0.45) = $136/hour.
The ConstruMate calculator lets you set separate markup rates for materials and labor per trade — so every bid automatically hits your target margin.
Build your first estimate in 5 minutes
ConstruMate — AI estimates + bilingual proposals