September 23, 2026
Most home-service CRMs don't have a lead problem. They have a labeling problem.
Open yours and look at the statuses in use. You'll probably find some version of: New, Follow Up, Follow Up 2, Call Back, Pending, Maybe, Not Interested, Dead, and a handful of blanks. Ask three people in the office what "Follow Up" means and you'll get three answers. Ask who owns those records and when they were last touched and you'll get a shrug.
That's the real cost. Not the CRM subscription — the fact that nobody can look at the list and say with confidence "these 40 people still need work done and nobody has talked to them in five months."
Here's a pipeline that fixes it.
The rule for every stage: it describes what you did last, or what you're waiting on — never how you feel about the lead's chances. "Warm" and "maybe" are opinions. Opinions rot. Facts don't.
1. New — Uncontacted
The lead came in and no human has attempted contact. That's it. Not "we called once and left a voicemail." Zero attempts.
Exit criteria: first contact attempt logged. Time limit: same business day. If a lead sits in New overnight, that's a process failure worth naming out loud.
2. Attempted — No Response
You've reached out at least once and haven't gotten a human on the phone or a reply. This is the single most important stage to separate out, because these are not leads who said no. They're leads who said nothing.
Exit criteria: they respond (move forward), or you hit your attempt cap. Time limit: 7 days and a set number of attempts — pick a number, three to five, and hold everyone to it. After the cap, it moves to Cold.
3. Contacted — Qualifying
You've actually spoken. You're figuring out scope, timing, access, whether it's your kind of job.
Exit criteria: you know enough to quote, or you disqualify. Time limit: 3 days. If you can't get scope in three days, something is stuck and you should know what.
4. Estimate Scheduled
A visit or a virtual walkthrough is on the calendar with a date and time.
Exit criteria: the appointment happens, or it cancels/no-shows. Time limit: the appointment date. If it passes and nobody updated the record, your weekly hygiene check catches it.
5. Quoted — Awaiting Decision
Numbers are out the door. The ball is in their court.
Exit criteria: they accept, decline, or go quiet. Time limit: 14 days. After that they aren't "pending" — they're Cold. Pending is where deals go to be forgotten forever.
6. Won
Job sold and scheduled. Separate status from "job completed," which your scheduling side already tracks.
7. Cold / Reactivation
Everything that fell out of stages 2 through 5 without a clear "no." This is the bucket that matters, and the reason to be strict about the others.
Notice what's missing: there's no "Dead." There's exactly one true-negative status and it's a separate field, not a stage — a Disqualified flag for leads you genuinely don't want or can't serve: outside your service area, wrong trade, already hired someone and the work is finished, asked you not to contact them again, or bad contact data. That last one should be its own reason code so you can try to fix it.
Everything else — didn't answer, price shopped, "call me in spring," quoted and went silent — is Cold, not dead. Cold is a list. Dead is a delete.
Whether you're in ServiceTitan, Housecall Pro, Jobber, or a spreadsheet, the same three conventions hold up:
Prefix stages with numbers. 1-New, 2-Attempted, 3-Qualifying, 4-Estimate Scheduled, 5-Quoted, 6-Won, 7-Cold. Dropdowns sort alphabetically and this forces them into pipeline order. It also makes it obvious when somebody invents an eighth status.
Keep reasons in a separate field from stage. Stage answers "where is this?" Reason answers "why?" Cramming both into one dropdown is how you end up with eleven variations of follow-up. Use a short Reason list: No Answer, Price, Timing, Chose Competitor, Out of Area, Wrong Trade, Bad Contact Info, Do Not Contact.
Tag the source and the trade, always. When you go to reactivate, you'll want to message the 2023 roof inspections differently than the water heater quotes. If source and job type live in tags, segmenting takes two minutes. If they live in a notes field, it takes an afternoon.
One more field worth adding: Last Contact Date, updated automatically if your system supports it. Age in stage is the metric that exposes everything else.
You don't need to fix history. You need to make the current list usable.
Minutes 0–5. Export or filter everything that isn't Won or Disqualified. Sort by last activity date, oldest first.
Minutes 5–15. Bulk-move anything with no activity in 60+ days to 7-Cold. All of it. Don't evaluate case by case — you'll burn the whole half hour on the first twelve records. If it's been quiet two months, it's cold by definition, and cold is recoverable.
Minutes 15–25. Now work the recent stuff, the last 60 days. These are the live ones. Put each into the correct numbered stage based on the last thing that actually happened. If you can't tell from the record, it goes to 2-Attempted and someone calls it.
Minutes 25–30. Delete your old statuses from the dropdown, or rename them so nobody can pick them. If "Follow Up" still exists as an option, it will be used by Thursday.
Give this to whoever runs the office. Same day, same time, every week.
1-New older than one day. Should be empty. If not, find out why.2-Attempted past the attempt cap. Move to Cold.4-Estimate Scheduled with a date in the past. Update to Quoted, rescheduled, or Cold.5-Quoted older than 14 days. One last touch, then Cold.Ten minutes. The point isn't tidiness — it's that at the end of it, the Cold bucket is accurate, and an accurate Cold bucket is an asset instead of a landfill.
Imagine a shop that's been running two years with no status discipline. After cleanup they find a few hundred records in Cold, most tagged No Answer or Price. Those aren't rejections. A chunk of them are people who never got a call back, and another chunk got a quote they didn't love and then never heard from anyone again. Nobody knows which is which until someone asks.
That's the whole reason to do the hygiene work. Once the Cold list is clean, tagged by trade and source, and you trust it, re-engaging it is a small job — a short email or text to each segment asking whether the work ever got done. RescueLead is built for exactly that step: taking the pile you just organized and working it with email and SMS so the ones who are still live can raise their hand.
RescueLead re-engages them automatically by email and text, so you find out which ones are still worth a callback.
Start your free trial