CFOS for QuickBooks, coming January 2027Join the waitlist: 12 months with no subscription fee
ROOFING · JOB COSTING SOFTWARE

CONTROLQORE FOR ROOFING CONTRACTORS.

Generic accounting software can't read cost per roofing phase against the bid, track 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: tear-off, dry-in and underlayment, shingle or membrane install, metal and flashing detail, and warranty callback work. Actual cost per phase is compared to the estimated cost weekly. Indirect labor, meaning supervision, safety, warranty crews and drive time, gets its own cost codes and stays out of 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.

What changes is when you find out. A roofing P&L tells you the month was good or it wasn't. 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. Every open claim gets its own stage, out of the file drawer. Roofing contractors at $1M to $5M net 7 percent before taxes on the SPM 48-trade benchmark, and the CFOS target at that band is 10.5 percent before taxes. A cushion that thin can't absorb a cost code nobody is reading.

BY JOSH LUEBKERPublished 2026-08-08Updated 2026-11-02
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 codes are the whole system. Cost codes built to match the roofing estimate give you actual against estimated by phase, every week the job is open. Cost codes from a generic template give you one labor total per job. On a roof, that one total is four different jobs added together: demolition, dry-in, install and detail work. Each has 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 has a different crew size and a different production rate. ControlQore shows actual cost per phase against the estimated cost weekly, so a phase over its estimate 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. Supplements can wait in an adjuster's queue for weeks. When open claims are in a folder and not on the cash forecast, you're 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 reported waiting an average of 51 days for payment, per Billd's 2026 National Subcontractor Market Report. 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 travel time fall between direct labor and overhead. When they aren't coded, they get lost in the middle of the income statement. Workers comp for this trade is among the highest rates in construction, so an hour priced at base wage underprices every hour worked. The SPM 48-trade dataset puts roofing overhead at 15 percent at $1M to $5M, a figure derived from the nearest comparable trade and not measured on roofing books. A bid built on base wage alone never recovers it.

05

Warranty Callbacks With Nothing Reserved

Callback and repair work is a real cost most roofers never accrue. The crew hours get spent in a later year against revenue booked long ago. So every callback is charged to the current month's margin, and the job that sold it never pays for it. At 7 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. Each phase code matches a line in the roofing estimate. So actual against estimated is a report you read, with nothing to reconcile. Variance over 10% for two weeks in a row triggers a review while the job is still open.

Put Claim Stages on the Cash Forecast

Every open claim is tracked as a receivable with a stage: ACV received, recoverable depreciation outstanding pending documented completion, and supplements submitted and pending. Those stages go into the 13 week cash flow forecast, so the money you're waiting on has a date. The documentation the carrier will ask for is collected as the phases close. That's what gets the depreciation released sooner.

Indirect Labor and Burden on Their Own Codes

Supervision, safety, warranty crews and drive time get their own cost codes. They don't disappear into overhead or direct labor. Workers comp and the rest of the burden are priced per hour and posted per hour, so an hour on the roof costs what it really costs. You get two things out of that. The estimate is calibrated against a burdened rate that held up. And the overhead recovery rate in the bid is checked against what the company spends, and not 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. A callback in year three is charged to the accrual, and the current month stays clean. After a few years, the accrual is backed by your own callback history.

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 Platinum, 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.

Built for subs doing $1M to $12M. Above $12.5M we quote.

Last 12 months revenueCoreStrategicPlatinumOne-time onboarding
Under $1M$1,900$3,100$3,300$2,500
$1M to $3.5M$2,600$4,100$5,300$4,500
$3.5M to $6.5M$3,800$5,900$8,300$6,000
$6.5M to $9.5M$5,100$7,600$11,800$7,500
$9.5M to $12.5M$6,100$8,900$14,900$9,000
Above $12.5MQuotedQuotedQuotedQuoted

The onboarding fee covers migrating your books back to the start of your last taxable year and getting you fully operational in 60 days. It's billed once, with your first invoice. It's the same for all three tiers, and it moves with your revenue band. Your first month is prorated, and your monthly engagement starts on the first of the first full month.

Just want the setup? Onboarding only is the same onboarding work with no monthly service after it, one time, at the onboarding fee plus $2,000. Start a monthly engagement later and $2,000 counts toward it. It starts at $4,500, and the price for every band is on the pricing page.

The three tier columns are the whole price. Which one fits depends on how much of the work you want off your desk. No payroll. No hidden line items. The onboarding fee is right here in the table.

  • Online software only: QuickBooks, Sage, Viewpoint and similar. No VPN or hosted desktop.
  • Not in any tier: payroll, pay applications, collections on receivables.
  • Pricing valid through 2027.
Core

CFO work. Your own bookkeeper keeps doing the books.

We build your plan every month. Your team does the work.

You get the CFO work: job costing built to match the way you estimate, a 13 week cash forecast, WIP every month, and a monthly meeting that ends with decisions.

Your bookkeeper still does the books.

Strategic

Core, plus bookkeeping and bank reconciliations, plus job costing and WIP software set up and managed for you. Use your own online accounting software or we supply it, one price.

We build the plan, track it and adjust it every month.

We only work with trade subcontractors. We know what to look for, and we fix problems while they're still small. Everything in Core, plus the bookkeeping and bank reconciliations done for you, and the job costing and WIP software set up, loaded with your cost codes, and managed every month. Use your own online software, or move to ours and we pay for it.

Our team does the bookkeeping and the reconciliations. We don't do payroll.

Platinum

Strategic, plus a controller who handles payables and receivables the way an in-house controller would. You approve every payment.

We manage the money side for you, every week.

Everything in Strategic, plus our team does the controller work. We handle your bills and receivables the way an in-house controller would: we call vendors, pay the bills and keep the accounting current. We plan the cash flow first, and you approve every payment because it is your money.

Our team does the payables and receivables. We don't do payroll, pay applications or collections.

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. You read the variance in week two.

Each open claim has its stage as a job attribute: ACV received, recoverable depreciation outstanding, and supplements submitted and pending. Those balances go into the 13 week cash flow forecast, so an open claim is a receivable with a date on it. Recoverable depreciation is released against documented completion, so the documentation is collected as phases close.

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 has 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. On Core we build your plan every month and your team does the work: 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. On Strategic we build the plan, track it and adjust it every month: our team does the bookkeeping and the bank reconciliations, and the job costing and WIP software is set up and managed for you, on your own online software or ours. On Platinum we manage the money side for you every week: our team handles your bills and receivables the way an in-house controller would, and you approve every payment. We don't do payroll.
WHAT THIS TIES INTO
Josh Luebker, SPM The Construction CFO
Josh Luebker
FRACTIONAL CFO · SPM THE CONSTRUCTION CFO

Josh Luebker is a master electrician turned construction CFO, president of SPM The Construction CFO and author of CONTROL: C.F.O.S. Construction Financial Operating System.

WANT TO SEE THIS ON YOUR OWN ROOFING JOBS?

Twenty minutes of questions about how your roofing work gets coded today, who does the coding, and what your last closed job reported. Josh won't pitch you or send a proposal. If Josh can help, you'll set a longer second call.

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 call

20 minutes. No pitch or proposal. Josh asks questions to find out if he can help.

OR START WITH THE WORKBOOKS. NO CALL NEEDED.