Skip to content

Markup vs Margin: The Mistake That Kills Contractor Profits

Last updated: August 2026

11 min read

EstimatorSuite is reader-supported. When you sign up through links on this page, we may earn an affiliate commission — at no extra cost to you. This doesn't affect our rankings or editorial independence.

You priced a $10,000 job at $13,000. Thirty percent markup - nice margin, right?

Your accountant disagrees. Profit of $3,000 on $13,000 of revenue is a 23% margin. Seven points just vanished - not off the job, but off what you thought the job earned.

Scale that mistake across every bid you send this year and you're not rounding error off your target. You're pricing an entire month of jobs wrong. And the worst part: your estimates and your income statement will never agree, so the leak stays invisible.

Here's the deal: this guide shows the exact math, the full markup-to-margin conversion table, and what mixing them up actually costs a working contractor per year. Real numbers start to finish.

Let's break this down.

Why 30% Markup Only Earns You 23% Margin

The two words look interchangeable. The math says otherwise.

Markup is a percentage of cost. Cost of $10,000 plus 30% markup = $13,000.

Margin is a percentage of revenue - the selling price. The profit in that sale is $3,000, and $3,000 divided by $13,000 is 23.1%.

Same job. Same $3,000 profit. Two different percentages because they divide by different numbers. Markup divides by cost, margin divides by price - and since price is always bigger, margin is always smaller.

Here's where it burns you. Say your actual target is a 30% margin. To earn it, you need:

price = cost / (1 - margin) = $10,000 / 0.70 = $14,286

That's a 42.9% markup. Bid $13,000 instead - a perfectly reasonable 30% markup - and you're $1,286 short per job. That's not a rounding difference. On a bathroom remodel it's the difference between a job that funds your winter and one that funds your supplier's winter.

Now multiply the miss across a year.

The Conversion Table (And What the Mix-Up Costs Per Year)

Print this table. Tape it next to your monitor. Every estimating conversation you'll ever have is in it:

Target marginMarkup you must chargePer-job gap on $10,000 cost
10%11.1%$112
15%17.6%$176
20%25%$250
25%33.3%$333
30%42.9%$429
35%53.8%$538
40%66.7%$667

That gap column is the trap. It looks small on one job. It isn't small on a year.

Run the annual math. A small contractor closing 50 jobs a year, targeting 30% margin but bidding 30% markup:

$1,286 short per job x 50 jobs = $64,300 a year

Sixty-four grand. Not lost to callbacks, not lost to material spikes, not lost to a slow season - lost to one division problem in the wrong place. A busy, booked-out contractor can lose that much and feel like business is fine, because revenue looks healthy the whole way down.

Which means the number on your bid sheet and the number on your income statement come from different planets. Reconciling them is next.

Why Your Estimate and Your QuickBooks Report Never Agree

Here's a frustration every contractor knows. The bid said 30%. The year-end report says 22%. Nobody stole anything - so what happened?

You're reading two documents that speak two languages. Your estimate is built in markup - "cost plus." Your income statement reports margin - profit as a share of revenue. When you look at a margin number on a report and think in markup, every number reads lower than you expected, and the temptation is to "fix" it by adding a bigger number in the wrong direction.

The fix isn't a better memory. It's one line of arithmetic. When your accountant says "we ran a 22% margin last year," convert it before it means anything to your bids:

22% margin = 22 / (100 - 22) = 28.2% markup

That 28.2% is your real cost-plus number from last year's results. Compare it to what you actually charged, and the difference between the two is your pricing leak - jobs won below the rate that kept you whole. One subtraction and a division, and your two worlds finally speak to each other.

Our markup calculator runs this conversion both directions, so you can check a bid or a report in ten seconds instead of doing algebra at your desk at 9pm.

But here's the question the conversion table raises: if 30% margin needs 42.9% markup, why does 42.9% feel like gouging? Because most of that markup isn't profit at all.

Your Markup Isn't All Profit - It's Covering Costs That Rise Every Year

Contractors get uncomfortable writing 50% markup on a bid. Feels like overcharging.

Here's what's actually inside that number. The selling price of a job carries three loads: the direct cost, the overhead, and the profit. Your markup has to carry the last two - and overhead is the silent one, because it never appears on a single bid line.

And overhead isn't standing still. Commercial insurance premiums have risen for 26-plus consecutive quarters (CIAB market surveys) - commercial general liability renewals ran about +4-5% a year, with commercial auto jumping 7.3% in a single quarter (2023 Q4, CIAB). Your workers' comp, your trucks, your liability coverage - all marching upward while your cost-plus habit stays where it was in 2022.

Translation: a markup that comfortably covered your company three years ago is quietly underwater today, on the exact same job. Nothing about the job changed. Everything around it did.

Even published project-cost data carries this load quietly. Remodeling Magazine's Cost vs Value 2025 report bakes roughly 10% on materials and 10% on labor into its project prices - and flags that as a floor, because actual contractor markup typically runs higher to cover benefits, insurance, and vehicles. The national averages you compare your bids against are already carrying an invisible minimum charge.

So the honest question isn't "how much profit am I charging?" It's "what does my markup have to carry before anything reaches profit?" That's a number you build, not one you guess.

How Much Markup Do You Actually Need? The Three-Part Formula

Every markup number covers the same three loads. Build yours the same way:

Load 1 - Your overhead. Office, insurance, software, truck payments, your own salary as owner. Expressed as a percentage of revenue. Most small contractors land well north of the 20% CvV floor once real overhead is counted - and the figure moves with insurance renewals, so revisit it annually.

Load 2 - Your target profit. The money that makes the risk worth taking. Pick it deliberately: 10% is survival money, 15-20% funds growth, and margins below that mean you're buying revenue with your own cash.

Load 3 - The math correction. Convert the sum to markup with the table above - or divide margin by (1 - margin). A 20% overhead plus 15% profit target isn't a 35% markup. It's a 35% margin target, which is 53.8% markup.

Which means the number that felt like gouging two sections ago was just arithmetic doing its job. A 42.9% markup for a 30% margin isn't greed - it's overhead, profit, and the conversion correction stacked in one line.

One more load worth naming: change orders. They carry overhead too - a second site visit, a redrawn estimate, a second round of customer debate - but contractors routinely price them at cost plus a token percentage. Our change order pricing guide covers that math separately, because it's the most common place a "30% markup" job quietly earns 24%.

Now let's turn the formula into your number.

Setting Your Number: The 5-Minute Workflow

Stop borrowing markup percentages from forum posts. Build your own in four steps:

  1. Pull your overhead from last year's books. Total company overhead for the year divided by total revenue. Your accountant has both numbers in one phone call. That's your Load 1.
  2. Pick your profit target on purpose. What you want the company to earn, as a percent of revenue. Write it down. A target you never set is a number you'll never hit.
  3. Add them, then convert. Overhead + profit = target margin. Divide by (1 - margin) for your markup. Check it against the table above - if your 30% margin target says 42.9% and you've been charging 30%, you've found your leak.
  4. Test it against jobs you already finished. Take three completed jobs and reprice them with the new markup. If your winners stay winnable and your losers were losers anyway, the number is real. If every bid suddenly loses, your overhead needs trimming before your markup needs raising - different problem, different fix.

Then run the same math on your labor costs. Your burdened labor rate - the real cost of a tech-hour - is the cost side of every one of these markup decisions. We walk that calculation in how to calculate construction labor cost: base wage, burden, billable hours, and the $52.70 it takes to break even on a $29.59 tech.

Bottom line: markup is a cost-side habit, margin is a books-side reality, and the gap between them is where contracting companies quietly bleed. Learn one conversion, tape one table, and check one finished job against it - that's the whole discipline. The 7 points you've been leaving on every job belonged to you.

Frequently Asked Questions

What's the difference between markup and margin?

Markup is a percentage added to cost; margin is profit as a percentage of the selling price. A 30% markup on a $10,000 cost produces a $13,000 bid with a 23.1% margin. Margin is always smaller than markup for the same job, because the price you divide by is always bigger than the cost.

What markup equals a 30% margin?

42.9%. Divide cost by (1 - 0.30): $10,000 of cost needs a $14,286 price to earn 30% margin. The full conversion - 11.1% markup for 10% margin up through 66.7% for 40% - is in the table above.

How much do contractors typically mark up jobs?

Remodeling Magazine's Cost vs Value 2025 data bakes in roughly 10% on materials and 10% on labor - and flags that as a floor, since actual contractor markup typically runs higher to cover benefits, insurance, and vehicles. Real numbers vary by overhead structure: two contractors can both charge 40% markup and earn wildly different margins, because their overhead loads differ.

Why does my income statement show lower percentages than my estimates?

Your estimates speak markup - cost plus a percentage. Your income statement speaks margin - profit over revenue. A 28.2% markup from your books reads as a 22% margin on the report. Convert report numbers with margin / (1 - margin) before comparing them to your bid sheet, and the two documents reconcile.

How do I calculate margin from markup?

Divide markup by (1 + markup). A 30% markup: 0.30 / 1.30 = 23.1% margin. A 50% markup: 0.50 / 1.50 = 33.3% margin. The markup calculator does this instantly in both directions.

Should I mark up labor and materials the same?

Many contractors mark up materials at a higher percentage and labor at a lower one - but labor is usually the bigger number on residential jobs, so under-marking it drags the whole job's margin down. Run both scenarios side by side before settling on split rates; the wrong split can cost more than the wrong rate. Our labor cost guide shows what's actually inside a labor hour before you mark it up.

Is a 50% markup overcharging?

Depends what it has to carry. A 50% markup equals a 33.3% margin - and with overhead commonly consuming 20% or more of revenue and commercial insurance rising for 26-plus consecutive quarters (CIAB), a 50% markup on a heavy-overhead company can still be thin. The test isn't the markup number; it's whether the finished jobs earn the margin you targeted. The four-step workflow above shows how to verify.


Disclaimer: Markup and margin figures are illustrative of the math, not quotes for your business. Insurance trend data from CIAB market surveys (commercial general liability +4-5% annual renewals, commercial auto +7.3% Q4 2023) and Cost vs Value 2025 markup methodology from Remodeling Magazine. This article is for educational purposes and is not financial, legal, or tax advice - confirm your rates with your accountant.

Marcus Webb

Lead Reviewer & Construction Tech Analyst

Marcus spent 8 years working with general contractors and trade businesses before focusing on construction technology. He has personally tested 30+ estimating and project management tools with real project data.

About Marcus →
IndependentHands-On TestingReader-Supported