Markup vs margin — the definitions
MARGIN is profit as a percentage of the SELLING PRICE. If a job sells for $10,000 and cost you $8,000, your margin is $2,000 ÷ $10,000 = 20%.
MARKUP is profit as a percentage of the COST. If a job cost you $8,000 and you add 20%, you sell it for $9,600. Your markup is $1,600 ÷ $8,000 = 20%. But your MARGIN is $1,600 ÷ $9,600 = 16.67%.
Same 20% number, two different meanings, $400 difference per job — which over 40 jobs a year is $16,000 you didn't get paid.
The formulas (memorize these)
Going from COST to SELLING PRICE at a target MARGIN: Selling Price = Cost ÷ (1 − Target Margin) Example: $8,000 cost, 20% target margin $8,000 ÷ (1 − 0.20) = $8,000 ÷ 0.80 = $10,000
Going from COST to SELLING PRICE at a target MARKUP: Selling Price = Cost × (1 + Target Markup) Example: $8,000 cost, 20% markup $8,000 × 1.20 = $9,600
Converting between the two: Margin = Markup ÷ (1 + Markup) Markup = Margin ÷ (1 − Margin)
For a 20% MARGIN, you need a 25% MARKUP. For a 25% MARGIN, you need a 33.3% MARKUP. For a 30% MARGIN, you need a 42.9% MARKUP. This is why the 'add 20%' habit is so expensive.
What profit margin should a roofing contractor target?
Target net margin for a healthy residential roofing company is **15–25% NET** after all overhead and direct costs. For context, that's the bottom-line profit number, not gross margin (which is revenue minus just materials and labor, and typically runs 30–40% on roofing).
Net margins below 10% are dangerous — a single bad job, a deck-rot surprise, a delayed payment, or a warranty callback can wipe out a year of profit. Net margins above 30% are achievable but typically require strong brand, premium positioning, and tight job costing discipline.
Commercial roofing tends to run lower net margins (8–15%) because the jobs are bigger, more competitive, and have longer payment cycles. Insurance-paid residential replacements can run higher margins (20–30%+) if supplements are handled well.
A worked example — a 30-square reroof
30-square asphalt shingle reroof, residential: • Materials: $3,850 • Labor (subbed): $3,900 • Dump fee: $300 • Permit: $150 • Direct cost subtotal: $8,200
At 20% overhead: $8,200 ÷ (1 − 0.20) = $10,250
At 20% net margin on top of overhead: $10,250 ÷ (1 − 0.20) = $12,813 (Round to $12,800 or $12,995 retail)
At 25% net margin on top of overhead: $10,250 ÷ (1 − 0.25) = $13,667 (Round to $13,695)
At 30% net margin on top of overhead: $10,250 ÷ (1 − 0.30) = $14,643 (Round to $14,695)
Notice how every 5% margin bump adds $800–$900 to the final price. On 40 jobs a year, that's $32,000–$36,000 of annual net profit from one pricing decision.
Where roofing contractors leak money on pricing
Five classic leakage patterns:
**1. Confusing markup and margin.** Already covered — the biggest and most common.
**2. Not updating material costs often enough.** Shingle pricing moves. A markup table built six months ago may be 5-8% out of date.
**3. Bidding below full overhead recovery.** Contractors who only include 'job costs' in their quote and cover office/insurance/truck payments 'out of profit' don't realize they're cross-subsidizing overhead from the owner's salary.
**4. Ignoring the audit math on workers' comp.** If you bid with a WC rate that's lower than what your actual x-mod or class loading will cost, you find out at year-end audit and the audit bill wipes out the profit you already took home.
**5. Not charging for change orders.** Mid-job scope additions that get done 'as a favor' or 'to keep the customer happy' at zero margin are essentially charity to people who can pay.