TL;DR
- Revenue at risk = (dormant contacts) x (average customer lifetime value) x (realistic recovery rate, typically 15-25%).
- Most SMBs we audit find that 30-40% of their contact list is dormant -- and the dormant segment often represents more than half of their total historical revenue.
- The recovery-rate number most businesses use is too low. A three-message win-back sequence delivered on WhatsApp realistically pulls 18-22% on a 30-60 day dormancy segment.
- This post has three worked examples (salon, gym, retail) with real numbers you can swap yours into.
- The biggest error: calculating LTV only for active customers. Use historical-cohort LTV instead.
If you have been running a business on WhatsApp for more than six months, you are sitting on a revenue pile you cannot see. Every contact who stopped replying, every lead who ghosted after a quote, every customer who used to come monthly and now does not -- each of them has a numeric value, and most businesses have no idea what that number is.
This post is the formula you need to put a rupee amount (or dollar amount) on your dormant list. We will walk through the math, then apply it to three worked examples across salon, gym, and retail so you can match the closest one to your business.
The Core Formula
Dormant Contacts x Average LTV x Recovery Rate
Three inputs. Each one is where businesses go wrong. Let us break down exactly how to measure each correctly.
Input 1: Dormant Contacts
A dormant contact is any contact in your WhatsApp database who has not engaged with you in longer than your "healthy cycle" window. The window depends on your business:
- Salons / barbershops: 30 days (hair cycle is 4-6 weeks)
- Gyms / fitness: 14 days (if a member skips two weeks, they are at risk)
- Retail / D2C: 60-90 days (depends on product replenishment cycle)
- Real estate: 30 days post-last-message (leads decay fast)
- B2B SaaS: 45 days
- Restaurants: 45 days
If you are not sure, halve your average time-between-purchases. That is usually a good dormancy trigger.
Input 2: Average Customer LTV
Use historical-cohort LTV, not active-customer LTV. The number you want is: total revenue ever received from a customer cohort, divided by the number of customers in that cohort. If you only calculate LTV for currently-active customers, you will systematically underestimate because dormant customers tend to have had shorter (lower LTV) relationships.
A simple way: sum your last 24 months of revenue, divide by the number of unique paying customers in that period. That number is close enough.
Input 3: Realistic Recovery Rate
This is where most calculators lie to you. The recovery rate depends on two things: how dormant the customer is, and how good your re-engagement sequence is.
- 0-30 days dormant, 3-message sequence: 22-28% recovery (benchmark)
- 30-60 days dormant, 3-message sequence: 15-22%
- 60-90 days dormant, 3-message sequence: 10-15%
- 90+ days dormant, 5-message sequence: 8-14%
- 180+ days dormant: 4-8%
For a conservative estimate, use 15%. For a sequence you have actually tested (or one of the proven patterns), use 20%.
Worked Example 1: Hair Salon (300 Contacts)
Priya's Salon -- Austin
Total WhatsApp contacts: 300
Dormancy threshold: 30 days no visit
Dormant contacts (counted manually): 115 (38% of list)
Average visit value: $18
Average visits per year for an active customer: 8
Historical LTV: $18 x 8 x 1.5 years avg retention = $210
Per-visit dormant revenue (immediate): 115 x $18 = $2,012 in the next 30-45 days if we win them all back
Realistic recovery at 20%: 23 customers x $18 = $402 in the first month
Annualized (if those 23 stay): 23 x 8 visits x $18 = $3,220
Monthly revenue opportunity: $402Priya was running her salon on WhatsApp for 18 months before she ran this calculation. She had never once sent a win-back message. Twenty-three customers is not a huge win-back number -- but over a year, that is over roughly $3,200 that were invisible.
Worked Example 2: Boutique Gym (850 Members)
FlexFit Gym -- Denver
Total WhatsApp contacts (members + lapsed): 850
Currently active (paying monthly): 420
Dormancy threshold: 14 days no check-in
At-risk contacts (active but haven't checked in recently): 85
Fully dormant (lapsed membership, still on list): 345
Monthly membership fee: $31
Average member tenure: 7 months
Historical LTV: $31 x 7 = $219
Realistic save rate on at-risk cohort (85 people): 35% = 30 saves x $31 = $938 preserved monthly revenue
Realistic win-back on lapsed cohort (345 people): 12% = 41 wins x $31 first-month = $1,281
Monthly revenue opportunity: $2,219Gyms have two cohorts you need to calculate separately. The at-risk cohort (active but drifting) has a much higher save rate -- these people are still paying, they just need a reason to come in. The fully-lapsed cohort has a lower rate but a larger pool.
Worked Example 3: D2C Skincare Brand (4,200 Customers)
GlowCo -- Seattle
Total WhatsApp contacts: 4,200
Dormancy threshold: 90 days no order
Dormant contacts: 1,680 (40% of list)
Average order value: $11
Average orders per active customer per year: 4.2
Historical LTV (2-year cohort): $39
Realistic recovery at 12% (90-day dormancy, 5-message sequence): 202 customers
Immediate revenue (one reactivation order each): 202 x $11 = $2,146
12-month value of reactivations: 202 x $39 x 0.6 (retention adjustment) = $4,696
First-month opportunity: $2,146Your Numbers: The 10-Minute Version
Do this today (10 minutes)
- Export your WhatsApp contacts to a spreadsheet. In App-ening, go to Contacts and click Export.
- Filter for "last activity" older than your dormancy threshold (30/60/90 days per the table above). Count the rows.
- Pull your last 12 months of revenue from Razorpay / your POS / your order database. Divide by unique paying customers. That is your LTV proxy.
- Multiply: dormant_count x LTV_proxy x 0.18.
- Look at the result. That is roughly how much revenue is sitting on your list right now, waiting for a sequence.
Common Mistakes That Inflate Your Estimate
This formula is conservative if used correctly, but three errors inflate results:
- Using active-only LTV: Dormant customers historically had lower LTV than active ones (they churned sooner). Using active-only LTV overstates by 30-50%. Use historical cohort LTV.
- Double-counting contacts who never paid: Leads who ghosted before paying are not "dormant revenue at risk." Filter to only customers who have made at least one payment.
- Using discount offers in your LTV baseline: If 70% of your recoveries come through a 25% discount, your realized revenue is 25% lower than the LTV number suggests. Discount the discount.
How This Connects to the App-ening Dashboard
The Revenue Recovery dashboard runs this calculation automatically, against your live contact database. It shows you the at-risk / dormant / lost cohort counts, estimates your revenue at risk by cohort, and tracks how much revenue each sequence has actually recovered. If you want to skip the manual export-and-spreadsheet version, the dashboard gives you a live number refreshed daily.
The feature gate lives on the Pro plan and above. The calculation covers all seven cohort buckets (0-30, 30-60, 60-90, 90-120, 120-180, 180+ day dormancy, plus at-risk active).
Book a 10-minute revenue audit
We will run this exact calculation against your WhatsApp contact list, tell you the number, and show you the 100 contacts most likely to reactivate. No sales pitch -- just your number.
Book your auditRelated: Salon playbook | Gym playbook