Contruva brings customers, quotes, schedules, marketing, reviews, and communications into one platform built for contractors.

Follow Us

How to Price a Job as a Contractor: Overhead, Profit and Markup vs Margin

Build a job price that covers your true labour cost and overhead, earns a real profit, and never mixes up markup and margin.

Contruva graphic of a job price sheet breaking a $12,950 price into materials, labour, subs, overhead and profit, with markup 17.7% and margin 15%

Most contractors I talk to don't lose money because they're bad at the work. They lose it because the price was wrong before the first tool came out of the truck. Too low and you're working for free by week two. Too high and you never get the chance. This guide is about the number itself: how to build a price that covers your overhead, pays you a real profit, and doesn't fall apart because someone mixed up markup and margin.

If you want the document side (scope, exclusions, line items, follow-up), read our guide on how to write a contractor estimate that wins the job. This post is the math underneath it. It's general information, not accounting or tax advice, so check your own numbers with your accountant.

The Formula Every Job Price Comes From

Every price, no matter the trade, is built from the same pieces:

Price = Direct job costs + Share of overhead + Profit

  • Direct job costs: materials, labour hours times your true labour cost, subcontractors, equipment rentals, disposal, permits, and travel for this specific job.
  • Overhead: the costs of running the business that don't belong to any one job: insurance, vehicles, phone, software, accounting, office or shop rent, marketing, and your own non-billable time.
  • Profit: what's left for the business after everything is paid. It funds slow months, new equipment, and growth. It is not the same as your wage.

The Business Development Bank of Canada makes the same point in its seven steps to setting the right price: know your direct costs and your fixed overhead first, then set a markup that covers overhead and still earns a target profit.

Step 1: Get Your True Labour Cost

An hour of labour costs you more than the wage. On top of pay, add the employer side of CPP and EI, vacation pay, WSIB or provincial workers' comp premiums, and any benefits. Then account for the hours you pay for but can't bill: driving between jobs, supply runs, quoting, and rain days.

A simple way to see it: take everything a worker costs you in a year and divide by the hours you can actually bill for them. If that number surprises you, good. That's the number your price has to beat, not the hourly wage.

Step 2: Work Out Your Overhead Rate

Add up a year of overhead. Use last year's books if you have them, or a realistic budget if you're new. Then pick one way to spread it across jobs and stick with it:

  • Per billable hour. Annual overhead divided by total billable hours for the year. Example: $60,000 of overhead over 1,500 billable hours is $40 of overhead per hour, before any profit. Good for labour-heavy trades.
  • As a percentage of direct costs. Annual overhead divided by annual direct job costs. Example: $60,000 of overhead on $300,000 of direct costs is 20%. Good for material-heavy work like renovations.

Those numbers are illustrations, not benchmarks. Your rate depends on your trade, crew size, and how many hours you really bill. The point is to know your own number, because a competitor's price tells you nothing about your costs.

"If overhead isn't in the price, you're paying it out of your own pocket on every job."

Contruva

Step 3: Markup vs Margin (Where Contractors Lose Money)

BDC defines markup as a percentage of cost, and gross margin as gross profit as a percentage of revenue. Same dollars, different denominator, and that's why they get confused.

  • Markup = (Price − Cost) ÷ Cost
  • Margin = (Price − Cost) ÷ Price

Say a job costs you $10,000 all-in. Add a 20% markup and you charge $12,000. Your profit is $2,000, but your margin is $2,000 ÷ $12,000 = 16.7%, not 20%. If you told yourself you run a 20% margin, you're short on every job.

Here's the conversion for common numbers:

Markup on costMargin on price
10%9.1%
15%13.0%
20%16.7%
25%20.0%
33.3%25.0%
50%33.3%

To hit a target margin, divide instead of multiply: Price = Cost ÷ (1 − target margin). For a 20% margin on a $10,000 cost, that's $10,000 ÷ 0.80 = $12,500. To convert yourself: margin = markup ÷ (1 + markup), and markup = margin ÷ (1 − margin).

Step 4: Put It Together on a Real Job

Here's a made-up bathroom refresh to show the steps, not a typical price:

  1. Materials: $4,000 from your supplier quote.
  2. Labour: 60 hours at a true cost of $50/hour = $3,000.
  3. Subs and job costs: plumber $1,200, disposal bin $400 = $1,600.
  4. Direct cost: $8,600.
  5. Overhead: 60 hours × $40/hour = $2,400. Total cost: $11,000.
  6. Profit: for a 15% margin, $11,000 ÷ 0.85 = $12,941. Round to $12,950 before tax.

Notice profit sits on top of overhead. A lot of contractors put one markup on materials and call it done, which quietly turns overhead and profit into the same thin slice.

Step 5: Add GST/HST Last, and Know Your Threshold

Sales tax goes on top of your price. It isn't part of your profit. The CRA's GST/HST rates table lists 13% HST in Ontario, 14% in Nova Scotia, 15% in New Brunswick, Newfoundland and Labrador, and PEI, and 5% GST in the other provinces and territories, with PST added separately in B.C., Manitoba, Saskatchewan, and Quebec (QST). Rates depend on where the supply is made, so check the CRA page for your job.

If you're just starting out, the CRA says you generally have to register for GST/HST once your taxable revenues pass $30,000 in a single calendar quarter or over the last four consecutive calendar quarters. Once you're registered, the input tax credits you claim on materials mean the tax you pay suppliers isn't a cost in your price. For how tax works on materials and markup, see do contractors charge HST on materials.

Step 6: Check It Against the Market

BDC is clear that you can't choose your markup on math alone: what you can charge depends on your position in the market. Your cost-based price is your floor. If the market pays less than that floor for a certain kind of job, that's a signal to stop chasing that job, not to cut your margin to zero.

  • Track your win rate. Winning almost every bid usually means you're leaving money on the table.
  • Compare estimated hours and materials to actuals after every job, and update your rates.
  • Recalculate overhead at least once a year, or whenever you add a truck, a hire, or a new insurance policy.

Common Pricing Mistakes

  • Treating markup and margin as the same number.
  • Pricing labour at the wage instead of the true cost.
  • Leaving out your own time spent quoting, driving, and doing admin.
  • Counting your own pay as profit.
  • Matching a competitor's price without knowing your own costs.
  • Forgetting to charge for change orders and extra work as the job goes.

Where Contruva Fits

We're building Contruva so Canadian trades can keep customers, quotes, schedules, tasks, and job expenses in one place. When your quotes and real job expenses live on the same record, it's much easier to see whether a job actually hit the margin you priced it at, and to fix your numbers before the next quote goes out.

Frequently Asked Questions

What is the difference between markup and margin?

Markup is profit as a percentage of cost. Margin is profit as a percentage of the selling price. A 25% markup equals a 20% margin, so the same job always shows a lower margin than markup.

How do I calculate overhead for a contractor business?

Add up a year of costs that don't belong to a single job, such as insurance, vehicles, software, rent, and marketing. Divide by your billable hours to get an hourly overhead rate, or by your direct job costs to get a percentage, and add it to every job.

How do I price a job for a target profit margin?

Add direct costs and overhead to get total cost, then divide by one minus your target margin. For a 15% margin on $11,000 of total cost, the price is $11,000 ÷ 0.85, or about $12,941 before GST/HST.

Do I include GST/HST in my markup?

No. Calculate your price before tax, then add the GST/HST or HST rate for where the work is supplied. If you're registered, you can generally claim input tax credits on the tax you pay for business purchases, so that tax shouldn't be in your cost.

Want quotes and job costs working together? Join the Contruva waitlist to bring customers, deals, quotes, schedules, tasks, and expenses into one connected workflow.