Pricing
Markup vs margin: why a 20 percent markup is not a 20 percent profit
By Holden Marsh, Editorial Director6 min read

TL;DR: A 20% markup produces a 16.7% margin. To earn a 20% margin, you need a 25% markup. A 10% discount on a job with a 20% margin cuts the gross profit in half.
A pattern comes up again and again when shop owners talk about pricing. The owner says, “I put 20 percent on everything,” and in the same breath says the year was the busiest they have had but there is nothing left in the account.
When you walk through one real job with them, the 20 percent was markup, not margin. It was taken off cost that left out the truck, the insurance, and the hours spent on estimates. Then a “10 percent off if you sign this week” took half of what was left.
Nobody did anything wrong on the job site. The math was wrong at the kitchen table.
Markup and margin use the same dollars on different bases
Markup is the amount you add on top of job cost, shown as a percent of cost.
Margin is the amount left after job cost, shown as a percent of the selling price.
The dollars can be the same. The percentages cannot.
Take a job with $10,000 in cost. That includes labor, materials, subs, dump fees, and permits for that job. Add a 20% markup:
- Job cost: $10,000
- Markup: $2,000
- Selling price: $12,000
- Margin: $2,000 divided by $12,000, or about 16.7%
The markup is 20%. The margin is about 16.7%.
Price is bigger than cost. That is why margin is always the smaller percentage.
These are simple illustrative examples. They are not industry averages.
The margin you want tells you the markup to charge
If you know the margin you need, the math gives you the markup.
Markup = margin divided by (1 minus margin)
The simple pricing version is:
Price = cost divided by (1 minus margin)
For a 20% margin:
- $10,000 divided by 0.80 equals $12,500
- Gross profit is $2,500
- $2,500 divided by $12,500 equals 20%
Gross profit means the money left after the direct cost of that job, before overhead comes out.
For a 30% margin:
- $10,000 divided by 0.70 equals about $14,286
- The markup is about 42.9%
Here are the same calculations in a short table:
| Margin you want | Markup you need |
|---|---|
| 10% | About 11.1% |
| 20% | 25% |
| 25% | About 33.3% |
| 30% | About 42.9% |
Use the formula when you set prices. Do not add a percentage to cost and call that same percentage your profit.
A 10% discount can remove half the gross profit
Start with the $10,000 job cost and a $12,500 selling price. That price produces a 20% margin and $2,500 in gross profit.
The customer asks for 10% off.
The new price is $11,250. The cost is still $10,000. Gross profit is now $1,250.
The price went down by 10%. Gross profit went down by 50%.
That is why a discount is not a small change when your margin is already built into the price. If you give a discount, take scope out with it, or know exactly what it costs you before you say yes.
Overhead gets paid before the job creates real profit
Job cost does not include every cost of running your shop.
Overhead includes truck payments and fuel between jobs, insurance, licenses, phone, software, office costs, tools that wear out, and the owner’s time spent estimating and on the phone instead of working.
The margin on each job has to pay overhead first. What remains after overhead is the real profit.
That is why a busy year can still leave little money in the account. The jobs may have produced gross profit, but the gross profit may have only covered the shop’s overhead.
Add up last year’s overhead from your books. Compare it to last year’s total gross profit, which is sales minus job costs. If gross profit barely covered overhead, the markup is too low, no matter how busy the year was.
Ask your bookkeeper or accountant to help pull the numbers if the books are messy. This is a pricing check, not a tax decision.
One flat percentage can lose money on small jobs
Small jobs carry the same drive time, estimate visit, and phone calls as big jobs. A flat percentage on a small job often does not cover that job’s share of overhead.
Many shops use a minimum job charge for this reason.
Labor and materials can also be priced differently. Keep them on separate lines in your own estimate so you can see each one.
That separation gives you a clearer record of what changed. If labor ran high, you can see it. If material cost moved, you can see that instead. A single percentage over the whole job hides those differences.
Finished jobs tell you which estimates are wrong
Check every finished job against its estimate.
Do it the week the job closes, while receipts and memory are fresh. Write down:
- Estimated labor hours versus actual labor hours
- Estimated material cost versus actual material cost
- Any change orders
After a handful of jobs, patterns show up. One type of job may always run over on labor. One supplier’s prices may keep rising.
Fix the estimate for that job type, not just the one job.
This also gives you a test for your markup. If the estimate says a job should produce a certain margin but actual labor and material costs erase it, the price was not strong enough for the work being sold.
Bella can repeat the price range you approve
Bella is Nail the Call’s AI receptionist. She answers every call 24/7, works out the job, and books the visit on your real calendar while your hands are full.
On price, Bella can give the range you set. She will never quote a number you did not approve.
Your price ranges are part of her setup, and you can change her answers any time. When you redo your markup math, update the ranges she gives callers the same day. Every caller then hears the new range, instead of an old number living on in your head and in old habits.
After every call, Bella texts you a summary, including the job and the caller’s budget. You know before the visit whether the job fits the price you need.
Bella does not do your estimates, job costing, or bookkeeping. Your books and finished-job checks still belong to you.
Pricing is flat monthly:
- Starter: $95 per month
- Growth: $295 per month
- Pro: $495 per month
There are no per-call limits, no per-minute meter, and no overage fees. Call Nail the Call at (628) 895-9788.
Check these numbers before your next estimate
Write down the direct cost of the job. Decide the margin you need. Use this formula:
Price = cost divided by (1 minus margin)
Keep labor and materials visible on separate lines. Do not treat the markup percentage as the margin. Do not approve a discount until you know what it removes from gross profit.
Then, the week each job closes, compare estimated labor and materials with actual results. Update the estimate for the job type when the pattern appears.
If you change your price range, update Bella’s approved range the same day. Your estimate, your caller’s expectation, and the price you need should all say the same thing.
Keep reading
- Paying subs in 2026: the 1099-NEC line moved from $600 to $2,000The federal 1099-NEC line for paying subs went from $600 to $2,000 for 2026 payments. You will file fewer forms. You still need the W-9 before the first check.
- The after-hours call policy every contracting shop needsDecide which calls are worth answering at night, who they go to, and what happens to the rest.
- Asking for reviews and referrals: when to ask, how to ask, and what not to doThe best time to ask for a review is the final walkthrough, in person, with a link in a text the same day. Here is the full habit, plus the review rules that trip shops up.
- Collecting the final payment: how to get paid in full when the job is doneThe final check rarely stalls because the customer cannot pay. It stalls over one small item nobody wrote down. Here is how to close out a job and leave with the money.
- The unhappy customer call: how to handle a complaint after the job is doneMost complaint calls are about something small. Silence is what makes them expensive. Call back the same day, sort the problem, and book a real return date.
- What your crew needs to know before the first morning: the handoff from the person who sold the jobThe person who sold the job heard the whole story. The crew lead got part of it. A one-page handoff before day one closes that gap.
- The customer wants to buy their own materials: how to say yes without eating the riskCustomer-supplied materials can work, but only with rules set before the job: approve the product, check the boxes before the start day, warrant your labor only, and set a charge for lost days.
- The EPA lead paint rule: what every trade needs to know about pre-1978 homesThe trigger is the age of the house and how much paint you disturb, not your trade. Ask what year it was built before you book.
- Why customers stand you up on estimate visits, and how to stop itMost no-shows are booking problems, not customer problems. Fix the booking call and the days before the visit.
- 'I'm getting three quotes': how to answer the caller who is shopping aroundGetting several quotes is normal homework, not an insult. Ask what was missing from the others, book the visit on the first call, and write a quote that is easy to compare line by line.
- Should you give a price over the phone? How to answer 'what will it cost?'Give a range when a few questions and photos can get you close, book a visit when the price hides behind a wall, and write down every number you say.
- How long should an estimate stay good? Setting an expiration date when material prices moveA quote with no end date promises your price and your calendar forever. One line on the estimate fixes that, and it keeps you from an awkward call weeks later.
- How many times to follow up with a lead before you let it goA follow-up schedule that keeps slow leads alive without turning you into the shop that will not stop calling.
- How to spot a tire kicker on the phone, before you drive outThe signals that separate a serious customer from someone collecting numbers, and how to handle both.
- How to turn down a job without burning the leadHow to say no to the wrong job so the caller still remembers you well when the right job comes along.
- Job photos: what to shoot before, during, and after every jobThe shop with a before photo of that crack can text it back and the call ends calmly. The shop without one argues from memory. Here is the photo habit that settles it.
- The 'my last contractor walked off the job' call: how to take over half-finished workTakeover jobs can be good work. Ask about the old contract, the money, and the permit on the first call, never price them over the phone, and write down what you own.
- 'Are you licensed and insured?': how to answer it on the phoneThe question often comes right before the caller hangs up. Answer it in one specific sentence, name the coverage you carry, and text proof before they put the phone down.
- The nine questions to ask on every remodel callGet budget, scope, and timeline out of a first call without making it feel like an interrogation.
- Should you charge for estimates? A straight answer for contractorsWhen charging wins you better work, when it costs you jobs, and how to introduce a fee properly.
- 3-day right to cancel for contractors: the FTC Cooling-Off RuleThe contractor's 3-day right to cancel: what to hand over at the kitchen table, when you can cash the deposit, and when the rule does not apply.
- Voicemail, answering service, or receptionist: what actually fits a contracting shopAn honest comparison of the three ways to handle calls you cannot take, including where each one fails.
- Rain day: what to tell the customer when weather pushes the job backThe customer is almost never upset that it rained. They are upset that they had to call to find out. Here is how to make the weather call first.
- What a missed call actually costs your contracting businessWork out the real number for your own shop, using jobs you have already booked this year.
- When can you start? How to answer when you're booked weeks outThe hopeful date and the flat 'we're booked out' both lose jobs. Separate the visit date from the start date, tie the range to your real calendar, and tell a wrong-fit caller early.
- While you're here: how to handle extra work requests without eating the costHow to price and write up the small add-ons customers ask for mid-job, so nobody is surprised at the final invoice.
- Order the materials before you promise the start dateThe start date you give a customer is only as good as your slowest material. Here is how to confirm lead times, order early, and catch a wrong delivery before it stops the crew.
- Working in a lived-in home: the house rules and daily cleanup that keep the customer on your sideMost mid-job calls are not about the work. They are about the dog that got out, the truck in front of the neighbor's mailbox, and the dust on the dining table. Here is how to stop those calls before they start.
- Allowances in an estimate: how to write them so they don't turn into a fightThe estimate said "tile allowance" and a number. Then the customer came back from the showroom. How to write allowances so the overage, the labor, and the deadline are settled before anyone signs.
- When your sub doesn't show up: how to protect the schedule and the customer's trustThe customer finds the empty house before you hear about it. How to confirm subs, build slack into the schedule, and tell the customer first when a trade misses a day.
- Your workmanship warranty: what to put in writing before the jobA spoken promise turns into an argument months later. How to write a short workmanship warranty: one length, one start date, a plain not-covered list, and an inspect-first rule.
- Raising your prices: how to tell past customers without losing themThe hard part of a price increase is the repeat customer who calls and says "same as last time." How to pick a start date, send a short heads-up, and hold the new price calmly.
See it in action
Book a short walkthrough and we’ll show you Bella taking a call for a shop like yours.
Book a walkthrough
15 minutes, no pitch deck.
Or just call us
(628) 895-9788