The numbers every roofing contractor should watch

Roofing runs on big tickets and thin room for error. A single job can be tens of thousands of dollars, most of it spent on materials and crew before you see a dime of profit. A job that bids healthy can come back break-even because material prices moved, or because the tear-off found rotten decking nobody could see from the driveway. The average ticket won’t warn you. The numbers below will.

So walk one roof from the first phone call to the last dollar collected. At each stage a number decides whether the job made money, and most of them straddle three systems: Jobber or Housecall Pro for the estimate, the crew and the job; QuickBooks for materials, invoices and the cash you’re owed; your ad platforms for what you spent to make the phone ring.

Before the crew rolls: what the lead cost, and what the bid returns

Two numbers decide whether a job is worth winning before anyone climbs a ladder. The first is cost per booked job: total marketing and lead spend divided by the jobs it actually booked, not the leads it generated. Roofing leads are expensive, whether it’s paid ads or canvassing a neighborhood after a storm, and not every call becomes a roof. Cost per lead flatters you; cost per booked job tells the truth. Here’s the honest part: when this number rises, the right move is almost never to blindly cut the channel. Treat it as diagnostic, a flag that says go review this, not go kill this. Acting on it would mean predicting which channel pays off next, and that’s your call to make. We dig into the number in cost per booked job.

The second is bid close rate, the share of your estimates that turn into signed jobs, paired with revenue per bid. Roofing is bid-heavy, and bids aren’t free: every estimate is a drive out, a measure-up, and a quote written up, win or lose. A close rate drifting down can mean pricing slipped out of line with the market, or follow-up that isn’t happening, and closing fewer but bigger jobs can beat closing more small ones. Both live where the estimate does, in Jobber or Housecall Pro, and both only mean something if every bid gets logged, because the ones that didn’t close are half the math. Spend lives in your ad platforms, so tying the two together is the only way cost per booked job means anything.

On the roof: where the margin actually goes

Once the job is won, margin per job is the number that matters, not average ticket. Roofing material is priced by the “square”, 100 square feet of roof, so a little price drift across a big job is real money. Average ticket hides it: a $25,000 job that netted well and a $25,000 money-loser carry the identical ticket. What you need is job costing, revenue on a single roof minus what it actually cost, materials, disposal, and crew or sub labor, set against what you bid. Eat a price increase after you bid, or hit decking you didn’t price from the driveway, and a healthy bid quietly becomes break-even.

The job, the crew’s time and what you billed sit in Jobber or Housecall Pro; materials, the dumpster and supplier invoices sit in QuickBooks. Neither tool shows you margin per job alone.

After sign-off: collecting slow insurance money

A finished roof isn’t a paid roof, and how you get paid depends on who’s paying. A retail re-roof is clean: finish, invoice, get paid, sometimes through financing. Insurance and storm work is different. It runs on the homeowner’s deductible, a carrier payout that often lands in pieces, supplements (extra scope you bill the carrier for after the adjuster’s first number comes up short), and slow adjuster cycles. The roof can be watertight while a big chunk of what you’re owed waits on a carrier, and one slow file crossing 60 days can squeeze a shop that’s profitable on paper. The fix is a steady rhythm, not a quarterly scramble. Here’s a simple system for overdue invoices.

Invoices, balances and due dates live in QuickBooks; the job type that tells retail from insurance lives in Jobber or Housecall Pro. AR is accounts receivable, the invoices still owed to you. Watch the aging by work type, not one big total, and you can tell a real collection problem from carriers just being carriers.

The callback that costs you twice

The last number lands after everyone’s gone home: the share of completed roofs that pull you back out, a callback for a leak or a workmanship issue after the job was signed off. A callback on a roof is margin you already earned, spent twice, a crew sent back up on labor you can’t bill. Worse, a roof that leaks is a roof the homeowner tells their neighbors about, and word of mouth is half of how roofing shops grow. A rising callback rate, or one crew called back twice as often as the rest, is both a margin problem and a quality signal worth catching early.

It lives in job records in Jobber or Housecall Pro. Look for callback or warranty flags, and tag the leaks so the pattern shows instead of hiding in one-off trips.

No one tool sees the whole roof

Trace it back: lead cost, bid close rate, margin per job, slow insurance AR, callbacks. Each stage straddles Jobber or Housecall Pro, QuickBooks, and your ad platforms, and none of it lives in one place. (Storm demand is lumpy too, so capacity, booked jobs against crew days, is worth a glance.) You don’t need a business-intelligence tool or an analyst to close that gap; you need the systems read together, on a fixed rhythm.

That’s why Guidepost exists. It reads the tools a roofing shop already uses and sends a short, plain-English digest of the few things worth your attention this week, each with its next step and its source. When an insurance invoice crosses 60 days, it says so plainly. When the honest answer is “look closer,” like moving lead budget between channels, it shows you the number and leaves the call to you.

If you’d rather have the gaps between these tools watched for you, get early access.

Written by Guidepost

Guidepost reads the numbers a home-service shop already has across its tools, then sends the few that need attention, each traced back to its source. The whole job is telling a real signal from noise: the line between a number worth acting on and one that’s only worth a closer look. More about Guidepost →

See it watch your numbers

Guidepost reads your Jobber, Housecall Pro, and QuickBooks numbers and tells you what needs attention, in plain English. Want to see the output first? Look at a sample digest.