Contractor Markup and Profit Guide Ontario (2026)
What this guide covers
Most contractors in Ontario underprice. Not because they want to, but because the contractor markup and profit numbers passed around the trades (the 10% overhead, 10% profit, 20% markup rule) do not match what it actually costs to run a small shop in 2026. This guide shows what real markup looks like, how to set yours, and where the money quietly leaks out.
If you do not know your overhead percentage to the dollar, you do not know your numbers. The good news is the math is simple once you see it laid out.
Markup vs margin (most contractors get this wrong)
This is the single biggest pricing mistake in the trades. Markup and margin are not the same number.
- Markup is what you add to your cost to set the price.
- Margin is what stays after you subtract cost from price.
A job costs you $1,000. You add a 30% markup, so you sell it at $1,300. Your profit is $300 on $1,300 revenue, which is 23% margin, not 30%.
The bigger the gap, the bigger the bleed. A 43% markup is only a 30% margin. A 50% markup is a 33% margin. If you priced for "margin" but used a markup formula, you priced low and did not know it.
Quick conversion table:
| Target Margin | Markup You Need |
|---|---|
| 20% | 25% |
| 25% | 33% |
| 30% | 43% |
| 35% | 54% |
| 40% | 67% |
| 50% | 100% |
Print this. Tape it to your truck dash. Most quoting mistakes start here.
What is the average contractor markup?
The 10-10 rule (10% overhead, 10% profit, 20% total markup) is the textbook answer cited by the National Association of Home Builders. It is also wrong for most small contractors in Ontario.
Why? Actual overhead in renovation and small-job contracting averages around 25% of revenue, not 10%. If you mark up 20% but your overhead is 25%, you are losing money on every job before you pay yourself.
What real markup looks like in 2026:
- Materials: typical 7.5% to 20%, with some specialty items at 50%
- Labour: 25% and higher is the industry standard
- Subcontractors: the BC Construction Association recommends a maximum of 10% on sub work, which is the same number most Ontario GCs use
- Total project markup: most well-run small shops sit between 30% and 50%
Over 30% of residential builders mark up projects at 25% or more (per the State of the Residential Construction Industry report). Anything under 25% total markup on small jobs is a red flag for the financial health of your business.
What is a normal overhead for a small contractor?
Overhead is everything that is not the job itself: truck, fuel, insurance, software, phone, office, marketing, accountant, the time you spend on quoting and admin.
Industry benchmarks:
- Renovation contractors: around 25% of revenue
- Small specialty contractors (one to three trucks in plumbing, HVAC, electrical): 25% to 45%
- Lean owner-operators with no admin staff and minimal marketing: 8% to 15%
For a one-truck contractor in the GTA, expect overhead between 25% and 35% once you add WSIB, $2M general liability insurance, accounting, fuel, vehicle maintenance, and the software stack. If you are not tracking it, you are guessing, and the guess is almost always too low.
What profit is realistic?
The Construction Financial Management Association reports that the average pre-tax net profit for general contractors is between 1.4% and 2.4%. That is the average. It is not the goal.
Real targets for a healthy small Ontario shop:
- Minimum: 8% net profit
- Average: 10%
- Well-run: 15%
Specialty contractors in HVAC, plumbing, and electrical consistently earn 6.9% net or more, beating general contractors at 4% to 6%. If you are a specialty trade and earning under 8%, your pricing is the problem, not the work.
How to set your markup (step by step)
- Add up your annual overhead to the dollar. Insurance, WSIB, truck payment, fuel, phone, software, accounting, marketing, office, supplies. If you are full-time on the tools, count 50% of your salary as overhead (the half spent quoting, driving, calling suppliers).
- Divide that by your annual job costs (materials and labour combined). The result is the overhead percentage you must add to every job.
- Add your profit target on top (10% minimum, 15% for a well-run shop).
- Convert that combined margin into a markup using the table above.
Worked example for a one-truck plumber in Toronto:
- Annual overhead: $45,000 ($5K insurance, $4K WSIB, $12K truck and fuel, $1.5K software, $2K accounting, $5K marketing, $1K phone, $14.5K representing half of $29K in admin time)
- Annual job costs: $120,000 (materials plus sub help)
- Overhead percentage of cost: 37.5%
- Profit target: 10%
- Combined required margin: 47.5%
- Markup needed on every job: roughly 90%
That number shocks most contractors. It is also why most contractors stay "busy and broke." The math does not lie. The 20% markup rule of thumb covers a 10% overhead and a 10% profit. If your real overhead is 37%, that 20% markup just took your profit and your overhead with it.
What this looks like on a $20,000 job
| Line | Amount |
|---|---|
| Materials cost | $7,000 |
| Labour cost | $5,000 |
| Sub cost | $2,000 |
| Total job cost | $14,000 |
| Markup at 43% | $6,000 |
| Sold price | $20,000 |
| Overhead allocation (25% of revenue) | $5,000 |
| Net profit | $1,000 (5%) |
Even at a 43% markup on a normal cost structure, this job nets 5%. To hit a 10% net, you would need to sell this same scope at $21,500 (a 53% markup) or cut $1,500 from cost. That is the gap most contractors do not see until tax time.
Where contractors leak money
- Quoting at "20% markup" because that is the rule: covers a 10% overhead and a 10% profit. If your real overhead is 30%, you ate it.
- Not marking up materials: materials tie up cash, get damaged, get returned, and require time to source. 15% to 20% on materials is fair.
- Not marking up subs: if the sub charges $5,000 and you bill $5,000, you carry the coordination, warranty, and risk for free. 10% minimum.
- Forgetting change orders: most jobs grow 10% to 15% in scope. If you absorb that, your margin disappears.
- Quoting based on the competition: the contractor next door might be losing money too. Pricing off them just spreads the bleed.
- No HST on the quote: customer disputes the 13% HST when the invoice arrives.
- Cash discounts to "win" the job: a 5% discount on a 10% margin job cuts your profit in half.
How to raise prices without losing the work
Most contractors raise rates by 3% to 5% per year. With material inflation running higher in 2025 and 2026, that is not enough to keep up.
The cleanest way to raise prices:
- Pick a date 30 days out (start of next quarter is easiest)
- Tell existing clients in advance, with a polite note that scheduled work before the date is locked in at the old rate
- Update your written quotes and proposal templates that day, no exceptions
- Stop discussing price on the phone. Send a quote. Discuss in writing.
Most clients accept a price increase if you explain it once and act like it is normal. Apologetic pricing reads as negotiable pricing.
Quick reference
- Materials markup floor: 15%
- Materials markup target: 20%
- Labour markup target: 25% to 35%
- Sub markup floor: 10%
- Total project markup floor: 35%
- Total project markup target: 50% or more for small residential
- Net profit minimum: 8%
- Net profit target: 10% to 15%
Markup is not a feeling. It is the gap between what a job costs you and what stays after the bills are paid. If you set it without knowing your overhead, you are guessing with your own paycheque.
For the trade-specific pricing benchmarks, see How Much Do Plumbers Charge Per Hour in Ontario and How Much Do Electricians Charge Per Hour in Ontario.
For the official tax and registration thresholds that affect your overhead (HST registration, self-employment), the Canada Revenue Agency is the source of truth.
See where your business stands: grizzli.app/score