Why your roofing backlog is worth more than you think (and how to find out)

Most roofing owners already know this on some level: somewhere in their job system there are hundreds of estimates that were quoted, sent, and never closed. A homeowner asked for a price on a full replacement, the crew was busy, the follow-up never happened, and the estimate aged out. The job might still be available. The homeowner might have gotten three quotes and is waiting for someone to call back. Or they might have already hired someone else. The problem is you have no way to tell which is which, and no ranked list of which ones are worth your office manager's time on a Monday morning.

That gap between "we have a backlog" and "we know exactly which rows in that backlog are worth chasing" is where most roofing businesses quietly lose jobs they already paid to acquire.

The real cost of an unsorted backlog

Every estimate in your AccuLynx, JobNimbus, or ServiceTitan account represents real acquisition spend. You paid for the lead, you paid a salesperson or yourself to go out and measure the roof, and you paid someone to write the proposal. When that estimate ages without a follow-up, none of that spend produced a job. The cost wasn't the follow-up you didn't do. The cost was the original acquisition.

The frustrating part isn't that roofing owners don't want to follow up on dormant estimates. It's that the raw export from any job-management system looks the same whether you have 40 recoverable opportunities or 400. A flat list sorted by date, with no signal about which rows have real dollar value attached, which contacts still have valid email addresses, and which estimates are old enough to be stale but recent enough to still be warm. Most owners look at that list, feel the friction, and either ignore it or hand it to an agency and hope for the best.

Why ranked matters more than complete

If you exported your unsold estimates today and sorted them by quoted amount, you'd have a better list than most roofing companies are working from. But quoted amount alone misses a lot. A $22,000 replacement quoted 18 months ago is probably less actionable than a $9,000 repair quoted six weeks ago. A contact with no email address on file is harder to reach than one with a phone and email both confirmed. And an estimate for an opportunity type your company closes at a high rate is worth more than one in a category where your conversion is historically low.

What you actually want is a score that accounts for all of those factors together, weighted against your own backlog, and expressed as an estimated recovery value with the math shown so you can audit why a specific row is ranked where it is. Not a black box. Not a confidence percentage with no explanation. A line-by-line breakdown that tells you: this estimate is in the top 10% of your backlog by quoted amount, it's 45 days old which puts it in the right dormancy window, and you have both an email and a phone number on file, so the estimated recovery is $2,100 at the Warm conversion rate of 12%.

That kind of ranked board is what turns a backlog export into something your office manager can actually work.

What a real follow-up workflow looks like

Once you have the board ranked, the mechanics are simple. Your office manager opens the queue, sees the top ten opportunities by estimated recovery value, reads the drafted first touch for each one (short email referencing the actual quote, a phone script with the job details pulled from the original estimate, and a text message under 300 characters), and either sends or copies. The whole queue takes about 20 minutes. Replies come back to your Gmail inbox because the outreach goes from your own address, not from a third-party service the homeowner has never heard of.

When a call back comes in and the job gets booked, you mark it in the board. When the invoice gets paid, you enter the invoice reference, the paid amount, and the paid date. That's the only thing that moves your verified recovered revenue number. Not a booked appointment. Not a conversation. A paid invoice with a reference number you can show your bookkeeper.

That distinction matters more than it might seem. A lot of services in this space report "pipeline generated" or "appointments booked" as the success metric. Those numbers are easy to inflate and hard to audit. The only number that actually tells you whether the software earned its fee is verified dollars recovered against what you paid for the tool, calculated as a multiple, using real Stripe invoices on one side and real paid invoice totals on the other.

Getting from export to ranked board

The practical starting point is a CSV export from your job system. Every major roofing platform, AccuLynx, JobNimbus, Jobber, Housecall Pro, ServiceTitan, has an estimate or opportunity export that takes about two minutes to pull. You don't need to clean it up or reformat it. You upload the file, confirm the column mapping (or let the system auto-detect it), and within a few seconds you have a ranked board of every dormant opportunity in your backlog, scored by realistic recovery value with the factors shown line by line.

From there you set your trade, your typical job value if some estimates are missing amounts, and your band conversion rates if the defaults don't match your historical close rate. Then you hit the queue.

Paidback is built specifically for this workflow. You can import up to 150 rows and see your full estimated recovery potential ranked on the free plan before you decide whether the paid tier makes sense for your volume. There's no onboarding call, no integration, and no consultant. If you can pull an export from your job system, you can have your backlog ranked in under two minutes.

The number your accountant actually cares about

At the end of the month, the question isn't how many estimates are in your backlog or how many conversations your follow-up sequence generated. The question is how many jobs came back and got paid. That's the number that justifies the time your office manager spent on the queue, and it's the number that tells you whether any tool you're using to work your backlog is earning its fee.

A ranked backlog and a 20-minute weekly queue won't close every dormant estimate. Some of them are genuinely gone. But the ones that are still available, the homeowner who got busy, the project that got delayed, the replacement that kept getting pushed to next season, those jobs are already in your system. You just need to know which ones they are.

Frequently asked questions

How many unsold estimates does the average roofing company have? Most independent roofing companies with more than a year of data in their job system have between 200 and 900 unsold or dormant estimates. The exact number depends on how aggressively they've cleaned their system, but the volume is almost always larger than owners expect when they actually pull the export.

What's a realistic recovery rate on dormant roofing estimates? This varies by dormancy window and opportunity type. Estimates in the 30 to 90-day range close at a meaningfully higher rate than estimates older than a year. A conservative assumption for estimates in the 30 to 120-day window is 10 to 25% conversion on ones you actually follow up on. The key word is "actually": most companies aren't following up at all, which means the baseline rate is close to zero regardless of the theoretical number.

Do I need to clean my CSV before uploading it? No. Most job-management exports have inconsistent formatting, missing fields, and money values written in different formats. Paidback handles all of that during import, flags rows it can't normalize, and gives you a downloadable summary of anything that was skipped and why.