Contractor Profit Tools
Home › Markup vs margin

Markup vs Margin for Roofers: The Math Behind Your Real Profit

Why “adding 20%” to your costs does not give you a 20% profit, and the one formula that fixes it.

Ask ten roofers how they price a job and most will say some version of “I add up my costs and put X% on top.” That X% is a markup. The number that decides whether your business grows is your margin. They are not the same number, and the gap between them gets bigger the higher you go.

The two definitions

Markup = profit ÷ cost
Margin = profit ÷ sale price

Same dollars of profit, divided by a different number. Because the sale price is always bigger than the cost, your margin is always smaller than your markup.

If you mark up cost byYour gross margin is
15%13.0%
20%16.7%
25%20.0%
33%24.8%
50%33.3%
100%50.0%

Then overhead takes its cut

Those margins are before overhead: insurance, truck payments, fuel, phones, the office, marketing, your own time on estimates you do not win. If overhead runs 15% of job cost and you only mark up 20%, most of that 20% is already spoken for.

Example: direct cost $8,468. Overhead at 15% is $1,270, so break-even is $9,738. A 20% markup gives a price of $10,162 and leaves $424, a 4.2% net margin. Pricing for a 20% net margin gives $12,180 and leaves $2,442.

The formula that fixes it

Price = (direct cost + overhead) ÷ (1 − target margin)

Divide, do not multiply. To keep 20% of the sale price, divide your break-even by 0.80. To keep 25%, divide by 0.75. Run the numbers on your own job with the free roofing calculator.

Picking a target margin

There is no single right number. It depends on your overhead, how busy you are, your market and how much risk the job carries (steep, multi-layer, unknown decking). What matters is that you choose it on purpose and price every job to it, then check afterward whether you actually hit it.

Roofing Estimate & Job Cost Pack — $29

The pack prices every estimate from break-even using margin math. Excel + Google Sheets, instant download.

Get the pack

Last updated 2026-11-08. Numbers on this page are examples for illustration, not market prices.