How to pull and automate your ServiceTitan follow-up report
There is a built-in ServiceTitan report that shows you the money sitting in your unsold estimates, and most owners have never run it. It is called Opportunity and Estimate Follow Up, and it turns a pile of quoted-but-not-sold jobs into a list you can actually work.
This is a 10-minute setup you do once. Pull it, filter it down to what is still open, then set it to email itself to you on a schedule, and the money stops hiding.
Is this you? This is worth ten minutes if you quote far more than you close, if you have never seen the total dollar value of your open estimates, or if your follow-up happens only when someone remembers.
Jump to: why it matters · the three lanes · pull it · automate it · work it
The money is hiding in the silence
Every shop quotes more work than it closes. The unsold estimates do not disappear, they pile up, and the total is usually a number the owner has never seen.
Industry follow-up data is blunt about why. Most lost estimates are lost to silence, not to a real no. Studies of contractor follow-up find that the majority of sales happen after several touches, while most shops stop after one. On bigger jobs the drop-off is faster: on estimates over 5,000 dollars, a large share of shops stop chasing within about 72 hours, and the booked rate falls sharply after the first few days (follow-up response data from Hatch and Atlas Unchained; see Sources).
You cannot work what you cannot see. ServiceTitan already has the report that surfaces it. The only trick is pulling it, filtering it to what is still open, then setting it to come to you on its own.
What the report is really showing you: three lanes
The report gives every open estimate an Opportunity Status, and that status is the call you need to make. Three of those statuses are where the money lives, and each one needs a different move. This is the whole reason to pull it.
The three statuses, and what each one means:
- Not Attempted. Nobody has reached out to the customer yet. This is the pile that has had no contact at all, and it is usually bigger than the owner expects. Make the first call.
- Contacted. You reached them and there is no decision yet. They know you and they have the number, so this is a reconnect, not a re-sell. Clear whatever stalled it.
- Unreachable. You tried and could not connect. Assume the message did not land. Switch the channel and the time, and try again.
That first lane is the gut-punch. The Not Attempted pile is money you quoted and then went quiet on, and the report’s Number of Follow Ups column usually confirms it: on the accounts we read, it is almost always near zero. Those are not lost sales. They are quotes nobody worked.
To rank the list, sort by Estimates Subtotal and by status together: the biggest open money goes to the top of the call list.
Pull it, step by step
Do this on a computer. ServiceTitan reporting and export live in the office web app, and the phone will not get you to the filters or the export button. It is a sit-down task, not a truck task.
- Open the report. Go to Reports and click Opportunity and Estimate Follow Up. Type a few letters of the name in the search field to find it fast.
- Pick your Date Type. Open the Date Type dropdown and choose what the date range filters on: Follow Up Date to see who is due now, or Creation Date to sweep a backlog. (Sold On and Parent Completion Date are there too.)
- Set the date range. Use the From - To calendar, or pick a preset like Last 30 Days or Last 90 Days.
- Set Business Unit. It defaults to all business units. Leave it there to see everything.
- Run it. Click Run Report.
- Filter to what is open. Sort by Estimate Age and filter Opportunity Status to exclude Won and Dismissed, so you are left with only the estimates still in play.
- Export. Click Export, choose XLSX in the pop-up, and click Export. It downloads to your computer. (PDF is there too, but XLSX is the one you can work.)
The one thing to know: Save Changes and Export are different buttons. Save Changes keeps your filters and sort for next time; it does not download anything. Export is the button that downloads the file. If you only hit Save Changes, nothing lands and it feels broken when it is working fine.
The columns that matter
The report comes with its columns set. You cannot bolt on new ones, but you can sort, filter, and rearrange what is there, and four columns carry the whole job:
- Estimates Subtotal is the money on the table.
- Estimate Status tells you what is still open (Open, Sold, or Dismissed).
- Opportunity Status is the follow-up state: Not Attempted, Contacted, or Unreachable.
- Number of Follow Ups tells you whether anyone has actually worked it.
The report's full column set (16)
Each line is one estimate. These are the columns ServiceTitan includes:
Estimate Id, Parent Job Number, Opportunity Number, Estimates Subtotal, Customer Name, Business Unit, Opportunity Status, Estimate Age (Days), Follow Up Date, Number of Follow Ups, Last Follow Up Date, Estimate Status, Recommended, Sold By, Sold On, Estimate Created By.
Automate it: schedule it to your inbox
You can have ServiceTitan email this report to you on a schedule, so you stop pulling it by hand. Set it up once.
- On the All Reports screen, find the report and click the calendar icon. (Or open the report, click More, and select Schedule.)
- Choose a Flexible Report, so you keep your filters and columns and every recipient gets the same file. (A Simple Report sends each person only their own data, which is not what you want here.)
- Add details. Set an Email Subject, set Attach report as to XLSX, and pick a rolling Date Range such as Trailing 7 Days or Trailing 30 Days. Match it to how often you call. Click Next.
- Add recipients. Add yourself. Recipients have to be employees or technicians who have an email on their profile, so add the email there first if it is missing. Click Next.
- Set the cadence. Under Send report every, enter a number and a unit, like every 1 week, and pick a time. Add another day if you want it more than once. Arrange the columns and filters, then click Schedule.
Now the file lands in your inbox on its own, and the follow-up list never falls off the bottom of someone’s to-do. You can see and edit it later under Reports > Scheduled.
Verify it once before you rely on it. Open the first scheduled file and confirm the date range and the format are what you expect, since the schedule is a separate setup from the report you run by hand.
Optional: save a locked copy so nobody wipes your setup
If more than one person touches reports, duplicate the report into your own custom report (More, then Duplicate) and set its sharing to View Only for everyone else, so your filters and layout stay put. Protection comes from the sharing setting, not from renaming the report.
One caveat: saving a custom copy needs the Works or Legacy package. On Starter or Essentials you do not get to save a custom copy, so just run the built-in report each time. The built-in report itself runs and exports on every plan.
A note on the customer data in this file
This report identifies customers by name and links straight to their records. Treat the file as customer data. Whatever you use to read or work it, the safer setup keeps that data on your own machine rather than uploading your customer list somewhere. It is worth a thought before you email the file around the office.
What to do with what you found
Pulling the report is step one. The money comes from the routine you build on it:
- Run or receive the report on a set cadence, weekly at a minimum.
- Sort by status and by dollars. Biggest open money first: work the Not Attempted pile, then Contacted, then Unreachable.
- Make the call the status calls for. First call for Not Attempted, reconnect for Contacted, a new channel and time for Unreachable.
- Log the follow-up, so the Number of Follow Ups column actually means something and next week’s list is not the same names again.
That last step matters more than it looks. On the accounts we have read, the Number of Follow Ups column is almost always empty, which means the follow-up that does happen is not being logged, and nobody can tell what has been worked. A simple, repeatable loop beats a heroic one-time push every time.
Most of what makes a quoted job close after the visit is consistency, and consistency lives in a system, not in someone’s memory. That is the same idea behind how we build pricebooks as sales systems and how we present options instead of configuring them in the driveway: decide the routine once, then let it run. If you want to know whether the rest of your book is set up to hold a sale once you do get the callback, the free Pricebook Health Audit reads your export and shows you. And once the call goes well, the way you present good, better, best is what turns the callback into the ticket you quoted.
None of this needs a tool. The report and a phone are the whole game. The routine above is what closes the gap between the work you quoted and the work you booked.
If you would rather not build the sorting and the scripts by hand every week, that is exactly what Estimate Rescue does. Drop the same export in, see the recoverable number free, and get the open estimates turned into a prioritized, scripted stack of call sheets your team can work, sorted by where each one stands and the dollars on it. It runs in your browser, so your file never leaves your computer.
Common questions
Where is the unsold-estimates report in ServiceTitan? It is the built-in Opportunity and Estimate Follow Up report. Go to Reports and click it (type a few letters of the name to find it fast). Reporting and export live in the office web app, so use a computer, not the phone.
How do I export it? Set the Date Type and date range, click Run Report, sort and filter to what is open, then click Export and choose XLSX in the pop-up. Remember that Save Changes only saves your filters and sort; Export is the button that downloads the file.
Can I schedule it to email automatically? Yes. From All Reports, click the calendar icon on the report (or open it and use More, then Schedule), choose a Flexible Report, attach as XLSX, pick a rolling range like Trailing 7 Days, add yourself as a recipient, and set the cadence. Check the first one to confirm the range and format.
Why are so many of my estimates never sold? Most are lost to silence. The Opportunity Status column shows it: Not Attempted (no contact yet), Contacted (reached, no decision), and Unreachable (could not connect). The Number of Follow Ups column is usually near zero, which is a follow-up problem, not a lost-sale problem.
Do I need the Works package? No, not to run and export the built-in report. You only need Works or Legacy to duplicate it into your own custom report and lock it with View Only sharing.
Sources
- ServiceTitan, Opportunity and Estimate Follow Up report: help.servicetitan.com/docs/opportunity-and-estimate-follow-up-report
- ServiceTitan, Run, filter, and export reports: help.servicetitan.com/docs/run-report
- ServiceTitan, Schedule reports: help.servicetitan.com/docs/schedule-reports
- ServiceTitan, Built-in reports: help.servicetitan.com/docs/built-in-reports
- ServiceTitan, Create custom reports (Works or Legacy): help.servicetitan.com/docs/create-custom-reports
- Hatch, HVAC estimate follow-up response rates: usehatchapp.com/blog/hvac-estimate-follow-up-response-rates
- Atlas Unchained, Dead estimates and the follow-up stack for trades: atlasunchained.com/trades-contractors/dead-estimates-followup-stack-trades