Skip to main content

Roofing Net Profit Margin by Company Size: What the Numbers Actually Look Like

Emily Crawford, Home Maintenance Editor··31 min readRoofing Business Operations
On this page

Ask ten roofing owners what their net profit margin is and you'll get ten answers, most of them wrong. Some quote gross margin and call it net. Some quote the number their accountant gave them after they zeroed out their own salary. A few quote a number they heard at a conference that has nothing to do with their own books. And almost everyone assumes that a bigger company keeps a bigger slice of every dollar, which is the opposite of what usually happens.

Net profit margin is the cleanest single read on whether your roofing business is actually working. It tells you, after everything is paid — materials, labor, the truck payments, the office rent, your sales reps' commissions, the software, the insurance, and a fair market salary for you — how many cents of each revenue dollar you get to keep. Revenue feeds your ego. Net margin feeds your family.

What follows is a grounded look at what that number tends to be at each stage of a roofing company's life, why it moves the way it does as you grow, and how to read your own statements so you can tell whether you're on track or quietly bleeding. The dollar figures and percentages here are realistic ranges drawn from how roofing P&Ls are typically built — not a survey result, and not a promise about your shop. Your market, your mix of work, and your discipline will move you up or down inside these bands. Use them as a mirror, not a scoreboard.

First, get the definitions straight

Most margin arguments are really vocabulary arguments. Three numbers get confused constantly, and you cannot benchmark yourself against anyone until you know which one you're holding.

Gross profit is revenue minus the direct cost of producing the work — your cost of goods sold (COGS). On a roof, COGS is materials, the labor that physically installs the roof (your crew or your subs), dumpster and disposal, equipment rental tied to the job, permits, and warranty/callback cost. Gross profit divided by revenue is your gross margin.

Operating profit is gross profit minus your overhead — the cost of running the company whether or not a single roof gets sold that week. Office rent, office staff, sales salaries and base draws, marketing, software, non-job vehicles, insurance (general liability, workers' comp on office staff), accounting, and so on. This is sometimes called EBITDA-ish if you also add depreciation and interest back, but keep it simple: operating profit is what's left after the jobs pay for themselves and the office.

Net profit is what remains after everything, including interest on debt, taxes set aside, and — this is the one owners cheat on — a real, market-rate salary for the owner's actual role. Net profit divided by revenue is your net margin, the number this is about.

Here's the trap. A $1.5M roofing company where the owner runs sales, answers the phone, and supervises crews is doing maybe three jobs that would cost $180,000 a year to hire out. If that owner doesn't pay themselves that $180K on paper, the "net profit" looks inflated by $180K — about 12 points of phantom margin. The business looks like it nets 18%. It actually nets 6%, and the other 12% is the owner working three jobs for free. You cannot compare yourself to anyone, or sell the company, or make a hiring decision, until that salary is on the books.

The quick-reference table

Term Formula What it answers
Gross margin (Revenue − COGS) / Revenue Are my jobs priced right?
Operating margin (Gross profit − Overhead) / Revenue Is my office the right size for my volume?
Net margin Net profit / Revenue After everything and a real owner salary, what do I keep?

Rule of thumb to keep in your head: in residential roofing, a healthy gross margin lives in the high 30s to high 40s percent. Overhead eats a big chunk of that. What survives to the bottom line — net margin — is usually a single-digit to low-double-digit percentage. If someone tells you they net 30%, they are either quoting gross, not paying themselves, or selling you something.

The big picture: net margin by company size

Let's lay out the tiers first, then walk through each one. The table below shows typical bands. The middle column is the honest target most well-run shops can hold; the right column is what disciplined operators in that tier reach.

Annual revenue Typical net margin (after owner salary) Well-run target What usually determines it
Under $500K (owner-operator) 3% – 10% 8%+ Owner does everything; net is really hidden wages
$500K – $1M 5% – 10% 9%+ First hires; pricing discipline starts to matter
$1M – $3M 3% – 8% 7%+ The squeeze — overhead added before systems
$3M – $5M 5% – 9% 8%+ Systems start paying back; estimating tightens
$5M – $10M 6% – 10% 9%+ Real GM/ops layer; departmental P&Ls
$10M+ 5% – 12% 10%+ Spread on volume; or a few big jobs go sideways

Notice the shape. Margin does not climb smoothly with revenue. It often dips in the $1M–$3M band — the messy middle — before it recovers. That dip is the single most important thing to understand about scaling a roofing company, and most owners walk straight into it without seeing it coming. We'll spend real time on it below.

Also notice the ranges overlap heavily. A tight $800K shop can out-earn a sloppy $4M shop on margin and sometimes on absolute dollars. Size is not the lever. Discipline is. Size just changes which disciplines matter most.

One more caveat before the walkthrough: residential replacement, retail vs. insurance-driven work, commercial flat roofing, and service/repair all carry different margin profiles, and a company's blend of those moves its whole-company net margin by several points. A shop that's 70% service and repair will show a higher net margin at the same revenue than a shop that's 95% full residential replacement, simply because of mix. We'll handle the residential-vs-commercial split in its own section, but keep it in the back of your mind as you read the tiers — two companies at the same revenue can sit in different bands for no reason other than what kind of work they sell.

Tier 1: Under $500K — the owner-operator

At this stage you are the company. You sell, you might swing a hammer or at least supervise every job, you load materials, and you do the books on Sunday night. The "net profit" on your P&L is mostly your own labor wearing a fancy hat.

What the P&L looks like. On $400K in revenue, a typical owner-operator might run:

  • Revenue: $400,000
  • COGS (materials + sub or crew labor + disposal): $248,000 (62%)
  • Gross profit: $152,000 (38%)
  • Overhead (truck, phone, insurance, basic marketing, software): $80,000 (20%)
  • Owner's market salary for the work they actually do: $90,000
  • Net profit: −$18,000

Wait — negative? That's the point. Many sub-$500K shops, on paper, don't net anything once you pay the owner what their labor is worth on the open market. What they really have is a job that pays roughly $72,000 ($90K salary minus the $18K shortfall) with extra risk and stress. That's not a criticism — it's a stage. But you have to see it clearly, because the move from here is not "grind harder." It's "raise price" or "raise volume enough to afford your first real hire."

Where the margin actually is. The fastest margin gain at this tier is almost always pricing, not cost-cutting. Owner-operators chronically underprice because they're competing on the same street as the uninsured guy with a ladder rack, and because they don't carry their own overhead in the bid. If your bids don't include a line for you and a line for the office, you are quoting a hobby, not a business.

A second number to watch at this tier: owner's hourly rate. Divide your true take-home (after a real salary line) by the hours you actually work — and count the Sunday-night bookkeeping and the 6 a.m. material runs. Owner-operators are routinely shocked to find they're netting $18 to $25 an hour on a six-figure-revenue business, because they're absorbing four jobs' worth of labor for one paycheck. That hourly number, not the revenue figure, tells you whether your next move is to raise price, hire help, or both. If your effective hourly is below what you'd pay a crew lead, your pricing is the problem, full stop.

The trap. The under-$500K owner who finally gets busy enough to hire feels rich for about a quarter, then watches the first office hire and the second truck erase the margin. That's not failure. That's the on-ramp to the squeeze. The mistake is reading the temporary margin dip as a sign the hire was wrong and firing back down to a one-person operation — which caps the business forever. The hire isn't wrong; the systems to make the hire productive just haven't caught up yet.

Tier 2: $500K – $1M — first hires, first systems

Now you've added a salesperson or a production lead, maybe a part-time admin. Revenue roughly doubled, but you've added fixed cost that has to be fed every month regardless of whether it rains for two weeks.

What the P&L looks like. On $800,000:

  • Revenue: $800,000
  • COGS: $480,000 (60%)
  • Gross profit: $320,000 (40%)
  • Overhead (admin salary, sales base + commission, marketing, software, insurance, 2 trucks): $230,000 (28.75%)
  • Owner's market salary: $100,000
  • Net profit (rounded): −$10,000 to +$72,000 depending entirely on whether jobs were priced and produced cleanly

The spread in that last line is the whole story of this tier. At $800K you have enough volume that small leaks compound. A 3-point slip in gross margin — letting crews bid loose, eating callbacks, throwing in upgrades to close — is $24,000, which is most of your net. Conversely, tightening estimating by 3 points roughly doubles your take-home.

Where the margin actually is. Two places. First, estimating consistency: every job priced off the same up-to-date material and labor cost, with a real margin built in, not whatever the closer felt like quoting at the kitchen table. Second, marketing efficiency. At this tier marketing is your largest controllable overhead line, and most of it is wasted on the wrong houses — we'll come back to that, because it's where the biggest practical lever lives for a growing shop.

The trap. Owners at $800K often celebrate hitting "almost a million" and start spending like a $2M company — nicer office, a sales manager, a marketing retainer — before the volume supports it. That's the doorway to the squeeze.

Tier 3: $1M – $3M — the squeeze (the most dangerous tier)

This is where more roofing companies stall or quietly go broke than anywhere else, and it's the part nobody at the conference stage talks about because it's not a triumphant story.

Here's the mechanic of the squeeze. To grow past $1M you have to add overhead in chunks: a real estimator, a production manager, an office manager, a marketing budget with a person attached, more trucks, more insurance, maybe a second location's worth of stuff. Overhead is a staircase — it goes up in steps, not a smooth ramp. But the systems that make that overhead productive — the estimating standards, the production scheduling, the job-costing, the sales process — lag behind the headcount by 12 to 24 months. So for a stretch you are paying $2.4M-company overhead while still producing like a $1.4M company. Net margin compresses, sometimes to nothing, sometimes below zero, right at the moment revenue looks most impressive.

What the P&L looks like. On $2,000,000, mid-squeeze:

  • Revenue: $2,000,000
  • COGS: $1,240,000 (62% — note it crept up; new crews and looser supervision)
  • Gross profit: $760,000 (38%)
  • Overhead (estimator, PM, office mgr, marketing person + spend, 4–5 trucks, software stack, insurance): $660,000 (33%)
  • Owner's market salary (now mostly running the company): $130,000
  • Net profit: −$30,000

That's a $2M business losing money. It's extremely common, and from the outside — trucks, crews, a sign on the office — it looks like success. The owner often masks it by under-paying themselves or by riding accounts payable and a line of credit, which buys time but not health.

Where the margin actually is. Three disciplines pull a company out of the squeeze, in this order:

  1. Job costing on every job. You cannot fix what you don't measure per job. Estimated cost vs. actual cost, by job, every job, reviewed weekly. Crews that consistently blow the labor estimate, salespeople who consistently discount, material waste — it all hides in the average until you cost individual jobs.
  2. Estimating discipline that holds in the field. It's not enough to bid at 40% gross margin if the field gives 8 points back in change orders you don't charge for, callbacks, and "while we're up here" freebies. The bid margin and the realized margin have to converge.
  3. Cutting the cost of bad-fit work. Every hour your reps and crews spend on roofs that didn't need replacing, on bid-and-lose tire-kickers, and on driving across the metro for scattered jobs is overhead with no gross profit attached. Tightening which houses you pursue is one of the few levers that lifts margin and revenue at the same time.

That last point is worth slowing down on, because it's where a specific, modern tool earns its keep.

A word on where the marketing dollar leaks in the middle

In the $1M–$3M squeeze, marketing and the sales labor attached to it is usually the second-largest line on the P&L after COGS, and it's the least disciplined. Most shops are spreading mailers across whole ZIP codes, buying shared internet leads that three competitors also bought, or sending canvassers down streets where half the roofs were replaced five years ago. You pay full freight — postage, gas, payroll, lead fees — on a lot of doors that were never going to be jobs.

The fix is not to spend more. It's to spend on the right roofs. If you can tell, before you mail or knock, which houses have roofs old enough to be near the end of their life and which ones took real storm impact, you stop paying to reach the new roofs and the untouched ones. That same spend produces more jobs, which raises revenue, and you waste fewer rep-hours, which lowers overhead per job. Both moves push net margin up.

This is the gap RoofPredict is built for. It reads aerial imagery to estimate a roof's age as a range per address — not an exact install date, a range — and models storm physics per roof, scoring hail and wind impact house by house rather than just showing where a storm passed. The output is a ranked list of the addresses on your own streets, or inside your own CRM, that are actually due. It is not a lead service and it doesn't sell you customers; it sharpens the outbound you already do so the marketing dollar lands on roofs that need you. Honest limits: a roof-age range is a probability, not a guarantee that a given house will buy, and a storm score is odds of damage, not proof of it — you still have to get on the ladder and document. But for a shop in the squeeze trying to lift margin without lifting spend, aiming the existing budget at the right doors is one of the cleaner levers available. Enriching your old estimate database and past-customer list with roof-age and storm signals is, dollar for dollar, often the highest-return move, because that list is already paid for.

The trap. The squeeze tempts owners to chase revenue harder — "we just need to get to $3M and it'll fix itself." It won't. Adding loose volume on top of a leaky operation deepens the hole. The way out is margin discipline first, then growth on top of clean systems.

Tier 4: $3M – $5M — systems start paying back

If you survive the squeeze, this is where it starts to feel like a real business. The overhead you added in the $1M–$3M range finally has the systems and volume to be productive. Margin recovers — not because you got bigger, but because the cost you already pay is finally being used efficiently.

What the P&L looks like. On $4,000,000, well-run:

  • Revenue: $4,000,000
  • COGS: $2,400,000 (60% — back under control with job costing)
  • Gross profit: $1,600,000 (40%)
  • Overhead: $1,180,000 (29.5% — the same departments, now spread over more volume)
  • Owner's market salary: $150,000
  • Net profit: $270,000 (about 6.75%)

The magic here is operating leverage. Your office manager, your estimator, your software stack, your insurance base — a lot of that cost is fixed. Run $4M through the same office that ran $2.2M and overhead as a percentage falls even if the dollars rise. That percentage drop is the recovery.

Where the margin actually is. At this tier the wins get more specific:

  • Departmental accountability. Sales has a margin target. Production has a labor-budget target. Each is reviewed against actuals.
  • Crew-level job costing. You now have enough jobs to see that Crew A runs 6 points better than Crew C, and you can fix or replace.
  • Supplier terms. At $2.4M in materials you have real buying power. Negotiated pricing, rebates, and clean terms are worth one to three points of gross margin, straight to the bottom line.
  • Reducing rework. At $4M, a 2% callback/warranty rate is $48K of lost gross profit annually walking out the door on trucks fixing yesterday's work.

The trap. Success here tempts a second location or a new service line before the first one is genuinely systematized. A second branch restarts the squeeze — new overhead, lagging systems — inside an otherwise healthy company, and it can drag the blended margin back down for a year or more. Open the second thing only when the first runs without you in the room.

Tier 5: $5M – $10M — the operating-leverage tier

Now you have a management layer: a general manager or operations manager, department heads, maybe a full-charge accountant in place of a part-time bookkeeper. The owner's job has shifted almost entirely from doing the work to building the machine that does the work.

What the P&L looks like. On $7,000,000, disciplined:

  • Revenue: $7,000,000
  • COGS: $4,130,000 (59%)
  • Gross profit: $2,870,000 (41%)
  • Overhead (management layer, full office, marketing engine, fleet): $1,995,000 (28.5%)
  • Owner's salary (now genuinely a market wage for a leader, not 3 jobs): $200,000
  • Net profit: $675,000 (about 9.6%)

Where the margin actually is. At this size the levers are structural:

  • Departmental P&Ls. Residential, commercial, repairs, and service can each have wildly different margins. Service and repair work often carries a much higher gross margin than full residential replacements but gets ignored because the ticket is small. Breaking the P&L apart by line of business frequently reveals that a "low-margin" company is actually a high-margin repair business strapped to a break-even replacement business. Fix the mix and net margin jumps.
  • Cost of capital. With real equipment, fleet, and sometimes a building, interest and financing structure start to matter to the bottom line. A point of interest on serious debt is real money.
  • Sales compensation design. At this scale, how you pay reps determines your margin. Commission on revenue rewards discounting to close. Commission on gross profit aligns the rep with the company — they keep more by holding price, so they hold price. This single change is worth multiple margin points at scale.

The trap. Bloat. The management layer that creates leverage can also create empire-building — headcount that doesn't tie to throughput. Watch overhead as a percentage of revenue like a hawk; if it climbs while revenue is flat, you're slipping back toward a squeeze, just at a bigger number.

Tier 6: $10M+ — spread, or a few jobs go sideways

At eight figures, two things become true at once. First, your fixed overhead is spread over so much volume that operating leverage can push net margin into the low double digits if you run tight. Second, your exposure to a few large or complex jobs grows — one badly bid commercial project, one crew that walks a multi-unit job into a six-figure labor overrun, one weather season that strands inventory, and a point or two of margin evaporates across the whole company.

What the P&L looks like. On $15,000,000, well-run:

  • Revenue: $15,000,000
  • COGS: $8,850,000 (59%)
  • Gross profit: $6,150,000 (41%)
  • Overhead: $4,200,000 (28%)
  • Owner/CEO salary: $250,000
  • Net profit: $1,700,000 (about 11.3%)

Where the margin actually is. Risk management and mix. The disciplines that won the earlier tiers are assumed now — if your job costing isn't tight at $15M you won't reach $15M. What separates a 6% from an 11% company at this size is:

  • Bid risk controls on large jobs — contingency built in, scope locked, change orders priced and signed before work proceeds.
  • Backlog and cash management — enough work to keep crews productive without overcommitting, and enough cash to not finance growth on the supplier's dime.
  • The right mix of work — deliberately weighting toward the higher-margin lines (service, repair, certain commercial) rather than chasing top-line revenue through low-margin volume.

The trap. Chasing the next round number. Going from $15M to $25M can mean a new region, a new service line, or a big commercial push — each of which can restart the squeeze at scale. The healthiest large roofers often choose to defend a fat margin at $15M over a thin margin at $30M. Revenue is vanity; margin is sanity; cash is reality.

Margin vs. cash: two different problems

A point that trips up roofers at every tier: a healthy net margin and healthy cash flow are not the same thing, and you can die from a cash problem while your P&L looks great. Roofing is brutal on cash because you front the materials and a chunk of the labor before you collect — sometimes weeks before, longer on insurance-driven and commercial work where payment lags the install. A growing company actually consumes more cash the faster it grows, because every new job ties up money in materials and payroll before the check clears.

That creates a dangerous illusion in the squeeze. An owner sees jobs closing, sees the bank balance moving, and assumes things are fine — but the balance is moving because of timing (deposits in, supplier bills not yet due), not because of profit. When the supplier invoices and the payroll hit the same week a couple of big collections slip, a profitable-on-paper company can miss payroll. The fix is to manage margin and cash as two separate dashboards. Track net margin monthly for whether the business model works. Track a 13-week cash forecast for whether you can make payroll. A company can be margin-healthy and cash-sick at the same time, and the cash problem kills you first.

Three habits keep cash sane without touching margin: collect deposits that cover materials up front, invoice the moment the job is complete (not at month-end), and keep a cash reserve equal to at least one payroll cycle plus your largest open supplier bill. None of these change your net margin by a cent — they just keep you alive long enough to earn it.

Why margin dips in the middle — the U-curve, visualized

If you plotted net margin against revenue for a typical growing roofer, you wouldn't get a rising line. You'd get a U — or more precisely a slumped middle. Decent at the owner-operator stage (because net is really hidden wages), a dip through the $1M–$3M squeeze (overhead added ahead of systems), then a recovery and climb as operating leverage kicks in past $3M–$5M.

Here's the same idea as a rough profile:

Revenue ~Net margin Phase
$300K 8% Owner is the company (net = hidden wages)
$800K 9% Lean, first hires, still nimble
$1.5M 4% Entering the squeeze
$2.2M 2% Deep squeeze — overhead ahead of systems
$3.5M 7% Systems catching up
$6M 9% Operating leverage
$12M 11% Spread + mix discipline

The single most useful thing to internalize: the squeeze is a phase, not a verdict. A company netting 2% at $2.2M isn't necessarily a bad company — it may be a good company mid-transition. The danger is mistaking the dip for permanence and either giving up or, worse, pouring on more loose volume. The cure is systems, not size.

Residential vs. commercial vs. service: why mix changes everything

Two roofing companies can post the same revenue and the same total net margin while running completely different businesses underneath. The reason is mix, and if you only look at the blended number you'll miss where you actually make money.

Residential replacement (retail). The bread and butter for most shops. Gross margins in the high 30s to high 40s are typical when priced right. High volume, lots of small jobs, marketing-heavy customer acquisition. Net margin is sensitive to estimating discipline and marketing efficiency because both COGS and overhead are spread across many transactions.

Insurance-driven residential. Same physical work, different economics. Pricing is anchored to carrier-approved scopes, payment lags the install (which strains cash, see above), and the documentation burden is real. Done cleanly — thorough photo documentation and an accurate, Xactimate-aligned repair estimate handed to the homeowner — it can carry solid margin. Done sloppily, the supplements that never get documented and the deductibles owners discount to win the job bleed margin fast. A hard compliance note: your lane is documenting the damage, writing an accurate estimate for your own scope of work, and handing it to the homeowner. The homeowner files the claim and the insurer decides coverage. You do not, for a fee, negotiate or 'handle' the claim, interpret what their policy covers, promise a specific approval or payout, tell anyone their deductible is waived or absorbed, or advertise a 'free roof' — that crosses into unlicensed public adjusting in most states and it's both a legal and a margin trap (discounting the deductible is just giving away your profit with extra liability attached). Keep your documentation thorough and your estimate honest; let the homeowner and the carrier own the claim.

Commercial / flat roofing. Bigger tickets, longer sales cycles, different materials (TPO, EPDM, modified bitumen), and meaningfully more bid risk. A single mispriced commercial job can swing a small company's annual margin. Gross margins can be thinner on competitively bid new work but much fatter on negotiated re-roofs and maintenance contracts. Cash lags further. Commercial rewards companies with the estimating sophistication and balance sheet to absorb a bad job; it punishes undercapitalized shops that win on price.

Service and repair. The quiet margin engine. Small tickets, but gross margins frequently run well above replacement work because there's little competition on a $900 leak repair, customer acquisition cost is near zero (the phone rings), and the labor is efficient. Many owners under-invest here because the jobs feel small and unglamorous, then discover when they finally break out a departmental P&L that repairs were carrying the whole company. If your blended net margin is mediocre, there's a good chance a healthy service/repair line is subsidizing a break-even replacement line — and the fix is to grow the high-margin side deliberately, not to chase more low-margin volume.

The practical takeaway: once you're past about $3M, break your P&L apart by line of business. You will almost certainly find that your blended margin is an average of one strong line and one weak line, and that the path to a better net margin is shifting mix toward the strong one — not squeezing another point out of everything equally.

A note on benchmark data — and why your own trend beats it

Whenever you see a clean, confident 'average roofing net margin is X%' figure, treat it with suspicion and ask three questions. Did they pay the owner a salary? Did they separate gross from net? What mix of work and what region? Published roofing margin benchmarks vary widely precisely because the underlying definitions and samples vary widely. Industry associations like the NRCA, government data from the Census Bureau's County Business Patterns and the BLS, and contractor financial surveys each measure slightly different things on slightly different populations.

Use outside benchmarks for rough orientation — the bands in the tier table will get you in the right neighborhood — but anchor your decisions to your own trailing-twelve-month trend. Your shop in your market, measured the same honest way each quarter, is the only benchmark that controls for the variables that matter. A company moving from 4% to 6% to 8% over three quarters is winning, regardless of where a stranger's average sits. A company drifting from 9% to 7% to 5% has a problem to solve even if it's 'above average.' Direction beats position, and your own consistently measured number beats any survey.

How to calculate your own net margin honestly

Benchmarks are useless if your own number is fiction. Here's a clean way to find your true net margin in an afternoon.

Step 1 — Pull trailing 12 months, not a calendar year. Roofing is seasonal; a calendar year split mid-season distorts everything. Use the last 12 full months.

Step 2 — Sort every expense into COGS or overhead. The test: would this cost exist if you sold zero roofs this month? Crew labor on jobs, materials, disposal, job permits, per-job equipment — COGS (it scales with work). Office rent, admin salaries, the owner's salary, marketing, software, insurance, non-job vehicles — overhead (it exists regardless). Misclassifying overhead as COGS (or vice versa) is the most common bookkeeping error in the trade and it hides exactly where your problem is.

Step 3 — Put a real owner salary on the line. Ask: if I had to hire someone to do everything I do, at market rate, what would I pay them? That number goes in as an expense. If you do three roles, count three roles. This is non-negotiable for an honest read.

Step 4 — Set aside taxes and account for interest. Net margin is after-tax-aware. Don't let a tax bill in April surprise you into thinking you were profitable in February.

Step 5 — Do the arithmetic.

  • Gross profit = Revenue − COGS
  • Operating profit = Gross profit − Overhead (including your salary)
  • Net profit = Operating profit − Interest − Taxes
  • Net margin = Net profit ÷ Revenue

Step 6 — Compare to your tier above, then ignore the comparison and look at the trend. Your own number this quarter vs. last quarter matters more than how you stack against a stranger's shop in a different market. Direction beats position.

A worked example, start to finish

A $1.8M residential shop thinks it nets 15% because the bookkeeper's P&L shows $270K "profit." Let's audit it.

  • Revenue: $1,800,000
  • Reported "profit": $270,000 (15%)
  • But: the owner takes only $40,000 in salary and runs sales + production. Market rate for those roles: $140,000. Adjustment: −$100,000.
  • And: $60,000 of "materials" (COGS) is actually a shop truck, fuel for the owner's daily driver, and the office lease — those are overhead, which doesn't change net but means their gross margin was overstated and their estimating looked better than it is.
  • And: no tax reserve was set aside; allow −$45,000.

True net profit: $270,000 − $100,000 − $45,000 = $125,000. True net margin: about 6.9%. That's a healthy number for a $1.8M shop entering the squeeze — but it's less than half of what they thought, and the difference is the gap between running a business and running a job that pays you under the table. Knowing the real 6.9% is what lets them make a sane decision about whether to hire that next estimator.

The seven leaks that quietly eat roofing margin

Across every tier, the same handful of leaks show up. Walk your P&L against this list.

  1. Underpriced estimates. Bids that don't carry full overhead and a real profit margin. The most common and most expensive leak. Fix: build a price that includes COGS + a fixed overhead allocation + target net, and hold it.
  2. Margin given back in the field. Change orders not charged, "while we're up here" freebies, upgrades thrown in to close. The bid says 40% gross; the realized job delivers 32%. Fix: price and sign every change order; track bid-vs-actual margin per job.
  3. Callbacks and warranty work. Free trucks rolling to fix bad installs. Pure margin destruction — you pay labor and materials twice for one sale, and the second time there's no revenue attached. Fix: quality control at job completion; crew-level defect tracking.
  4. Wasted marketing spend. Mailing whole ZIPs, buying shared leads, knocking streets full of new roofs. Fix: aim spend at roofs that are actually due by age and storm exposure; mine your own old list first.
  5. Idle and inefficient labor. Crews waiting on materials, driving across the metro between scattered jobs, redoing work. Fix: scheduling, route density, materials staged before the crew arrives.
  6. Overhead creep. Subscriptions, vehicles, and headcount that grew with revenue and never got cut when justified. Fix: review overhead as a percentage of revenue quarterly; cut what doesn't tie to throughput.
  7. The unpaid owner. Not a cash leak — a clarity leak. Hiding your own wage makes a weak business look strong and delays the fixes you need. Fix: pay yourself on paper, every month.

A 90-day plan to find and stop the bleed

If you do nothing else after reading this, run this sequence.

Days 1–30 — See clearly. Rebuild your trailing-12 P&L with COGS and overhead correctly sorted and a real owner salary on the line. Calculate your honest net margin. Pull your three best and three worst jobs from the last quarter and cost them out, estimated vs. actual, line by line. You're looking for the pattern, not the average.

Days 31–60 — Stop the two biggest leaks. From your job costing, you'll usually find that two of the seven leaks account for most of the damage — commonly underpricing and field give-backs. Fix the estimate template so every bid carries full overhead and target margin. Institute signed change orders. Set a realized-margin floor below which a job triggers a review.

Days 61–90 — Aim the spend and tighten the list. Audit where every marketing dollar and rep-hour went last quarter and what it returned. Stop the lowest-return channel. Redirect that budget toward the roofs most likely to be due — by age range and storm exposure — starting with re-working your own past-customer and old-estimate list, which is already paid for. Measure cost per job, not cost per lead.

Do that, review monthly, and a shop in the squeeze can claw back three to six points of net margin inside a year — not by getting bigger, but by getting clean.

What to take away

Net margin in roofing doesn't reward size; it rewards discipline, and the relationship between the two is a U-curve, not a ramp. Owner-operators show a deceptively healthy number because it's really wages. The $1M–$3M squeeze is where the most companies lose money while looking their most successful, because overhead arrives in steps before the systems that make it pay. Past $3M–$5M, operating leverage rewards the operators who built real job costing, estimating discipline, and aimed marketing — and the best large roofers defend a fat margin rather than chase a thin one.

The two questions that matter most are the same at every tier. First: what is my honest net margin, with a real salary on the books? Second: of the seven leaks, which two are costing me the most right now? Answer those with your own numbers and you'll know more about your business than the revenue figure on your truck wrap will ever tell you.

If one of those two leaks is wasted marketing and rep-hours — and in the squeeze it usually is — aiming your existing spend at the roofs that are genuinely due by age and storm exposure is one of the few moves that lifts revenue and margin at the same time. That's the narrow, honest job RoofPredict does: it tells you which roofs on your streets and inside your own list are due, so you stop paying to reach the ones that aren't. It won't price your jobs, manage your crews, or guarantee a close — but it can keep the most controllable line on your P&L from leaking. Book a demo and hand us a street or a list you already know; you decide whether we aimed it right.

FAQ

What is a good net profit margin for a roofing company?

After paying for everything, including a real market-rate salary for the owner, a healthy residential roofing net margin is usually in the single digits to low double digits — roughly 6% to 11% for well-run shops, with the high end reached at scale through operating leverage. If you hear 25–30%, someone is quoting gross margin, not paying themselves a salary, or selling something. Gross margin (before overhead) is a different number and typically runs in the high 30s to high 40s percent.

Why is my roofing company's margin shrinking as revenue grows?

You're almost certainly in the $1M–$3M squeeze. To grow you add overhead in chunks — estimator, production manager, office staff, marketing, trucks — but the systems that make that overhead productive (job costing, estimating standards, scheduling) lag behind the hiring by a year or more. For a stretch you carry a bigger company's overhead while still producing like a smaller one, so net margin compresses even as revenue climbs. It's a phase, not a verdict; the cure is systems, not more volume.

What's the difference between gross margin and net margin in roofing?

Gross margin is revenue minus the direct cost of the work — materials, install labor, disposal, permits — divided by revenue. It tells you if jobs are priced right. Net margin is what's left after gross profit pays for all overhead (office, marketing, insurance, software), interest, taxes, and a real owner salary, divided by revenue. It tells you what you actually keep. A roof can have a great gross margin and still net nothing if overhead is too heavy for the volume.

Do bigger roofing companies have higher profit margins?

Not automatically. Net margin follows a U-curve, not a straight line. It looks decent for owner-operators (because net is really hidden wages), dips in the $1M–$3M squeeze, then recovers and climbs past $3M–$5M as fixed overhead spreads over more volume. A disciplined $800K shop can out-margin a sloppy $4M shop. Size changes which disciplines matter most; it doesn't guarantee a bigger slice of each dollar.

How do I calculate my roofing company's true net profit margin?

Pull a trailing 12 months. Sort every cost into COGS (would it exist if you sold zero roofs?) or overhead. Put a real market-rate salary for everything you personally do on the books as an expense. Subtract COGS from revenue for gross profit, subtract overhead for operating profit, then subtract interest and taxes for net profit. Divide net profit by revenue. The most common error is leaving out the owner's salary, which can inflate apparent margin by 10 points or more.

What net margin should an owner-operator roofer expect?

On paper, often very little — sometimes near zero or negative — once you charge the business a market-rate salary for the selling, supervising, and admin you do yourself. The real takeaway at this tier is that 'net profit' is mostly your disguised wages. The fastest improvement is almost always raising price to include full overhead and a profit line, not cutting costs, because owner-operators chronically underbid against uninsured competitors.

How much does overhead cut into roofing profit?

A lot. With gross margins in the high 30s to high 40s and net margins in the single digits to low double digits, overhead typically consumes 25–33% of revenue. In the squeeze it can spike above 33% because headcount was added ahead of the volume to support it. Watching overhead as a percentage of revenue — the percentage, not only the dollar amount — quarterly is one of the best early warnings that you're slipping toward a margin problem.

Can better-targeted marketing actually improve net margin?

Yes, and it's one of the few levers that lifts revenue and margin at the same time. Marketing plus the sales labor attached to it is usually the second-largest line after COGS, and much of it is spent reaching new roofs and untouched homes that were never going to buy. If you aim the same spend at roofs that are actually due — by age range and storm exposure — you get more jobs per dollar (more revenue) and waste fewer rep-hours (lower overhead per job). Reworking your own past-customer and old-estimate list usually returns the most because it's already paid for.

How should I pay my sales reps to protect margin?

Pay commission on gross profit, not on revenue. Commission on revenue rewards a rep for discounting to close — they get paid the same percentage on a job they gutted on price. Commission on gross profit means the rep keeps more by holding price, so they hold price. At scale this single change is worth multiple points of net margin and aligns the sales team with the health of the company instead of just the top line.

Is a roofing company losing money at $2M revenue normal?

Surprisingly common, and from the outside it can look like a thriving business — trucks, crews, an office. It's the classic squeeze: overhead added ahead of systems. It is not automatically a sign of a bad company; it's often a good company mid-transition. The danger is mistaking the dip for permanence and either quitting or pouring on more loose volume, which deepens the hole. The way out is job costing, estimating discipline, and cutting the cost of bad-fit work — then growing on clean systems.

The Roofline by RoofPredict

Stay Ahead of Roofing Market Changes

Join The Roofline by RoofPredict for weekly roofing intelligence: material price signals, storm demand, insurance and regulatory updates, sales tactics, and local contractor opportunities.

By signing up, you agree to receive The Roofline by RoofPredict. Unsubscribe anytime.

Sources

  1. National Roofing Contractors Association (NRCA)nrca.net
  2. U.S. Bureau of Labor Statistics — Roofers, Occupational Outlookbls.gov
  3. U.S. Bureau of Labor Statistics — Producer Price Index (Construction Materials)bls.gov
  4. U.S. Census Bureau — County Business Patterns (Construction)census.gov
  5. U.S. Small Business Administration — Calculate Your Startup Costs & Pricingsba.gov
  6. IRS — Cost of Goods Sold (Schedule C Guidance)irs.gov
  7. IRS — Reasonable Compensation for S Corporation Ownersirs.gov
  8. OSHA — Fall Protection in Construction (1926 Subpart M)osha.gov
  9. Insurance Institute for Business & Home Safety (IBHS) — Roofing Researchibhs.org
  10. NOAA National Weather Service — Storm Prediction Centerspc.noaa.gov
  11. Federal Trade Commission — Advertising and Marketing Basicsftc.gov
  12. International Code Council — International Residential Code (Roof Coverings)iccsafe.org
  13. U.S. Bureau of Labor Statistics — Quarterly Census of Employment and Wagesbls.gov
  14. RoofPredictroofpredict.com

Related Articles