How to track why customers turn down estimates?

By the Escloser team · Last updated

Write a reason on every estimate that ends: sold, declined, or they asked you to stop. Declined, dismissed, and archived are statuses. They are not the reason. Call until you hear a yes, a named no, or silence through day 14, then log that ending in the FSM so next month’s list can be counted.

This is the habit for a 2-to-10 truck HVAC, plumbing or electrical shop whose change-outs, water heaters, and panel upgrades go quiet after the estimate goes out.

What a logged no actually is

An unsold estimate is still open until someone sells it, dismisses it, or the customer approves it. Tracking why starts when the row leaves that list.

Ending What it means Log a reason?
Sold, approved, or Won They bought. Book the install Yes. What closed it
Contacted, thinking, spouse, or financing Still open No. Next date, not lost
They declined, hired someone else, or asked you to stop A real no Yes, the actual one
No answer through day 14 Ghosted Yes. Log no-answer, then close the file
Expired, then they call back New quote Pricing may have moved

On r/HVAC, shops still say most homeowners who go another way ghost you. Silence is not a no until you have asked. Split no-answer from a named no. That is the job.

Reasons a shop can actually count

Keep the list short enough that a CSR will pick one. Do not invent a share of the pile. There is no reliable public number for why replacement quotes die.

  • Price. They said the number was too high.
  • Hired someone else. They named another shop.
  • Different scope. Their other bid left out duct, permit, line-set, or the cracked heat exchanger. On r/HVAC, shops still open the cheaper quote and find half the work.
  • Spouse not home. Park it. Call when both can talk.
  • Financing. Send the payment options from the visit, then a date.
  • Repair instead of replace. Book the repair. Leave the change-out on file.
  • Not this season. A spring or fall date. New conversation then.
  • Asked us not to call. Honor it the same day. If they reply STOP, stop. The FCC (updated 2026-02-27) says telemarketers must comply immediately with a do-not-call request. This is not legal advice. Check with your own counsel.
  • No-answer. Five live attempts, then close it so the list stays real.

“Thinking” is a stall, not a reason. Ask what they are actually deciding, write that, and stay on the cadence until they say yes, no, or stop.

How each FSM records a declined or lost reason

Most field-service apps record the status of a no. Two can record a reason if you turn that piece on. Use only what that product’s own help publishes.

App Status of a no Where the reason lives
ServiceTitan Dismiss the estimate, or dismiss the whole opportunity Follow-up notes. No published reason field on dismiss
Jobber Archive the quote Optional lost reason on Sales Pipeline, or a quote custom field you build
Housecall Pro Decline / Pro Declined. Pipeline can auto-decline after Third Follow-Up Estimate tags. No published reason field
Workiz Declined (help also says Denied) Customer-picked reason in the new client portal, in Message Center

ServiceTitan. Follow up on opportunities (updated 2026-07-11) has two Dismiss buttons: one estimate, or the whole opportunity when they do not want more calls about this job. Write the reason in Log a follow-up. Roofing Follow Up help (updated 2026-09-27) lists log templates such as Customer Contacted - Waiting on Decision, and says you can create custom templates in Settings. The Opportunity and Estimate Follow Up report (updated 2026-07-10) has status and follow-up count, not a reason column. How to track unsold estimates in ServiceTitan is that list.

Jobber. Quote Basics (updated 2026-07-27) archives with More, then Archived. No reason is required. Sales Pipeline (updated 2026-09-25) is on Plus or as an add-on: Mark as Lost, then an optional lost reason. Jobber does not publish the reason list. The Sales Outcomes report columns it does publish are title, client, dates, and total. A quote custom field (updated 2026-03-30) set to a dropdown is the field you can report on. Auto-archive after a set number of days is a status change, not a reason.

Housecall Pro. On web, Approval (dated 2026-01-21), then Decline estimate, sets Pro Declined. You cannot decline from the mobile app. Pipeline (dated 2026-08-06) can decline after Third Follow-Up. Conversion reporting (dated 2026-07-09) counts Lost as declined estimates. Filter by estimate tags (dated 2026-07-16) on the option. Put the reason there if you want a report.

Workiz. This is the FSM that asks the customer. Understanding why estimates are being declined (updated 2025-03-07, read 2026-10-08) lists six portal choices on the new client portal: too expensive for my budget, found a better price or value, doesn’t align with my needs, timeline doesn’t work for me, personal circumstances, none of the above. That reason lands in Message Center. The old portal does not prompt for it. Marking Declined yourself does not run that picker. Status help (updated 2024-01-05) says Denied; the dashboard labels the bucket Declined. Tags cannot go on an estimate. How to follow up on estimates in Workiz is the Pending list.

Log it on the last call

Leave the FSM emails and texts on. How many times should a contractor follow up on an estimate? is five live phone attempts: same business hour, then days 2, 4, 7 and 14. How to follow up on HVAC estimates that haven’t closed has the scripts. This page is the note you write when the call ends.

Day 0 confirms the file arrived. Days 2 through 7 name the hold-up: spouse, second bid, financing, timing, or repair instead. Day 14 closes the file. “I’m closing out open estimates and wanted a last look at 18 Maple. If you went another direction, no problem. I just need to mark it so we stop calling.” Then pick one reason from the short list and dismiss, archive, or decline the row.

If they already gave you a date, park it and call then. If nobody answers, leave a short voicemail with your name, the shop, the address, and a callback number. Do not pitch into the mailbox. Do not drop the price on the phone.

What the FSM already captures

The field-service app wins the list, the status, and the reminder. Workiz wins the portal decline picker when the new client portal is on. A ghost never clicks a reason.

Job FSM A person on the phone
Builds the open list Yes Only if someone opens it
Marks declined, dismissed, or archived Yes, including auto-archive or auto-decline on a timer Yes, after they asked
Asks why, on a named field Workiz new portal. Jobber Sales Pipeline, optional Only if you write it
Answers what the visit included No Yes, from the estimator’s notes
Books the install If they approve in the portal Yes, while they are on the line

Keep the reminders on. Add the call, then the reason.

How to read last month

There is no reliable public number for how much a logged reason raises close rate. Score it from your own FSM.

Pull last month’s estimates. Count sent, still open, sold, and closed with a reason a stranger could report. Split no-answer from hired-someone-else. If “price” is the pile, open three of those other bids before you cut the price book. If no-answer is the pile, the reminders are sending and nobody is calling.

Four ways shops actually keep the log

1. Run the FSM as designed

Work Follow Up, quote reminders, Pipeline, or Pending every morning, highest dollar first. Close the row with a reason in the field that app actually has. Right answer when someone is at the desk. It breaks the first week the notes go blank.

2. The estimator logs it from the truck

Same-hour check-in from the person who wrote the quote, then the reason in the ticket before the next house. Best first call. It stops the afternoon they have three more.

3. Hire someone whose job is the list

Job posts from 2025 list a sales VA for estimate follow-up at about $700 a month and an estimator or lead converter at about $400 a month. You still hire, train them, and check that every no has a reason from the short list, not “thinking.”

4. Use software that builds the daily call list from open estimates

Leave the FSM in place. Pull open estimates onto a call cadence so the office, or a caller working as the shop, actually dials and writes the ending down. We make Escloser, which does this, so weigh that suggestion accordingly. Ask who is on the phone and whether every no gets a reason you can count.

How to tell this week

The log is working when yesterday’s unsold estimates have a same-day call, thinking and financing have a next date, lost jobs have one reason from the short list, and Friday’s open list is shorter than Monday’s. If the declined bucket only grows, the reminders are sending and the reasons are empty.

Open last month’s estimates in the FSM. Filter declined, dismissed, and archived. Count how many have a reason a stranger could report. Start with the blanks. They already exist.

Frequently asked questions

Does ServiceTitan or Jobber already record why a customer declined an estimate?

ServiceTitan dismisses the estimate or the opportunity. The reason lives in follow-up notes if you write it. Jobber archives a quote with no reason unless Sales Pipeline is on; then Mark as Lost lets you pick a lost reason, optional. The Sales Outcomes report does not list that reason as a column.

Should I mark an estimate lost if the homeowner never replies?

No. Ghosting is the usual ending, not a logged no. Call through the cadence. After day 14 with no answer, dismiss or archive it as no-answer so the office stops calling. If they come back later, send a new estimate. Pricing may have moved.

What reasons should I log when a customer turns down a quote?

Price, hired someone else, different scope, spouse, financing, repair instead of replace, not this season, asked us not to call, and no-answer after the cadence. Keep thinking as a parked status with a next date, not a lost reason. On r/HVAC, shops still find the cheaper bid was half the work.

Can I report on lost reasons in Housecall Pro or Workiz?

Housecall Pro reports Lost count as declined estimates and can filter by estimate tags, not by a built-in reason field. Tag the reason, then filter. Workiz can collect a customer-picked decline reason in the new client portal and show it in Message Center. Its default estimate reports group by status.

Related

Set up calls on your open quotes

Month-to-month. No card needed today. Privacy