Roofing Business Profit Margins: What to Expect

If you own a roofing company, you already know the difference between a busy season and a profitable one. Roofing business profit margins are the number that tells you which one you actually had. A full schedule means nothing if materials, labor, and overhead eat up most of what you brought in. This guide breaks down what margins are realistic in the roofing industry, how to calculate yours, and what separates a company that survives from one that scales.


What Are Profit Margins — and Why Do They Matter?

Before getting into the numbers, it helps to understand the two margin figures you need to track.

Gross profit margin is what remains after you subtract the direct cost of a job — materials and field labor — from what you charged the customer. It tells you whether your pricing covers the actual work.

Net profit margin is what remains after you subtract everything: materials, labor, overhead (insurance, equipment, fuel, office costs), and your own salary or owner draw. Net margin is the real number. It reflects whether your business is actually building value or just staying busy.

The formula is straightforward:

  • Gross Margin = (Revenue − Direct Job Costs) / Revenue x 100
  • Net Margin = (Revenue − All Expenses) / Revenue x 100

Example: You charge $12,000 for a residential re-roof. Materials and labor cost $7,800. Gross profit is $4,200, and your gross margin is 35%. But once overhead — insurance, truck payments, fuel, marketing, your admin — adds up to 22% of revenue, your net margin is 13%. That is a healthy number. Many roofing contractors never see it clearly because they do not track it by job.


Average Roofing Business Profit Margins: What Is Normal, What Is Great

Here is where the industry actually lands, based on data from construction industry surveys and contractor benchmarks:

Gross profit margins (roofing):

Range What It Signals
Under 25% Underpriced or high material waste — review your estimates
25–35% Typical for competitive residential markets
35–45% Healthy — strong pricing or efficient crews
45%+ Exceptional — usually commercial work or premium positioning

Net profit margins (roofing):

Range What It Signals
Under 5% Overhead is out of control or volume is masking thin pricing
5–10% Average for most roofing companies
10–15% Strong — you are pricing and managing overhead well
15%+ Exceptional — typically premium positioning or a lean operation

Most residential roofing contractors sit between 20–35% gross and 5–10% net. If you are hitting 12–15% net, you are running a tight shop. If you are under 5% net and working full time, something in pricing, overhead, or both needs attention.

The gap between gross and net is where overhead hides. A 35% gross margin turns into a 7% net margin fast once you account for vehicles, insurance, licensing, slow seasons, callbacks, and your own pay.


Job Cost Breakdown: A Simple Template for Every Job

Before you can improve your margins, you need to know where your money goes on each job. Most roofing companies track revenue closely but track direct costs loosely. That gap is where margin disappears.

Use this template on every job:

Per-Job Cost Sheet

Line Item Estimated Actual
Revenue (amount charged) $_______ $_______
Materials $_______ $_______
Labor (crew wages or sub) $_______ $_______
Disposal / haul-off $_______ $_______
Permits $_______ $_______
Equipment rental $_______ $_______
Total Direct Costs $_______ $_______
Gross Profit (Revenue − Direct Costs) $_______ $_______
Gross Margin % _______ % _______ %

Then track overhead at the end of each month:

Monthly Overhead Summary

Overhead Category Monthly Amount
Insurance (liability, workers comp) $_______
Vehicle payments and fuel $_______
Equipment payments $_______
Office / admin / software $_______
Marketing $_______
Owner salary or draw $_______
Total Monthly Overhead $_______

Divide total monthly overhead by total monthly revenue to get your overhead percentage. Subtract that from your average gross margin to get your net margin.

Example: 33% gross margin minus 21% overhead rate = 12% net margin.

Track this for every job, every month. Within two or three months, the pattern shows you which job types, job sizes, and crew configurations are actually profitable — and which ones are costing you money you do not see until it is gone.


Why Roofing Margins Vary

Not every job carries the same margin. A few things that move the number:

Job type. Residential re-roofs are competitive on price, which compresses margins. Commercial work often carries better margins but involves longer sales cycles and more complex scopes. Metal and tile work typically yields better margins than shingle work because fewer contractors can do it.

Material cost timing. Shingle prices fluctuate. If you lock in a bid and material costs spike before the job starts, your margin takes the hit. Building material escalation clauses into larger contracts reduces that exposure.

Labor efficiency. A crew that completes a job in seven hours versus eleven hours on the same estimate changes your margin materially. Tracking hours per job by crew size is how you spot who is fast, who is slow, and whether your labor assumptions in estimates are realistic.

Change orders. Jobs that grow in scope during execution often get done at cost or below if change orders are not captured in writing. Every undocumented scope addition is margin you leave on the roof.

Callbacks and warranty work. A $10,000 job that requires a $600 callback costs you 6 points of margin you cannot get back. Callback rate per crew member is a useful quality metric that directly affects profitability.


How to Improve Your Roofing Business Profit Margins

These are the levers that actually move the number:

  1. Estimate from costs, not from feel. Every bid should start with a real cost — materials, crew hours at your actual wage rate, an overhead contribution — before you add markup. If your markup is based on what you think the market will bear without starting from cost, you are guessing.
  2. Know your minimum markup floor. If overhead runs 22% of revenue, you need a gross margin above 30% just to break even at the net level. Many contractors undercut themselves because they have never calculated this floor.
  3. Compare estimated versus actual on every job. If actuals consistently run 10–15% over estimates, your pricing model is broken — not just one job. That gap compounds across every job you run.
  4. Price change orders immediately. Agree and sign before the extra work starts. A handshake change order is a margin donation.
  5. Audit fixed overhead annually. Equipment, insurance, subscriptions, software — review what is not producing revenue and cut what you can. Every dollar of overhead you remove drops directly to net profit.
  6. Be selective about job type. More volume at thin margins is harder to manage and harder to staff than fewer jobs at healthy margins. Many roofing companies find that raising prices selectively by job type — and declining work below their floor — improves profitability without working more hours.

Doing This With Software

Tracking job costs in a spreadsheet works until it does not. When you are running multiple crews and multiple jobs simultaneously, the spreadsheet usually falls behind — and you are reconciling actuals weeks after the job closed.

Field service software lets you build estimates with itemized cost line items, track crew time against each job as work happens, and see margin data without moving numbers between sheets manually. When a crew clocks into a job, labor cost updates. When materials are logged, the job cost updates. By the time the invoice goes out, you already know your margin — not after reviewing a spreadsheet next month.

Jobber is a strong option for residential service contractors. It handles estimates, job scheduling, crew time tracking, invoicing, and payment collection in one platform. The job costing visibility tends to pay for itself when it catches margin leaks that were previously invisible in manual tracking.

For a full comparison of tools and what each one fits, this review of the best roofing software covers options across different operation sizes and business types.


The Easier Way

Manual margin tracking works. But it is slow, it is easy to miss things, and it does not tell you in real time when a job is trending over budget. By the time a spreadsheet shows you the problem, the job is already closed.

If you want to consistently hit 10–15% net margins, job costing software gives you the visibility to get there. You stop guessing on estimates and start making pricing decisions based on how your last 20 jobs actually performed.

The best place to start is comparing your options and finding the tool that fits your operation size and budget:

Best Roofing Software: Reviewed and Compared — see which platforms track job costs, manage crews, and handle invoicing so you can stop managing margin on paper.

Leave a Comment

Your email address will not be published. Required fields are marked *

© 2026 TradeApp Reviews. All rights reserved. Independent software reviews for trade contractors.
Scroll to Top