All articles

Growth

How to Price a Job as a Contractor: Markup Math

Two contractors, two 1,100 sq ft basement finishes. One cleared $10,000 gross. The other cleared $80,000. The gap is one formula almost everyone gets backwards.

Om Patel 16 min read
Photo: Jason Leung / Unsplash

The short answer

Most contractors price by confusing markup with margin, which quietly caps their earnings. A 30% markup produces a 23% gross margin, not 30%. To land on 30% margin you need a 43% markup; 40% margin needs 67%; 50% margin needs 100%. Overhead comes out of that margin, not on top of it. Price from burdened cost of goods sold, apply the markup that reaches your target margin, and treat a win rate above roughly 50% as evidence you are too cheap.

Two contractors, two basement finishes, almost the same size.

The first posted his numbers on r/Contractor: roughly 1,100 square feet, a bathroom, laundry area and kitchenette, delivered for about $50,000. His profit was just over $10,000, before paying his helper.

The second replied with his own job in progress: about 1,200 square feet. His gross profit was $80,000.

Eight times the profit on a job of nearly identical scope. The difference is not skill, market or luck. It is a formula, and the first contractor was using it backwards.

The short answer

Price from burdened cost, apply a markup that reaches your target margin, and check your win rate to see whether the market agrees. Almost every underpricing problem in the trades traces to one of three things: confusing markup with margin, using unburdened labour, or treating overhead as something you add rather than something you pay out of what you keep.

The error that costs the most

Markup and margin sound interchangeable. They are not, and the gap between them widens as the numbers rise.

Markup is what you add to cost. Margin is what you keep out of the price.

Take $100 of cost and add 30% markup. Your price is $130. Your profit is $30. But $30 out of $130 is 23%, not 30%.

You intended a 30% margin. You got 23. And your overhead still has to come out of that.

Here is the conversion, and it is worth committing to memory or taping inside a van door:

Markup on costGross margin
20%16.7%
25%20%
30%23%
35%26%
43%30%
50%33%
67%40%
82%45%
100%50%

The three bolded rows are the ones that matter. A contractor who wants a 30% margin and applies a 30% markup is short by roughly a third of the profit they thought they had priced in, on every single job, forever.

Watch out

This is not a rounding error. On a $50,000 job, the difference between a 30% markup and a 43% markup is about $4,500 of gross profit. Across thirty jobs a year that is $135,000 of margin that was never in the price, and no amount of working harder recovers it.

The formula

Stated plainly, because most pricing advice never gets this specific.

Price = Cost of Goods Sold × (1 + markup)

Where markup is chosen to hit your target margin from the table above, and where cost of goods sold means everything that disappears if the job disappears.

That last clause is the test. Ask of every expense: if this job vanished tomorrow, would this cost vanish with it? If yes, it is job cost. If no, it is overhead.

Job cost includes:

  • Materials, including waste and delivery
  • Subcontractors
  • Permits and inspections
  • Disposal and dumpster fees
  • Equipment rental
  • Burdened labour, covered next

Overhead includes:

  • Your truck, insurance, phone, software
  • Office or yard costs
  • Administrative time, including estimating
  • Marketing
  • Your own salary as an owner, if you are not on the tools

Overhead is paid out of gross margin. So a 43% markup producing a 30% margin does not mean 30% profit. It means 30% to cover overhead first, and whatever survives is net.

If your overhead runs 20% of revenue, a 30% gross margin leaves you 10% net. That is thin, and it is why the trades commonly treat 30% as a floor rather than a target.

Burdened labour, which almost nobody calculates

The second largest source of underpricing, and it is invisible because the number you use feels correct.

If you pay a technician $30 an hour, your labour cost is not $30 an hour.

Add to it: payroll taxes, workers compensation, general liability attributable to that person, health contributions if you make them, paid time off amortised across worked hours, uniforms, training, and phone. Depending on jurisdiction and trade, the burden commonly adds 25% to 45% on top of the wage.

So $30 an hour becomes $38 to $44 an hour of actual cost, and if you priced at $30 you have been donating the difference on every hour billed.

Then there is unbillable time. Drive time between jobs, warehouse and supply-house runs, loading, cleanup, and the hours nobody assigns to a job. A technician on the clock forty hours a week may only produce thirty billable hours. If your rate is built on forty, you are short by a quarter before anything else goes wrong.

Both of these compound with the markup error. A contractor using an unburdened $30 rate and a 30% markup believes they are earning a 30% margin on $30 labour. They are earning roughly 23% on a number that is 30% too low, which is how a business ends up busy, exhausted and unable to explain where the money went.

The two basements, costed

Return to the opening comparison, because the arithmetic makes the abstract concrete.

Contractor A: ~1,100 sq ft basement with bathroom, laundry and kitchenette. Sold for roughly $50,000. Gross profit just over $10,000, before paying a helper at $20 an hour, which was not deducted. He also drew the plans himself for free, did not mark up subcontractors, took no upcharge on materials because the helper collected them, and charged nothing for bid preparation or administrative time.

That is roughly a 20% gross margin on paper and materially less once the helper and the free plan drafting are counted honestly. After overhead, plausibly nothing.

Contractor B: ~1,200 sq ft basement finish. Gross profit $80,000.

Contractor B is not charging eight times as much for the same work. He is charging a price that includes his plan drafting, his subcontractor coordination, his material handling, his estimating time, and a markup that reaches a real margin. Contractor A gave all of that away, item by item, each concession feeling small and reasonable at the time.

The pattern is worth naming because it is how underpricing actually happens. Nobody decides to work for nothing. They decide, eleven separate times, not to charge for one small thing.

The things contractors give away without noticing

Each of these is a real cost and each is routinely omitted:

Estimating and bid preparation. One contractor described spending 10 to 20 hours a week driving to jobs, walking through with homeowners, and building detailed scopes at night, unpaid. That is a part-time job funded by nobody.

Drawing plans. Hours of skilled work, given free to win a bid.

Material runs. Gas, vehicle wear and hours. This is what a material markup is for, and the newly licensed contractor who felt his 30% material markup might be "unfair" was covering costs, not profiteering. Note that lumber yards commonly charge a 25% restocking fee on returns without having to drive anywhere.

Subcontractor coordination. Scheduling, chasing, checking and being responsible for their work. Not marking up subs means managing them for free.

Change orders agreed verbally. The classic while-you-are-here request. One contractor described being burned repeatedly by "yeah, I'll add it to the invoice" and moving to a rule of zero extra work without a signature, capturing a signed change order on a phone in about thirty seconds before picking up a tool.

Warranty callbacks and punch-list returns. Real hours, rarely priced.

Add these to a job that was already priced at a 23% margin and the reason for the missing money stops being mysterious.

Pricing correctly only matters if enough of the right enquiries reach you. Our free check looks at whether your site actually lets someone request a quote, what it tells them before they do, and where that request lands. Twenty checks, about fifteen seconds, no account.

Run the free website check

Pricing methods, and when each fits

Four approaches, each right in different situations.

Time and materials. You bill hours plus materials plus markup. Suits work with genuinely unknown scope: diagnostics, repairs in old buildings, insurance work. The customer carries the risk, which means you must be transparent about rates upfront or you will fight about the invoice.

Fixed price. One number for a defined scope. Suits well-defined work and it is what most homeowners want. You carry the risk, which is precisely why the margin must be real: a fixed-price job at a 23% margin has almost no room to absorb a surprise.

Cost plus. Documented cost plus an agreed percentage. Common on larger residential projects. The trap is that your margin is a percentage of cost, so efficiency reduces your own pay. Fee-plus arrangements, with a fixed fee rather than a percentage, avoid that perverse incentive.

Unit pricing. A rate per square foot, per fixture, per opening. Fast, consistent and it only works once you have measured enough real jobs to know your true unit cost. Building unit prices from guesses simply industrialises your estimating errors.

Most established contractors use fixed price for defined scopes and time and materials for diagnosis, and the transition point between them is worth stating in writing to customers before work begins.

Whether the market agrees with your price

Pricing is not only arithmetic. There is a feedback signal and it is unusually clear.

If you are winning nearly every job you bid, your prices are too low. That is a widely repeated view in the trades and it is straightforwardly true: a price that everyone accepts has not been tested against anyone's alternative.

The commonly cited healthy figure is an estimate-to-booking ratio around 50%. Above that, raise prices. Well below it, and if you know your prices are competitive, the problem is more likely to be your sales process than your number.

That distinction matters because the two have opposite fixes. A pricing problem is solved by charging more. A sales problem is solved by responding faster, explaining better and following up, and cutting prices to fix it makes the business worse while appearing to work.

There is a useful corroborating story. One contractor lost a basement and remodel bid by close to $15,000 and could not understand how he could be that far above a competitor. He posted asking whether to warn the client. The outcome, added as an edit: the client came back and chose him at his original price after discovering the other company lacked transparency and proper insurance.

Losing a bid on price is not evidence that your price is wrong. Sometimes it is evidence that the other quote was not for the same job.

Charging more for difficult clients

Uncomfortable and correct.

A client who requires everything covered in tarps, objects to a coffee cup on a vanity, and generates repeat visits for an uncaulked seam eight feet up genuinely costs more to serve. Slower work, more visits, more communication, more risk of a dispute at the end.

Pricing that is not a penalty. It is an accurate estimate of the actual scope, which includes the client.

Contractors commonly add 10% to 20% to bids they expect to be high-maintenance. A twenty-year general contractor described exactly this: tacking 10 to 20% onto the entire bid when the people seemed like they would be a hassle, on top of an already high estimate.

The alternative to pricing difficulty in is either absorbing it or declining the work, and pricing it is the only one of the three that leaves the decision with the customer.

The one that is genuinely dangerous

Worth flagging separately, because it appeared in the thread that opened this article and it is the kind of shortcut that ends a business rather than merely limiting it.

The newly licensed contractor mentioned paying his helper under the table while saving up to afford workers compensation. Another contractor responded directly: if that person is injured or damages a client's property, you are exposed to legal trouble that dwarfs the premium you were avoiding.

The connection to pricing is direct. Under-pricing creates the cash pressure that makes cutting corners on insurance feel necessary. Correct pricing funds the things that keep the business legitimate, and a price that cannot cover workers compensation is not a low price, it is an incomplete one.

Allowances, and why you lose bids you did not lose

A specific pricing problem worth its own section, because it causes contractors to lose work while being correctly priced.

A remodelling contractor described bidding turnkey bathrooms and kitchens where homeowners want one all-inclusive number before choosing any finishes. On a recent bathroom he carried over $18,000 in finish allowances for tile, quartz, vanity, fixtures, lighting and accessories, based on solid mid-grade products. He lost to a cheaper contractor and had no way to know whether that contractor was actually cheaper or had simply carried lower allowances.

His summary of the problem is exact: a vanity could be $800 or $6,000. Tile could be $2 a square foot or $25. The homeowner compares two bottom-line numbers and assumes both include equivalent products.

This is not a pricing failure. It is a presentation failure, and there are three workable responses.

Show the allowances line by line, with what they buy. Not "tile allowance $2,400" but "tile allowance $2,400, which covers approximately $6 per square foot at this area, roughly equivalent to [named product tier]." Now a homeowner comparing quotes can see what is different.

Offer good, better and best. Three tiers with the same labour and different finish allowances. This converts an unwinnable price comparison into a scope conversation and, usefully, tells you what the customer's real budget is.

Separate labour from finishes entirely. Quote your labour firm and let finishes be an open budget the homeowner controls. You stop competing on materials you make little on, and you stop being blamed for a total driven by choices they have not made yet.

The underlying principle applies well beyond allowances: when two quotes cannot be compared, the lower number wins by default. Making yours comparable is worth more than shaving it.

Pricing when you have no history

A genuine problem for anyone newly out on their own, and the honest answer is not a formula.

One contractor with years of residential experience in Ontario put it plainly: he had done kitchens, bathrooms, nearly anything interior, and had never learned to price a job. He had a rough sense of how long some work took and no method, because the work was different often enough that instinct never accumulated.

What works:

Break the job into tasks you have personally done. Not "bathroom remodel" but demolition, rough plumbing, rough electrical, board, tile, fixtures, finishing. You have times for most of these even if you have never assembled them.

Estimate hours per task, then add them. Write the number down before the job. This is the step that makes you better; a guess you never recorded teaches nothing.

Price contingency explicitly rather than hoping. For unfamiliar work, an honest line for the unknown is more defensible than a padded task estimate, and it is easier to remove if the scope firms up.

Track actual hours against estimated hours. Per task, on every job, for a year. This is tedious and it is the single thing that separates contractors who price confidently from those who guess forever.

Expect to be wrong early, and price for that. A wider margin on unfamiliar work is not opportunism; it is the correct price for carrying more risk.

After roughly a year of tracked jobs you will have unit costs that are yours rather than borrowed, and unit pricing becomes available to you. Until then, task-based estimating with recorded actuals is the fastest route to getting there, and it is considerably better than the alternative most people use, which is pricing from what they think the market will accept and discovering the shortfall at year end.

What to do this week

  1. Write down your true burdened labour rate. Wage plus taxes, workers comp, insurance and per-employee costs, divided across genuinely billable hours rather than clocked hours.
  2. Calculate your overhead as a percentage of revenue. Last twelve months of non-job costs divided by revenue.
  3. Set a target gross margin that covers overhead plus a real net. If overhead is 20%, a 30% gross margin leaves 10% net.
  4. Convert that margin to a markup using the table above. This is the step nearly everyone skips.
  5. Re-price your next three quotes with the correct markup and burdened labour, and quote them without apologising.
  6. Record your win rate on those three and the next dozen.
  7. Cost one completed job properly, afterwards, including every hour of estimating, drawing, material running and coordination. Compare it against what you thought the margin was.

Step seven is the one that changes behaviour. Most contractors have never costed a finished job honestly, which means the gap between believed margin and real margin has never been visible, and you cannot fix a number you have never seen.

None of this requires charging unfair prices. It requires charging complete ones. The contractor clearing $80,000 on a basement is not exploiting anyone; he is including work the other contractor performed and did not bill for.

If your quotes are correct and still going quiet, that is a different problem with a different fix, and it is covered in why customers ghost after a quote and how to follow up on a quote without being pushy.

Frequently asked questions

What is the difference between markup and margin?
Markup is what you add to cost. Margin is what you keep from the sale price. A 30% markup on $100 of cost gives a $130 price, of which $30 is profit, which is a 23% margin. They are different numbers and confusing them is the most common reason contractors underprice.
What markup should a contractor charge?
Enough to reach your target margin, which means between roughly 43% and 100% depending on that target. 43% markup produces a 30% gross margin, 67% produces 40%, and 100% produces 50%. Contractors quoting 20% to 30% markup are typically running margins in the teens before overhead.
What is a good gross margin for a contractor?
Thirty percent is widely treated as a floor for residential work rather than a goal, because overhead comes out of it before you see any net profit. Established remodelling businesses commonly target 40% to 50% gross. Below 25% there is rarely enough left to cover overhead, absorb a bad job and pay the owner properly.
Should overhead be added on top of my markup?
No, and this is a second common error. Overhead is paid out of gross margin, so a 43% markup that yields 30% margin has to cover your overhead percentage before any of it becomes profit. Adding overhead on top of an already-correct markup double-counts it; adding it on top of a too-low markup masks the underlying problem.
What should be included in job cost?
Everything that disappears when the job disappears: materials, subcontractors, permits, disposal, equipment rental, and burdened labour. Burdened means the wage plus payroll taxes, workers compensation, insurance, and any per-employee costs. Using a bare hourly wage understates labour cost by a large margin.
How do I know if my prices are too low?
Win rate is the quickest signal. If you are winning nearly everything you bid, you are almost certainly leaving money on the table. Contractors commonly cite a 50% estimate-to-booking ratio as healthy; consistently above that suggests raising prices, and well below it suggests a sales process problem rather than a pricing one.
Should I charge more for a difficult client?
Yes, and it is not a penalty, it is an accurate estimate. A client who requires slow careful work, repeat visits and extensive communication genuinely costs more to serve. Contractors commonly add 10% to 20% for jobs they expect to be high-maintenance, which is simply pricing the real scope.
How do I price a job when I have never done that type of work?
Break it into tasks you have done, estimate hours for each, add a contingency for the unknowns, and price the contingency honestly rather than hoping. Then track actual hours against your estimate afterwards, because that comparison is the only thing that makes your next estimate better.
Done-for-you lead generation: a dedicated conversion page, a qualifying form that arrives with the answers attached, and lead-to-sale tracking, fed by targeted outreach and Meta ad campaigns we build and run.
Get a lead plan

Free tools

Find out what your site is costing you.

Enter your address and we check the real page. Scores are free and the itemised report lands in your inbox. No account, and we change nothing on your site.