STRUCTURE & ENVELOPE CLUSTER · CFOS TRADE OPERATING SYSTEM

WHY ROOFING CONTRACTORS LOSE MARGIN WITHOUT KNOWING IT.

QUICK ANSWER

Roofing margin is lost to three specific things: the carrier's calendar, material-first, paid-last, and the thin cushion. All three are measurable, and all three are invisible without job costing that reads against the estimate.

Roofing contractors at $1M to $5M net 6.5 percent on the SPM 48-trade dataset, rising to 9 percent by $25M to $50M; the CFOS target at $1M to $5M is 10 percent. The distance between the trade average and the CFOS target isn't a pricing problem in this trade. It sits in the three mechanisms below, each of which moves margin without appearing as a failure on any single job. Storm work pays on the insurance company's schedule, not the roofer's. ACV first, depreciation held to completion, supplements queued for weeks. The roofer finances the gap on every claim.

BY JOSH LUEBKERPublished 2026-08-06Updated 2026-08-06
THE THREE BIG LEAKS

THE MATH BEHIND THE MISSING CASH.

LEAK 01

The Carrier's Calendar

Storm work pays on the insurance company's schedule, not the roofer's. ACV first, depreciation held to completion, supplements queued for weeks. The roofer finances the gap on every claim.

LEAK 02

Material-First, Paid-Last

Suppliers collect at delivery, crews collect Friday, commercial receivables land at net-60 to net-90 with retainage. The cash conversion cycle runs backward from day one.

LEAK 03

The Thin Cushion

At 6.5 percent net for a $1M to $5M roofer, a single stalled claim or unmeasured indirect labor line erases the quarter. Margin this thin has no room for untracked cost. (cfos-job-profitability-system) ---

HOW CFOS FIXES IT

WHAT CHANGES IN THE FIRST 60 DAYS.

The insurance money trap (ACV now, depreciation later)
Material-first economics
Thin-cushion margins
The collection problem in plain words
Seasonality with 12-month overhead
ROOFING BENCHMARKS
Metric$1M to $5M$5M to $10M$10M to $25M
Gross margin, industry average22%23%24%
Gross margin, CFOS target24%24%24%
Net profit, industry average7%9%11%
Net profit, CFOS target10%11%12%
Overhead, industry average15%14%13%
Overhead, CFOS target14%13%12%

Industry figures are Roofing contractors' AVERAGE for each revenue band, not a floor. The CFOS net profit target is set at 10 percent before taxes or 3.5 points better than your trade's average at your revenue, whichever is higher, and the gross margin target is set at whatever gross margin produces that net profit once your overhead is paid, and never below your trade's own average. Gross minus overhead equals net on every column, so the rows tie out. The gross margin and overhead figures for this trade are derived from the nearest comparable trade in the same dataset, and were not measured directly.

Last 12 months revenueMonthly fee
Up to $1M$1,900 to $2,900
$1M to $3.5M$2,600 to $3,900
$3.5M to $6.5M$3,800 to $5,700
$6.5M to $9.5M$5,100 to $7,100
$9.5M to $12.5M$6,100 to $8,500
$12.5M to $15.5M$7,400 to $11,000
$15.5M to $18.5M$9,400 to $13,500
$18.5M+Quoted individually

Range reflects the three tiers below. Which one you're in depends on how much of the work you want off your desk. No payroll. No hidden line items.

Core

You stop guessing.

You get the CFO work. Job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a meeting every month that ends in decisions rather than a report.

Your bookkeeper keeps doing the books.

Executive

You stop touching the books.

Everything in Core, and we run the bookkeeping and the controllership as well. Nobody in your office is answering coding questions or chasing a reconciliation at month end.

We do the books. No payroll.

Strategic

Every job shows its margin while it's still running.

Everything in Executive, plus the job costing and WIP platform set up, loaded with your cost codes, and managed for you every month. You never have to learn it.

We do the job costing.

What's included
COMMON QUESTIONS

FREQUENTLY ASKED.

Roofing contractors at $1M to $5M net about 6.5 percent before taxes on the SPM 48-trade benchmark dataset, rising to 9 percent by $25M to $50M. CFMA's 2024 Construction Financial Benchmarker puts construction as a whole at 6.3 percent net income before taxes across all respondents, with the best-in-class top quartile at 11.9 percent, so a roofer at 6.5 percent is sitting in the middle of the market rather than ahead of it. SPM holds a 10 percent net profit floor before taxes whatever the trade, because below 10 the business stops paying for the payroll and the personal guarantees the owner signed. /construction-net-profit-margin-benchmarks carries the roofing figure at your revenue band.
Because storm work pays on the carrier's calendar. You front labor and materials, collect ACV first, and wait on depreciation and supplements while payroll clears every Friday. More storm jobs means more cash out before any of it returns. Growth widens the gap; it doesn't close it.
The first claim check pays actual cash value only. The recoverable depreciation is withheld until the job is complete and documented, and supplements can sit for weeks in an adjuster's queue. Every open claim is a receivable on someone else's schedule, so claims tracking belongs on the cash forecast, not in a file drawer.
It varies by revenue band, which is why the benchmark is tracked by band rather than as one number. Supervision, safety, warranty crews, and drive time sit between direct labor and overhead; unmeasured, they leak margin through the middle of the income statement. The SPM indirect labor benchmark page publishes the band-level reference.
Plan on net-60 to net-90 from the GC, with retainage held on top. Industry-wide, subcontractors average 56 days from pay application to payment. Bids that assume 30-day money on 90-day terms fund the difference out of the roofer's own account.
Enough to carry full overhead through the quiet months, and at least one month of payroll as a floor. Demand stops seasonally; trucks, insurance, and salaries don't. The strongest companies stockpile cash in the busy months on purpose, not by accident.
Sulphur Prairie Management, operating as The Construction CFO, publishes the 48-trade benchmark dataset these numbers come from. SPM's client work concentrates in 24 commercial subcontractor trades; roofing benchmarks are published as part of the full 48-trade reference so roofing owners can measure against real numbers. ---
CFOS serves commercial roofing subcontractors doing $1M to $12M. Pricing starts at $1,900 per month for companies under $1M and runs to $13,500 per month at the top published band. Onboarding takes 60 days.
Three tiers, and which one you are in depends on how much of the work you want off your desk. Core is where you stop guessing: job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a monthly meeting that ends in decisions, while your bookkeeper keeps doing the books. Executive is where you stop touching the books, because we run the bookkeeping and the controllership as well. Strategic is where every job shows its margin while it is still running, because the job costing and WIP platform is set up and managed for you. No payroll. No scope gaps.
Sixty days. We migrate your books back to the start of your last taxable year, set up ControlQore, and build your job costing structure from scratch. Fully operational in two months.
$10.7M+
Client AR Recovered Since 2023
48
Active Trade Specializations
60 DAYS
Average Onboarding Time
WHAT THIS TIES INTO
Josh Luebker, The Construction CFO
Josh Luebker
FRACTIONAL CFO · THE CONSTRUCTION CFO

Former commercial construction project manager and master electrician. Managed 150+ projects worth more than $2.1B combined, with individual jobs from $50,000 to $300M, including data centers, military bases, hospitals, and high-rises. Now fractional CFO for commercial subcontractors doing $1M to $12M through Sulphur Prairie Management.About Josh  | LinkedIn

DO YOU KNOW YOUR TRUE MARGIN ON ROOFING WORK?

Bring one job. We will show you the difference between what you bid and what it cost.

You don't hire a CFO because it's safe, you do it because the real risk isn't having one.
Book a 20 minute diagnostic

20 minutes. No sales pressure. We will tell you exactly what's broken before we talk about anything else.

OR START WITH THE WORKBOOKS. NO CALL NEEDED.