Roofing Profit Margins Are Shrinking — Here's How to Protect Yours
Ten years ago, a well-run residential roofing company could count on 40-50% gross margins on a standard re-roof. Today, most contractors are working with 20-30% — and some are below 20% without realizing it.
The math hasn't changed. Revenue minus costs equals profit. What's changed is that costs have risen faster than what contractors can charge. Material prices are up 35-60% since 2020. Labor costs are up 20-30%. Insurance premiums have climbed 15-25%. Software subscriptions that didn't exist a decade ago now cost $500-$1,000 per month.
Meanwhile, homeowners have more pricing information than ever. They get 3-5 estimates, compare them side by side, and choose the lowest one — or at least the lowest one from a contractor who seems competent.
This isn't a sob story. Roofing is still a profitable business. But protecting your margins requires deliberate action, not just good installation skills.
What's Actually Squeezing Margins
Material Costs: Up 35-60% Since 2020
Asphalt shingles have seen some of the steepest price increases of any building material. A bundle of GAF Timberline HDZ that cost $28-$32 in 2020 now costs $38-$45 depending on region and availability.
Underlayment, drip edge, flashing, and accessories have followed the same trajectory. A complete material package for a 25-square re-roof that cost $3,500-$4,000 in 2020 now costs $5,000-$6,500.
These increases have outpaced what most contractors have raised their prices. If you haven't increased your per-square pricing by at least 30% since 2020, your margins have shrunk — even if your revenue looks flat or growing.
Labor: Harder to Find, More Expensive to Keep
The roofing labor shortage is real. The average age of a roofing installer is increasing, fewer young workers are entering the trades, and immigration policy changes have reduced the available labor pool.
The result: experienced crew members who made $18-$22/hour in 2020 now command $25-$35/hour. And they have options — if you don't pay market rate, they'll work for someone who does.
Subcontractor rates have increased proportionally. If you're using sub crews, their per-square pricing is up 20-30%.
Insurance: Climbing Every Renewal
General liability, workers' comp, and commercial auto premiums have all increased, driven by larger claim sizes and more litigation. Workers' comp for roofing classification codes (the highest-risk category) runs $15-$25 per $100 of payroll in most states.
For a contractor with $400,000 in annual payroll, that's $60,000-$100,000 per year just for workers' comp — before general liability, auto, and umbrella policies.
Software and Technology Overhead
This is the cost that didn't exist a decade ago. CRM subscriptions, measurement report fees, estimating software, project management tools, marketing platforms — the average roofing contractor now spends $3,000-$10,000 per year on software.
Some of this spending is productive. Measurement reports save time. CRM systems improve close rates. But much of it is redundant — paying for features you don't use, in tools that overlap with each other.
Competition: More Contractors, Better Informed Homeowners
The roofing industry has seen an influx of new entrants, particularly after major storm events. More contractors bidding the same jobs creates downward price pressure.
Simultaneously, homeowners have better access to pricing information. They know roughly what a roof "should" cost from online resources, neighbor conversations, and contractor review sites. The information asymmetry that once allowed contractors to charge premium prices has narrowed.
8 Ways to Protect Your Margins
1. Know Your Real Cost Per Square
Most contractors have a rough idea of their cost per square, but few have calculated it precisely. Your cost per square should include:
- Materials: shingles, underlayment, accessories, nails, per square
- Labor: crew cost per square, including non-productive time (setup, cleanup, breaks)
- Equipment: depreciation/rental of compressors, guns, safety equipment, per square
- Overhead allocation: total monthly overhead ÷ total squares installed per month
- Vehicle: fuel, maintenance, insurance, per square
- Disposal: dump fees per square of tear-off
Add all of these up. That's your breakeven cost per square. Everything above that is profit.
Most contractors who do this exercise discover their actual cost per square is $50-$100 higher than they thought. That means every job they've been bidding at their old rate was less profitable than they believed.
2. Cut Measurement Costs Without Cutting Quality
If you're paying $12-$16 per measurement report, you're spending $150-$400 per month on measurements alone. That's money that comes directly out of your margins.
RoofRecon delivers the same contractor-grade satellite measurements at $5 per report — as low as $6 per report in bulk. The measurement data is equivalent: total area, pitch per facet, ridge/hip/valley/eave lengths, material quantities, and waste factor.
Impact on margins at 25 reports/month:
| Provider | Monthly Cost | Annual Cost |
|---|---|---|
| EagleView ($14 avg) | $350 | $4,200 |
| RoofRecon ($6.80 at 25-pack) | $170 | $2,040 |
| Annual savings | $2,160 |
$2,160 in annual savings goes straight to your bottom line. On $500,000 in annual revenue, that's a 0.4% margin improvement just from switching measurement providers.
3. Raise Prices on the Right Jobs
Not all jobs are created equal. You probably have some job types that are consistently profitable and others that consistently underperform. The solution isn't to raise prices across the board — it's to identify which jobs deserve a premium and which ones to price more aggressively.
Jobs that can support premium pricing:
- Storm damage with insurance coverage (the insurance company pays, not the homeowner)
- High-end neighborhoods where homeowners expect to pay for quality
- Complex roofs that most competitors avoid or underbid
- Repeat customers and referrals (they're already sold on you)
Jobs that require competitive pricing:
- Commodity re-roofs in price-sensitive neighborhoods
- Competitive bid situations with 4+ contractors
- Builder/developer work where volume makes up for lower margins
4. Reduce Waste — Literally
Material waste is pure margin erosion. Every bundle of shingles that goes in the dumpster instead of on the roof costs you $35-$45.
Common sources of preventable waste:
- Over-ordering: buying 10% more than the estimate "just in case." If your estimates are accurate, you shouldn't need more than the calculated waste factor.
- Cut waste on hips and valleys: proper layout planning reduces cut waste by 20-30%
- Damaged materials: shingles damaged in transport or storage because they were stacked too high or left in the rain
- Wrong materials ordered: ordering the wrong color, wrong product, or wrong accessory and eating the return cost
Accurate measurements reduce waste at the source. When your square footage is right, your material order is right, and there's less excess to throw away.
5. Track and Reduce Non-Productive Time
Your crew is on the clock from 7 AM to 4 PM, but how many of those hours are actually spent installing roofing? Between loading the truck, driving to the job, setting up equipment, taking breaks, waiting for materials, and cleaning up, many crews are only productive for 5-6 hours out of a 9-hour day.
That's a 33-44% non-productive rate. Every hour of non-productive time costs you $150-$250 (crew cost) with no revenue to show for it.
Ways to reduce non-productive time:
- Load the truck the night before — save 30-45 minutes every morning
- Stage materials at the job site in advance — eliminate mid-job supply runs
- Route jobs geographically — minimize drive time between jobs
- Use satellite reports for measurement — eliminate the measurement visit for bidding purposes
6. Stop Discounting
Many contractors reflexively offer discounts when a homeowner hesitates: "If you sign today, I'll knock $500 off." This feels like good salesmanship. It's actually margin destruction.
A $500 discount on a $15,000 job is 3.3% of revenue. If your margin is 25%, that discount wipes out 13% of your profit on that job.
Instead of discounting, offer added value: a better warranty, a faster start date, an upgrade to a premium shingle at a smaller upcharge, or a free gutter cleaning after installation. These have a perceived value to the homeowner that exceeds their actual cost to you.
7. Build Referral Loops
Customer acquisition cost is one of your biggest overhead items, even if you don't think about it that way. If you spend $3,000/month on marketing and close 8 jobs, your acquisition cost is $375 per job.
Referrals have an acquisition cost near zero. A referred customer has already been pre-sold by someone they trust. They're easier to close, less price-sensitive, and more likely to refer others.
Build referral triggers into your process:
- Ask for a Google review the day you finish the job (while quality is fresh)
- Send a handwritten thank-you card one week after completion
- Offer a $100 referral bonus for any referral that becomes a signed contract
- Follow up at 6 months and 12 months — "How's the roof holding up?"
8. Audit Your Software Stack
If you're paying $500-$1,000/month for software, you're likely paying for significant overlap and unused features. Do the audit described in our guide to roofing software costs and cut what you're not using.
The typical contractor can reduce software costs by 30-50% without losing any functionality that actually generates revenue.
The Margin Math: A Real Example
Here's what margin protection looks like on a typical 25-square re-roof:
Before optimization:
| Item | Cost |
|---|---|
| Materials (25 sq × $200) | $5,000 |
| Labor (25 sq × $100) | $2,500 |
| Overhead allocation | $800 |
| Measurement (EagleView) | $14 |
| Dump and disposal | $350 |
| Total cost | $8,664 |
| Revenue (bid) | $11,000 |
| Profit | $2,336 (21.2%) |
After optimization:
| Item | Cost |
|---|---|
| Materials (accurate measurement, less waste) | $4,800 |
| Labor (reduced non-productive time) | $2,300 |
| Overhead (leaner software stack) | $650 |
| Measurement (RoofRecon) | $6.80 |
| Dump and disposal | $350 |
| Total cost | $8,107 |
| Revenue (same bid) | $11,000 |
| Profit | $2,893 (26.3%) |
That's a 5-point margin improvement on the same job at the same price. Over 100 jobs per year, that's an additional $55,700 in profit.
Margins Are a Choice
You can't control material prices, labor markets, or insurance premiums. But you can control your measurement costs, your waste rates, your overhead structure, your pricing strategy, and your operational efficiency.
Protecting your margins isn't about one big move. It's about ten small moves that compound over the course of a year. Saving $7 per measurement report, reducing waste by 2%, cutting $150/month in software costs, raising prices 3% on premium jobs — individually, these are small. Together, they're the difference between a 20% margin and a 28% margin.
Start with the easiest win: switch your measurement reports to RoofRecon. $5 per report. No subscription. Same accuracy. Immediate savings.
Order a Roof Report — $5, no subscription required →
Produced by Veteran Built Software — built by contractors, for contractors. RoofRecon delivers satellite roof measurement reports at $5 per report with no subscription required.
