← All posts
Lead revivalFollow-up cadenceApril 28, 2026Clint Research Team

The Math: Every Dormant Customer Is Worth $X (Here's How to Calculate Yours)

Bain found a 5% retention lift drives 25-95% profit growth. ServiceTitan's 2025 data shows repeat customers convert 3-5x cheaper than cold acquisition. Here's the formula to calculate exactly what each dormant customer in your CRM is worth and which segment to chase first.

10 min read

Key takeaways

  • Bain & Company / Frederick Reichheld research found a 5% lift in customer retention drives a 25% to 95% increase in profitability across service businesses
  • Acquiring a new customer costs 5x more than retaining an existing one per Harvard Business Review and Bain benchmarking
  • The dormant customer formula is dormant count × average revenue per repeat job × repeat probability × gross margin, and most contractors find $200K-$1M of recoverable lifetime value sitting in the CRM
Contents
  1. 01The Formula
  2. 02Input 1: Dormant Customer Count (D)
  3. 03Input 2: Average Revenue Per Repeat Job (R)
  4. 04Input 3: Repeat Probability on Activation (P)
  5. 05Input 4: Gross Margin (M)
  6. 06Worked Example: $5M HVAC Shop
  7. 07Why Most Contractors Do Not Run This Math
  8. 08Sources
  9. 09Frequently Asked Questions

Dormant customer count × average revenue per repeat job × repeat probability × gross margin = recoverable revenue. That is the formula. Most $1M-$10M contractors plug their numbers in and find $200K to $1M sitting in their CRM that nobody is working.

The math is not new. Bain & Company and Frederick Reichheld's retention research showed a 5% lift in retention drives a 25-95% increase in profit. Harvard Business Review reported acquiring a new customer costs 5-25x more than retaining an existing one. ServiceTitan's 2025 AI in the Trades Report put the contractor-specific number at 3-5x cheaper to convert a repeat customer than a cold one. Every benchmark points the same way.

Most contractors do not run the math. They keep buying Google Ads at $87 a click while $400K of dormant lifetime value sits one query away in Housecall Pro. This is the calculator, the inputs, and the sources that justify each one.

The Formula

Recoverable revenue = D × R × P × M

Where:
D = Dormant customer count
R = Average revenue per repeat job (last 24 months)
P = Repeat probability on activation (typically 8-18% per Hatch/Pete & Gabi)
M = Gross margin (typically 35-55% for residential service)

Plug in real numbers. A 5-year-old HVAC shop with 3,200 lifetime customers, 45% dormant by 18-month definition (1,440 customers), $1,800 average repeat ticket, 12% recovery rate on a real reactivation campaign, 42% margin:

1,440 × $1,800 × 12% × 42% = $130,636 in recovered gross profit per campaign

Run that quarterly and it is $522K annually. From a list that already exists. The reason most contractors do not see this number is they have never pulled D, R, or P from their actual CRM. The numbers are not in the dashboard. They are in the data.

Text Clint: "what is my dormant customer count by last-job-date bucket: 12-18 months, 18-24, 24-36, 36+?"

Input 1: Dormant Customer Count (D)

Dormant means no completed job, no paid invoice, no confirmed reply in the last N months. The standard cutoff is 18 months for most residential service trades. Plumbing emergency-only customers can stretch to 24 months because the work is incident-driven. HVAC and lawn care should be tighter at 12-15 months because the service is seasonal and recurring.

For a typical $1M-$10M contractor with 5+ years of operating history, dormant counts run 30-50% of total customer records. Anything under 25% means your CRM definition of "active" is too loose, usually because notes or email opens are inflating the active list. Anything over 60% means the business has not been retaining well or the CRM has lots of one-and-done emergency work.

ServiceTitan's 2025 contractor benchmarks put repeat customer rates at 14-22% for residential HVAC, 9-15% for plumbing, 18-26% for lawn and pest, and 6-11% for roofing on a 24-month window. The reciprocal of those rates is your dormancy ceiling. If only 18% of your customers come back inside 24 months, 82% are by definition dormant unless you do something about it.

The dormant count alone is the diagnostic. If you do not know D within 10% accuracy, you do not know how big the recoverable revenue pile is.

Text Clint: "what percent of my total customer base has had no completed job, paid invoice, or confirmed reply in the last 18 months?"

Input 2: Average Revenue Per Repeat Job (R)

R is the average ticket on a repeat customer's next job. It is almost always different from your overall average ticket because repeat customers buy different things than first-timers.

First-time HVAC customers usually buy a service call ($180-$350). Repeat HVAC customers buy maintenance plans, upgrades, and replacements ($1,200-$8,000+). The repeat ticket is 4-15x larger because the customer trusts you for bigger work.

Pull the last 24 months of completed jobs. Filter to customers who appear at least twice. Take the average revenue of every job after the first. That is R, and it is the only number that matters for the dormant calculation, because dormant customers are by definition repeat-eligible, not first-timers.

Tommy Mello of A1 Garage Door has talked publicly about A1's repeat-customer ticket running 3.2x the first-time ticket because repeat customers usually escalate from a spring repair to a full door replacement. The pattern holds across trades. Repeat customers escalate.

The contractors who get this number badly wrong assume R is just their overall average ticket. It is not. The repeat ticket is almost always higher and the dormant calculation is too pessimistic when you use the wrong R.

Text Clint: "what is my average revenue per repeat customer over the last 24 months, looking at every job after the customer's first one?"

Input 3: Repeat Probability on Activation (P)

P is the probability a dormant customer will book a repeat job when you re-engage them on a real cadence. This is the rate that varies most by trade, by message quality, and by how long they have been dormant.

Hatch's 2025 reactivation benchmarks report 12-14% as the typical contractor reactivation close rate, versus 5% for cold acquisition. Pete & Gabi's reactivation research puts the range at 8-18% depending on dormancy depth and message quality.

The bands by dormancy age:

  • 12-18 months dormant: 15-22% reactivate on a 5-touch cadence
  • 18-24 months dormant: 10-15%
  • 24-36 months dormant: 6-10%
  • 36+ months dormant: 3-6%

The 12-18 month bucket is the gold. Customers remember you, the equipment is approaching service age, and the trust has not decayed. The 36+ month bucket is hardest because customers have probably hired your competitor in the meantime.

John Wilson of Wilson Companies has talked about the 12-18 month bucket producing 50-60% of total reactivation revenue at his shop, even though it is sometimes only 25-30% of the dormant list. The math compounds: highest probability × strongest recall × largest recurring opportunity.

Text Clint: "for last quarter's reactivation campaign, what was the close rate on the 18-24 month dormant bucket versus the 24-36 month bucket?"

Input 4: Gross Margin (M)

M is your blended gross margin on the work the dormant customer is likely to book. For a typical residential service contractor, M runs 35-55% on the gross profit line, before SG&A and overhead.

Use M to convert recoverable revenue to recoverable gross profit, which is the number that actually hits the bank. Revenue is vanity. Profit is the real measure of what reactivation is worth.

The trap is using net profit instead of gross. Net is too far down the P&L and treats reactivation as if it has the same overhead burden as new acquisition, which is wrong. Reactivation has near-zero CAC. The right comparison is gross margin on reactivation revenue versus gross margin on new revenue minus CAC. Reactivation almost always wins by a factor of 3-8x.

Bain's customer-economics research is the cleanest source on this. Existing customers, when re-engaged, deliver profit margins 25-95% higher than equivalent new acquisition because the cost structure is different. CAC eats most of the margin on new customers in the first 12 months. Reactivation skips CAC almost entirely.

Text Clint: "what is my gross margin on jobs to repeat customers in the last 24 months versus first-time customers?"

Worked Example: $5M HVAC Shop

Numbers that come out of a real 5-year-old HVAC contractor doing $5M in revenue:

  • Total customer records: 4,800
  • Dormant by 18-month definition: 2,160 (45%)
  • Average repeat ticket (last 24 months): $2,400
  • Reactivation close rate (5-touch cadence on a clean list): 13%
  • Gross margin on repeat work: 44%

Plug in:

2,160 × $2,400 × 13% × 44% = $296,524 in recovered gross profit per quarter

Run quarterly and it is $1.18M of annual gross profit from a list that already exists. CAC: roughly zero. Lead source: the database the owner already paid for over five years. Time to execute the campaign: about 4 hours of message review, the rest automated.

The reason this number feels too good is the contractor has been ignoring it for years. The CRM does not put it on the dashboard. Mailchimp does not pull it from the CRM. The CSR is too busy answering live calls. So the $1M sits.

Tommy Mello has called this the "easiest money in the trades" multiple times publicly. He is not exaggerating. The friction is not the math, it is having a system that runs the campaign on real data without 40 hours of CSR labor.

Text Clint: "run my dormant revenue calculation on real data and tell me which segment to start with first"

Why Most Contractors Do Not Run This Math

The blocker is not the formula. It is the data. To run D × R × P × M honestly, you need:

  1. A clean "last activity" date on every customer (most CRMs have it dirty)
  2. A way to pull average ticket on repeat jobs only (not your overall average)
  3. Historical reactivation close rate by dormancy age (which most shops have never measured)
  4. Gross margin on repeat work specifically (which requires job-level cost tracking)

Each of these takes a custom report or a query that the CRM does not surface in the default dashboard. Most contractors stop at step 1 because the data hygiene work is real. See the 9 dirty data problems in your CRM and the contractor dashboard metrics owners ignore for the cleanup that has to happen first.

This is where AI agents are showing up. An agent that reads your real CRM, your real Gmail, and your real reactivation history can compute D, R, P, and M in seconds without you running custom reports. See the find top 100 customers in CRM post for the related top-customer query, and the home service KPIs playbook for the dashboard the math should live in.

The conversion line: text Clint, get the dormant customer math run on your real data, and have a 5-touch cadence drafted in seconds and sent from your real Gmail and SMS. No Mailchimp, no Zapier.

Text Clint: "calculate my D × R × P × M and tell me how much profit is sitting in my dormant list right now"

Sources

Frequently Asked Questions

6 questions home service owners actually ask about this.

  • 01What if I don't know my repeat probability yet?

    Use 12% as a planning number for the first campaign. That is the median across Hatch, Pete & Gabi, and ServiceTitan benchmarks for a clean dormant list with a multi-touch cadence. After the first run, replace it with your actual rate. Most contractors find their P is 8-18% within the first quarter.

  • 02Should the formula include lifetime value or just the next job?

    Just the next job for the planning number. Lifetime value is the bigger story (a reactivated customer often books 2-4 more jobs over the next 24 months) but the next-job math is what justifies the campaign. Once you re-engage, the LTV compounds automatically.

  • 03Does this work for commercial / B2B contractors?

    The formula is the same, the inputs change. Commercial dormancy windows are longer (24-36 months baseline because the buying cycle is slower). Repeat ticket is much larger ($8K-$50K range). P is lower (4-9%) but R is so much bigger that gross profit per recovered customer is often 5-10x the residential number.

  • 04How is this different from just running an email blast?

    A blast hits everyone with a generic message. The dormant customer formula segments by recency, equipment, and service history, then sends differentiated messages to each segment. The math justifies the segmentation work because the close rate gap between a generic blast (1-2%) and a segmented cadence (12-18%) is 10x.

  • 05What's the fastest way to see if my numbers are big enough to bother?

    Run the calculator with rough numbers in 10 minutes. Take your total customer count from your CRM. Multiply by 0.40 (typical dormancy rate). Multiply by your average ticket. Multiply by 0.10 (conservative reactivation rate). Multiply by 0.40 (conservative gross margin). If the answer is over $50K per quarter, the campaign pays for itself in week 1.

  • 06What tools do I need to run the campaign once I know the math?

    You need three things. A way to pull the dormant list with current contact info, a way to send personalized messages from your real Gmail and SMS (not from a marketing tool that lands in promotions), and a way to track replies so you do not double-touch. Some contractors stitch this together with Hatch + Mailchimp + their CRM. AI agents like Clint do all three from one prompt. See find cold quotes in CRM and how to find alive leads for the related queries, and the AI customer reactivation guide for the broader execution pattern.

See Clint in action

Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.