Markup vs margin: the difference that quietly costs contractors money
Markup is what you add on top of your cost. Margin is what you keep out of the price. They are different numbers, and on the same job they are never equal.
A 20% markup produces a 16.7% margin. If you have been quoting 20% markup because you wanted to keep 20%, you have been giving away about a sixth of the profit you planned on, on every job, for as long as you have been pricing that way.
Below: both definitions with the arithmetic shown, a conversion table you can keep in the truck, and how to work backwards from the margin you actually need.
- The two definitions, plainly
- Why a 20% markup is not a 20% margin
- Converting one to the other
- Markup to margin: the conversion table
- Working backwards from the margin you need
- What counts as cost before you mark anything up
- A worked example on a real-feeling job
- The overhead most contractors leave out
- Check the margin after the job, not only before it
The two definitions, plainly
Both numbers start from the same two figures: what the job cost you, and what you charged for it. The only difference is what sits on the bottom of the fraction.
- Markup = (price - cost) / cost. It answers: how much did I add on top of what I spent?
- Margin = (price - cost) / price. It answers: how much of the money the customer handed me did I keep?
Take a job that cost you $10,000 and that you sold for $12,500. You added $2,500. As markup, that is 2,500 / 10,000 = 25%. As margin, it is 2,500 / 12,500 = 20%. Same job, same dollars, two different percentages. Markup is always the bigger of the two.
Why a 20% markup is not a 20% margin
Take $10,000 of cost. Mark it up 20% and you charge $12,000. Your gross profit is $2,000. But $2,000 out of $12,000 is 16.7%, not 20%. The profit you added is included in the denominator when you calculate margin, and it is not when you calculate markup. That single difference is the whole problem.
To actually keep 20% of that job you would have to charge $12,500, which is a 25% markup. On a job with $10,000 of cost, the gap is $500. On a job with $150,000 of cost, the same mistake is $7,500: a 20% markup prices it at $180,000, and a true 20% margin needs $187,500.
Markup and margin only agree at zero. Above zero, markup is always the larger number, and the gap between them widens as the percentages grow. A 10% markup is a 9.1% margin, a gap of under a point. A 100% markup is a 50% margin, a gap of fifty.
Converting one to the other
Markup to margin: margin = markup / (1 + markup). A 30% markup is 0.30 / 1.30 = 0.2308, or 23.1%.
Margin to markup: markup = margin / (1 - margin). A 30% margin needs 0.30 / 0.70 = 0.4286, or a 42.9% markup.
If decimals are not how your head works, do it with dollars on a cost of $100. Mark it up 30% and the price is $130. The profit is $30. Thirty dollars out of $130 is 23.1%. You get the same answer and you can do it standing at a counter.
Markup to margin: the conversion table
Every row below uses $10,000 of cost so you can see the dollars as well as the percentages. The last column is the number that matters, because it is the share of the customer cheque you keep.
| Markup you add | Price on $10,000 of cost | Gross profit | Margin you actually keep |
|---|---|---|---|
| 10% | $11,000 | $1,000 | 9.1% |
| 15% | $11,500 | $1,500 | 13.0% |
| 20% | $12,000 | $2,000 | 16.7% |
| 25% | $12,500 | $2,500 | 20.0% |
| 30% | $13,000 | $3,000 | 23.1% |
| 35% | $13,500 | $3,500 | 25.9% |
| 40% | $14,000 | $4,000 | 28.6% |
| 50% | $15,000 | $5,000 | 33.3% |
| 60% | $16,000 | $6,000 | 37.5% |
| 75% | $17,500 | $7,500 | 42.9% |
| 100% | $20,000 | $10,000 | 50.0% |
Working backwards from the margin you need
Margin is the number to start from, because margin is what pays your overhead and your own wage. Pick it first, then solve for the price.
- Decide the margin the job has to earn. Say 30%.
- Subtract it from 100% to get the share of the price that your cost is allowed to be: 100% - 30% = 70%.
- Divide your total cost by 0.70. On $20,000 of cost that is $28,571.
- Check it. $28,571 - $20,000 = $8,571 of gross profit, and $8,571 / $28,571 = 30%.
If you would rather keep working in markup, here is the same relationship the other way round. These are the markups that produce the common margin targets:
- A 20% margin needs a 25% markup
- A 25% margin needs a 33.3% markup
- A 30% margin needs a 42.9% markup
- A 35% margin needs a 53.8% markup
- A 40% margin needs a 66.7% markup
- A 50% margin needs a 100% markup
What counts as cost before you mark anything up
The percentage is only as good as the number you apply it to. A perfect 42.9% markup on an incomplete cost still loses money. Everything that only exists because you took this job belongs in the cost:
- Materials, including delivery, and including the sales tax you paid on them
- Burdened labor, not the hourly wage
- Subcontractors and equipment rental
- Permits, inspections, dump fees, and disposal
- Job-specific insurance, bonds, temporary power, fencing, and portable toilets
- Fuel and vehicle time for trips that only happen because of this job
- Punch list and rework you already know from experience is coming
Burdened labor is where most estimates leak. A worker on $28 an hour does not cost you $28 an hour. Add employer payroll taxes, workers comp, general liability, paid time off and a phone allowance and $28 lands somewhere near $38. A 96-hour scope costed at $28 shows $2,688 of labor. The same scope costed at $38 shows $3,648. That $960 difference is not profit you get to keep; it left your account either way.
A worked example on a real-feeling job
A bathroom remodel. Here is what it actually cost you:
| Cost line | Amount |
|---|---|
| Materials: tile, fixtures, board, paint | $6,400 |
| Plumbing sub | $2,800 |
| Electrical sub | $1,500 |
| Own labor, 96 hrs at $38 burdened | $3,648 |
| Dumpster, permit, fuel | $652 |
| Total direct cost | $15,000 |
You want to keep 30%, so you mark the job up 30% and quote $19,500. The job runs clean, the customer pays, and your gross profit is $4,500. Then you check the margin: $4,500 out of $19,500 is 23.1%.
The 30% price was $15,000 / 0.70 = $21,429, which is a 42.9% markup. You quoted $1,929 under it. Nothing about the job would have changed at the higher number: same scope, same crew, same three weeks. You used the wrong denominator, and it cost you $1,929.
Run twenty jobs like that in a year and the arithmetic error alone is about $38,600. That figure is an illustration, not a survey. But the shape of it is the point: the mistake is nearly invisible on any single job and large across a year, which is exactly why it survives so long.
The overhead most contractors leave out
Marking up direct cost gives you gross profit. Gross profit is not what you take home. The truck payments, the office, the general liability policy, the phone plan, the bookkeeper, and the Sunday evenings you spend writing estimates all get paid out of gross profit, and none of them sit on a job.
Work out your overhead rate once a year. Add up everything you spend that is not tied to a specific job, then divide it by your total direct job cost for the year. If overhead is $180,000 and direct job cost is $900,000, your overhead rate is 20%.
After that, every job carries its share. The bathroom above has $15,000 of direct cost, so it carries $3,000 of overhead and its real cost is $18,000. Price it from $18,000, not from $15,000: a 30% margin is $18,000 / 0.70 = $25,714. That is the number where the job pays for itself, pays its share of keeping the doors open, and still leaves 30% that is genuinely yours.
You can either load overhead into cost and mark up from there, or leave it out and set a markup high enough to cover overhead and profit together. Both work. What does not work is leaving overhead out and then choosing a markup as if it only had to cover profit, which is the common version.
Check the margin after the job, not only before it
The margin in your estimate is a plan. The margin on the finished job is a fact, and they are different on almost every job. The only way to know the gap is to have every hour and every receipt land against the right job while the work is happening, so that when you close it out the actual cost is already there.
SiteLedger is one way to do that: approved hours post as labor cost at each worker rate, scanned receipts post as materials, and the margin on each job updates as those costs land. A spreadsheet does the same job if somebody genuinely updates it every Friday. The tool matters less than the habit of comparing what you planned to keep against what you kept, job after job, until your estimates stop being optimistic.
Common questions
- Is a 20% markup the same as a 20% margin?
- No. A 20% markup on $10,000 of cost gives a price of $12,000 and $2,000 of gross profit, which is a 16.7% margin. To keep a true 20% margin on that job you need to charge $12,500, which is a 25% markup. Markup is always the larger of the two numbers.
- What markup do I need to hit a 30% margin?
- 42.9%. Divide the margin by one minus the margin: 0.30 / 0.70 = 0.4286. The faster version is to skip markup entirely and divide your cost by 0.70, so $15,000 of cost becomes a price of $21,429.
- Should overhead go into cost before I mark up, or come out of the markup?
- Either can work as long as you are consistent, but loading it into cost is harder to get wrong. Work out your overhead as a percentage of your annual direct job cost, add that percentage to each job cost, then apply your markup. If you leave overhead out instead, your markup has to cover overhead and profit together, and most contractors set it as though it only had to cover profit.
- What is a normal margin for a contractor?
- It varies by trade, region, job type, and how much risk you are carrying, so a single number for all of construction is not worth much. The useful approach is to calculate your own overhead rate, decide the profit you need on top of it, and price to that. Compare it against your own completed jobs rather than a figure you read somewhere.
- Does the same arithmetic apply to change orders?
- Yes, and change orders are where margin leaks fastest, because they get priced in a hurry and often at a lower markup than the base contract. Run every change order through the same calculation: cost divided by one minus the margin you need. A change order priced at cost plus 20% is earning you 16.7%, exactly like everything else.
Keep reading
Job costing for contractors: how to know your margin before the job closes
How to tie labor, materials, subs and overhead to a job while it is still open, budget each bucket, and spot a job going bad early enough to fix it.
Construction receipt tracking: getting every material cost onto the right job
Why receipts vanish on a job site, what each lost one costs you twice, what a receipt has to capture, and how to handle crew buying on their own cards.
Getting payroll ready without chasing timesheets all weekend
What to check before you run payroll, how to handle a disputed entry fairly, and the weekly approval habit that ends the Sunday scramble.