How to follow up on unsold roofing estimates from your job system

Most roofing companies have a version of the same problem: somewhere in their job management system there are hundreds of estimates that were sent out, got a polite "we're still thinking about it," and then never moved forward. Nobody closed the loop, the season got busy, and the row has been sitting there ever since.

The challenge isn't identifying that the problem exists. It's knowing which of those rows are worth spending time on, and then actually doing something consistent about it week to week.

This guide walks through how to pull those estimates from your system, sort them by what they're realistically worth, and work through the list in a way that produces measurable results.

Step 1: Pull the right export from your job system

Every major roofing job management platform can export estimate data to CSV. Here's where to find it in the systems most roofing companies use.

AccuLynx: Go to the Estimates section, filter for estimates with a status of "Presented" or "Sent" over the date range you want to review, typically the last 12 to 18 months. Use the export button to download as CSV. Include customer name, email, phone, estimate amount, and estimate date.

JobNimbus: Navigate to Jobs or Contacts, apply a filter for your estimate stage (often "Estimate Sent" or "Proposal"), and export to CSV. Make sure the export includes the estimated revenue column and the last activity date.

Housecall Pro: Go to the Estimates tab, filter by status ("Awaiting Response" or similar), set the date range, and export. Housecall Pro's export includes customer contact details and the estimate total by default.

ServiceTitan: Run a report from the Reporting section. Look for the Estimates report and filter for open or declined estimates. Export to CSV and include the customer name, job type, estimate total, and create date.

Jobber: Navigate to Quotes, filter for status ("Sent" or "Awaiting Response"), set a date range, and use the Export option. Jobber's default quote export includes client name, email, phone, quote total, and created date.

For any of these, aim for estimates from the last 6 to 18 months. Estimates older than 18 months close at much lower rates and aren't usually worth prioritizing in a first pass.

Step 2: Score the list before you work it

Once you have the CSV, the instinct is to sort by dollar amount and start calling from the top. That's better than nothing, but it misses several factors that predict whether a call is going to go anywhere.

A $20,000 estimate that has been sitting for 14 months is less likely to convert than a $12,000 estimate from 6 weeks ago where the customer's email address is valid and the job description suggests they were comparing options rather than putting it off entirely. Sorting by amount alone will put you on calls that go nowhere while skipping the ones that are actually warm.

The factors that matter for ranking are: the estimated value relative to your own backlog (so your typical job size becomes the baseline), the age of the estimate and where it sits within the window of highest conversion probability, whether the contact has a working email and phone number, and the type of opportunity (a declined estimate is different from one that just never got a response).

You can build a spreadsheet to do this, but it takes time to set up and doesn't update itself when you add new rows. A faster path is to drop the CSV into Paidback, which reads the file, maps your columns automatically for standard exports from AccuLynx, Jobber, Housecall Pro, ServiceTitan, and JobNimbus, and returns a ranked board with each estimate scored and the scoring factors shown line by line. The free plan handles one import of up to 150 rows and shows you the full board, no card required.

Step 3: Work the top ten first

Once you have a ranked list, resist the temptation to work through the whole thing at once. A list of 200 estimates is paralyzing. Ten estimates is a morning.

For each of the top ten, you need three things ready before you reach out: a short email that references the actual job and quote, a phone script that isn't generic, and a text message for the ones where calling isn't going to be the right first touch. The message should include the customer's name, what the job was, what you quoted, and approximately how long ago it was. Something like: "Hi Sarah, we quoted you a roof replacement back in April for around $13,500. Just wanted to check in and see if you were still thinking about moving forward this season."

That's a fundamentally different message than "Hi, following up on your estimate." The first one shows you know who they are and what you talked about. The second one is easy to ignore.

Paidback drafts all three artifacts for each opportunity from the actual row data before you reach out, so you're not writing from scratch. Each draft is editable and your edits are saved as the version that was actually sent.

Step 4: Track what happens after you reach out

The follow-up process only improves if you're tracking what works. At minimum, you need to know for each opportunity: when you reached out, which channel you used, whether you got a response, and whether it converted to a booked and paid job.

This doesn't have to be complicated. A status field with values like contacted, responded, booked, and lost, plus the date of each change, is enough to see patterns over time. Which estimates in the 30-to-60-day window responded at higher rates? Which outreach channels worked better for your customer base? What's your actual conversion rate on followed-up estimates versus estimates you never touched?

If you're using Paidback, every action you take on an opportunity, whether you sent an email, copied a phone script, or marked it booked, is logged automatically. When a job converts, you record the invoice reference, the paid amount, and the paid date, and that job enters your verified revenue ledger. The ROI calculation at the bottom of the ledger compares verified recovered revenue to what you've paid for the software since you signed up. You can see whether the process is paying for itself at any point.

Step 5: Build it into the weekly routine

The roofing companies that consistently recover revenue from dormant estimates aren't doing anything heroic. They have a 20-minute block on Monday morning where the office manager opens the queue, works through the top ten, and marks what happened. That's it.

The estimates that get booked this week show up in the ledger. The ones that aren't ready yet get snoozed and come back in two or three weeks. The ones that are clearly dead get marked as do-not-contact and fall off the board. The queue refreshes with the next ten.

Over a few months, the backlog gets smaller and cleaner. The win rate on followed-up estimates becomes measurable. And the verified recovered revenue number gives you something concrete to evaluate whether the process is worth continuing.

FAQ

How far back should I go when exporting estimates? For a first pass, 6 to 18 months is a practical range. Estimates under 6 months may still be in active follow-up. Estimates older than 18 months have a low conversion rate and are better to exclude unless there's a specific reason to include them, like a very large quoted amount or a customer you have an existing relationship with.

What if my CSV has missing contact information? Rows with no email address and no phone number are essentially unworkable for outreach purposes. Paidback skips these rows and includes them in a downloadable summary with a reason column, so you can see what was left out without losing the data. Rows with at least one contact method are included.

How do I know if my follow-up is actually working? Track your conversion rate on followed-up estimates versus estimates you never touched. If followed-up estimates close at even 5 to 10%, that's meaningful revenue recovery against zero additional lead acquisition cost. The verified revenue ledger in Paidback makes this calculation automatic once you confirm paid invoices.

What's the right cadence for follow-up? For most dormant estimates, one outreach attempt per channel over two to three weeks is enough to know whether someone is interested. A first email, a follow-up call a few days later, and a text if you have no response after a week covers the majority of recoverable opportunities without being aggressive enough to damage the relationship.