ROOFING ยท JOB COSTING SOFTWARE

CONTROLQORE FOR ROOFING CONTRACTORS.

Generic accounting software can't read cost per roofing phase against the bid, carry an open claim from ACV through recoverable depreciation, or price the workers comp burden into every hour worked on the roof. ControlQore can.

QUICK ANSWER

ControlQore for roofing contractors uses cost codes by roofing phase, meaning tear-off, dry-in and underlayment, shingle or membrane install, metal and flashing detail, and warranty callback work, so actual cost per phase is compared to the estimated cost weekly. Indirect labor, meaning supervision, safety, warranty crews, and drive time, carries its own cost codes instead of being absorbed into overhead. Every open insurance claim is tracked by stage: ACV received, recoverable depreciation outstanding, and supplements pending. The WIP schedule is produced monthly from cost-to-cost percentage complete.

The difference isn't the report list. It's when you find out. A roofing P&L tells you the month was good or it wasn't, and by then the crew is on the next building and the claim is still open. Cost codes built by roofing phase turn the same hours into a cost per phase you can read in week two against what you bid, and every open claim carries its own stage instead of sitting in a file drawer. Roofing contractors at $1M to $5M net 6.5 percent before taxes on the SPM 48-trade benchmark, and the CFOS target at that band is 10 percent. A cushion that thin can't absorb a cost code nobody is reading.

BY JOSH LUEBKERPublished 2026-08-08Updated 2026-08-08
WHAT IT SEES

THE NUMBERS GENERIC SOFTWARE MISSES.

By Phase
Cost Code Structure for Roofing Work
Weekly
Cost Per Phase vs. Estimated Cost
By Claim
ACV, Depreciation, and Supplements Open
Monthly
WIP Schedule From Actual Data
THE DEFINITION

WHAT IT IS.

ControlQore is a job costing and WIP platform for contractors that tracks cost by job and cost code, so a roofing subcontractor can read actual cost per roofing phase against the estimated cost every week while the roof is still open.

The cost code structure is the whole system. Cost codes built to match the roofing estimate produce a direct actual against estimated comparison by phase, every week the job is open. Cost codes built from a generic template produce one labor total per job, and one labor total per job on a roof is four different jobs added together: demolition, dry-in, install, and detail work, each with its own production math and its own crew.

WHAT YOU ARE DEALING WITH

WHERE IT GOES WRONG.

01

No Cost Per Phase Visibility

QuickBooks job tracking shows total labor cost by job. Tear-off, dry-in, install, and flashing detail all post into that one total, and each of the four runs at a different crew size and a different production rate. ControlQore shows actual cost per phase against the estimated cost weekly, so a phase running hot is visible in week two while there's still time to change crew size, change the method, or open a change order conversation. At closeout the hours are already spent.

02

The Carrier's Calendar Is Not on the Books

Storm work pays on the insurance company's schedule. The first check covers actual cash value only, recoverable depreciation is withheld until the job is complete and documented, and supplements can sit in an adjuster's queue for weeks. When open claims live in a folder instead of on the cash forecast, the roofer is financing the difference on every one of them without knowing how much that comes to this month.

03

Material Paid Before the First Receivable

Roofing is material intensive, and suppliers collect at or before delivery. Crews get paid Friday. Commercial pay applications come back at net-60 to net-90 with retainage held on top, and subcontractors wait 56 days on average after submitting a pay application per Billd's 2025 State of Subcontractor Payments. The supplier bill and the payroll both clear before the first receivable does, so more work means more cash out before any of it returns.

04

Indirect Labor Absorbed Into Overhead

Supervision, safety, warranty crews, and drive time sit between direct labor and overhead, and when they aren't coded they leave through the middle of the income statement. Workers comp is among the highest rates in construction for this trade, so an hour priced at base wage underprices every hour worked. The SPM benchmark puts roofing overhead at 15 percent at $1M to $5M, a figure derived from the nearest comparable trade rather than measured on roofing books, and a bid built on base wage alone never recovers it.

05

Warranty Callbacks With Nothing Reserved

Callback and repair work is a real cost line most roofers never accrue. The crew hours get spent in a later year against revenue recognized long ago, so every callback is taken out of the current month's margin instead of the job that sold it. At 6.5 percent net before taxes, a season of unreserved callbacks is the whole cushion.

HOW SPM SETS IT UP

WHAT WE BUILD.

Cost Codes by Roofing Phase in ControlQore

SPM builds ControlQore cost codes for roofing clients by phase: mobilization, tear-off and disposal, dry-in and underlayment, shingle or membrane install, metal and flashing detail, and warranty callback work. Labor, material, and equipment post to the correct phase, and each phase code points at the corresponding line in the roofing estimate. That's what makes the actual against estimated comparison a report rather than a reconciliation exercise. Variance over 10% for two consecutive weeks triggers a review while the job is still open.

Claim Stages on the Cash Forecast, Not in a Folder

Every open claim is carried as a receivable with a stage attached: ACV received, recoverable depreciation outstanding pending documented completion, and supplements submitted and pending. Those stages feed the 13 week cash flow forecast, so the money you're waiting on is dated rather than assumed. The documentation the carrier will ask for is collected as the phases close, which is what releases depreciation instead of delaying it.

Indirect Labor and Burden on Their Own Codes

Supervision, safety, warranty crews, and drive time get their own cost codes rather than disappearing into overhead or into direct labor. Workers comp and the rest of the burden are priced per hour and posted per hour, so the cost of an hour on the roof is the cost of an hour on the roof. Two things come out of that. The estimate gets calibrated against a burdened rate that held up, and the overhead recovery rate in the bid is measured against what the company spends instead of a number someone picked years ago.

Warranty Reserve Accrued Per Job

SPM sets a warranty reserve on every roofing job at booking, sized from tracked callback history by system type. The reserve is a cost of the job that sold it, so a callback in year three hits the accrual rather than the current month. Over a few years the accrual stops being an estimate and becomes a number the callback history supports.

Monthly WIP From Phase-Level Job Costing

The WIP schedule for roofing clients is produced monthly from cost-to-cost percentage complete by job. Underbilled positions, meaning work performed but not yet billed, are visible immediately and trigger a corrected pay application. Overbilled positions, meaning billed ahead of the work performed, flag jobs where billing has outrun progress, which is how a busy season turns into a cash hole in a quiet one. Full overhead bills all 12 months whether the phone rings or not, and the forecast is built that way.

$10.7M+
Client AR Recovered Since 2023
48
Active Trade Specializations
60 DAYS
Average Onboarding Time
PRICING

FLAT MONTHLY FEE. NO SOFTWARE INVOICE.

Three tiers, priced by your trailing twelve month revenue. ControlQore comes with Strategic, and it never appears as its own line item on an SPM invoice. Which tier you're in depends on how much of the work you want off your desk.

Pricing

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.

COMMON QUESTIONS

FREQUENTLY ASKED.

SPM builds phase cost codes in ControlQore that match the roofing estimate: tear-off, dry-in and underlayment, install, metal and flashing detail, and warranty work. Foremen post hours and material to the phase they worked at the end of each day. ControlQore burdens those hours and reports actual cost per phase against the estimated cost every week, so you read the variance in week two rather than at closeout.
Each open claim carries its stage as a job attribute: ACV received, recoverable depreciation outstanding, and supplements submitted and pending. Those balances feed the 13 week cash flow forecast, so an open claim is a dated receivable rather than a hope. Because recoverable depreciation is released against documented completion, the documentation is collected as phases close instead of assembled after the fact.
Because supervision, safety, warranty crews, and drive time are neither direct labor nor rent. Left uncoded they blend into one number and the bid underprices them on every job. Coded separately, they get measured against revenue at your band, priced into the burdened hour, and recovered in the estimate. Roofing carries some of the highest workers comp rates in construction, which makes the burdened hour the number that decides the job.
60 days from engagement start to live job costing with WIP reporting. The roofing-specific work is the phase cost code build, claim stage tracking for storm work, indirect labor and burden codes, warranty reserve sizing, and the historical data migration out of QuickBooks. Most roofing clients are fully operational in ControlQore within 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.
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

WANT TO SEE THIS ON YOUR OWN ROOFING JOBS?

Bring one open roofing job and your last full year. We will show you what the cost codes would look like and where the current numbers are wrong before we talk about working together.

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.