Two roofers can use the same "50%" and end up with wildly different bank accounts. The reason is that one is talking about markup and the other about margin — and confusing the two is one of the quietest ways a roofing business bleeds profit.
The Difference in Plain Terms
Both start from your cost — everything the job takes to produce: material, labor, and your loaded overhead. The difference is what the percentage is measured against.
- Markup is a percentage of your cost. You take what the job costs and add a percentage on top to get your price.
- Margin is a percentage of your price. It's the share of the final sale price that's left over as gross profit after cost.
Same job, same dollars of profit — but the two percentages are never equal, and markup is always the bigger-looking number.
The Formulas
Keep these two straight and you'll never mix them up again.
- Price from markup: Price = Cost × (1 + Markup%). A job that costs $10,000 with a 50% markup sells for $15,000.
- Margin from a price: Margin% = (Price − Cost) ÷ Price. That same $15,000 sale on a $10,000 cost is a 33% margin — not 50%.
That gap is the whole point. A 50% markup produces a 33% margin. To actually keep 50% of the sale, you'd need a 100% markup. Owners who think "50% markup" means "half the job is profit" are off by a third before the first bundle hits the roof.
Why the Confusion Costs Real Money
Say your true cost is $12,000 and you want to keep 40% of the sale. The right price is $20,000 (a 40% margin). But if you instead apply a 40% markup, you price it at $16,800 — and you only keep about 29%. On a single job you just gave away roughly $3,000 you meant to earn.
Do that across a season of jobs and it's not a rounding error — it's the difference between a healthy year and a scary one. The math feels close; the money isn't.
Markup is how you get to a price. Margin is what you actually keep. Decide your business by margin, then work backward to the markup that produces it.
Load Your Overhead Before You Mark Up
Gross margin only protects you if cost includes everything. Material and crew labor are obvious. The one that gets skipped is overhead — the trucks, insurance, office, software, fuel, and your own time running the business.
Figure your overhead as a percentage of revenue over a normal month, and build it into the cost you mark up from. A margin that looks healthy on materials-plus-labor alone can be underwater once the real overhead lands. Price off the loaded number, not the bare one.
Target Margins and a Quick Sanity Check
There's no single right number — it depends on your market, your overhead, and the type of work. But some practical guardrails:
- Many established residential roofers target gross margins in the 35% to 50% range on standard work.
- Thinner than the low end and there's no cushion for a bad job, a warranty callback, or a slow month.
- Storm, commercial, and specialty metal work often carry their own margin targets — set them deliberately, not by habit.
Then run this sanity check on any quote before it goes out:
- Add up true cost — material, labor, and loaded overhead.
- Compute margin: (Price − Cost) ÷ Price.
- Ask if that percentage survives one bad surprise on this job. If it doesn't, the price is too low.
The Number That Actually Keeps You in Business
Roofing is a margin business wearing a markup costume. Set your target as a percentage of the sale, load your overhead into cost, and use markup only as the tool that gets you to that price. Do it consistently and every job carries its fair share — no quiet leaks.
This is exactly the math RidgeSync runs in the background: estimates are built from your own material and labor costs, overhead loads into the number, and the live dashboard tracks job costing and P&L so you can see real margin per job — not a hopeful guess. It's part of one flat $149/mo all-in-one platform with a 30-day free trial, so you can check the math on your own jobs before you commit.
Put it into practice with RidgeSync
Website, CRM, measurements, quoting, invoicing, and AI — one flat price, no per-report fees. 30-day free trial.
Start free