Markup and margin are the same number described two different ways, but the difference between them is exactly why most trades contractors quietly underprice their work. A 25% markup is not a 25% margin. A 50% markup is a 33% margin. If you set your prices by markup but evaluate your profitability by margin, the gap compounds across every job.
This article walks through the math, shows you the markup-to- margin conversion you need, and gives you the contractor pricing framework that fixes the underpricing problem.
The math: markup vs margin
Both terms measure the same dollar amount of profit, but they divide it by different denominators.
- Markup = (Price − Cost) ÷ Cost. The profit divided by your cost.
- Margin = (Price − Cost) ÷ Price. The profit divided by your sale price.
Example: a $100 part you sell for $130.
- Markup = $30 ÷ $100 = 30%
- Margin = $30 ÷ $130 = 23%
Same $30 profit. Different ratios. Margin is always lower than markup because the denominator is larger.
Markup-to-margin conversion table
Memorize a few common conversions. The gap matters more than most contractors realize.
| Markup | Margin | Gap |
|---|---|---|
| 10% | 9% | 1 point |
| 15% | 13% | 2 points |
| 20% | 17% | 3 points |
| 25% | 20% | 5 points |
| 33% | 25% | 8 points |
| 50% | 33% | 17 points |
| 67% | 40% | 27 points |
| 100% | 50% | 50 points |
| 150% | 60% | 90 points |
The two big takeaways: at low markup percentages the gap is small, but the gap widens fast above 25%. And to hit a 40% margin you need a 67% markup, not 40%.
Why this kills contractor profitability
Imagine you decide you want to keep 30% of every dollar that comes in (a margin target) for overhead and profit. So you take your costs and add 30% on top (a markup operation). Your actual margin: 23%. You’re leaving 7 percentage points per job on the table.
On a contractor doing $300,000/year in revenue, that is $21,000 of margin disappearing annually, compared to what you intended.
Multiply by every line on every quote across every job for a decade and you can see why a lot of sole-prop contractors work 60 hours a week and still cannot pay themselves what they would make as employees.
The reverse: setting price from margin
The simplest fix is to set your prices from margin, not markup. The formula:
For a 30% target margin on a $100 cost item: $100 ÷ (1 − 0.30) = $100 ÷ 0.70 = $142.86. Markup is 43%. Margin is the 30% you actually wanted.
For a 40% target margin on a $100 cost item: $100 ÷ 0.60 = $166.67. Markup is 67%. Margin is the 40% you actually wanted.
What “cost” should actually include
The biggest underpricing trap is treating “cost” as just material cost. For trades contractors, true cost on a job includes:
- Material cost (the obvious one).
- Direct labour cost (fully loaded: wages + CPP + EI + WSIB + paid time off + benefits).
- Subcontractor cost (the amount you actually pay them, not what you bill).
- Job-specific overhead (vehicle costs allocated to the job, equipment rental, permits, dump fees).
Once you sum the real cost, apply your target margin from there. Most contractors who do this exercise for the first time discover their “30% markup” was actually a 5-10% margin once loaded labour and overhead were properly counted.
Typical margin targets by trade segment
Industry survey data on Canadian trades is sparse, but US construction-industry benchmarks (NAHB, Remodeling Magazine) suggest these gross-margin ranges:
- Residential renovation general contractors: 25-35% gross margin.
- Specialty trades (electrical, plumbing, HVAC): 30-40%.
- Custom carpentry / millwork: 35-45%.
- Roofing: 25-35% (varies wildly with material costs).
- Commercial sub-contracting: 15-25% (volume + holdback offsets).
If your gross margin is below these ranges, you’re likely underpricing. If it’s above, you’re likely either very efficient or losing bids you should be winning.
Where this connects to your quote builder
The structural fix is to use a quote builder that prices from margin, not markup. Every line item should let you enter cost, set a margin (not a markup), and have the price calculated automatically. Markup’s AI-assisted quote builder does this , and the totals row always shows you the actual gross margin for the job before you send it.
This article is general business education for trades contractors, not financial or accounting advice. Specific margin targets vary by region, trade, customer type, and market conditions. For pricing strategy specific to your business, consult a CPA or business coach with construction-industry experience.