How to spot a dead WhatsApp list before you launch
AndySendy academy
← All posts

🔍 How to tell your list is dead before you burn the number

An agency launched outreach on a purchased list of 10,000 numbers. Software sent only 40 messages - 18 failed delivery. On message 41, a two-year account with high trust got a permanent ban. Cause wasn't copy or send time - it was the list itself, visible in a 15-minute pre-launch audit.

Most WhatsApp guides cover message text, send timing, number warm-up - almost never the list. Yet the list most often decides whether outreach survives day two. A "dead" list isn't one signal - it's age, source, mobile share, and activity history combined, mostly visible before the first send. Warning signs, 15-minute express audit, and which failed-delivery rate should stop your test.


"Dead list" isn't one thing

Five different problems hide under the label - detected differently.

Problem type Meaning How to detect
Invalid no WhatsApp account (no JID) validator / Cloud API
Inactive account exists but unused not officially detectable - Meta only returns registered yes/no, no last-activity data
Duplicate repeated contact dedup before import
Landline/fax number can't be on WhatsApp HLR query, number-type slice
Format error not E.164 standard length/mask auto-check

Five toxic-list signs before sending


15-minute express audit

Step 1. Format and dupes. E.164 check and dedup - data hygiene, not WhatsApp-specific. Excel dedup alone can't tell mobile vs landline or check account existence.

Step 2. Validator check. Official: WABA Cloud API contact check returning valid/invalid - WABA overview. Gray: Baileys/whatsapp-web.js onWhatsApp(). Cloud services with registrar pools can validate 10k numbers in 5–15 minutes. Free forum checkers unstable and may steal numbers into their own lists - same logic as migrating from other messengers.

Step 3. HLR query. Active SIM? Mobile, landline, or virtual? City numbers in list - almost always parsing marker, not organic collection.

Step 4. Carrier/region slice. Chaotic mix of dozens of region codes without geographic logic - forum marker for "purchased junk." No confirmed Meta antispam use of this distribution - your own decision heuristic.


Don't confuse metrics

Metric Measures Benchmark
Quality Rating WABA number reputation ideally ≥ 0.80
Bounce Rate undelivered share account-wide over time ≤ 2% OK, > 10% serious
Complaint Rate recipient reports ideally ≤ 0.1%
Failed Rate on new-list test failures on first sends to fresh list many practices < 5% safe
P95 delivery time send latency up to ~3 sec normal load

Bounce Rate ≠ Failed Rate on test sample. Bounce = account over time; Failed on first 50 = new-list diagnostic - see A/B testing methodology.

WABA doesn't shield bad lists: high Failed Rate drops Quality Rating → template blocks or 250/day cap - confirmed mechanics.


Test launch, not mass start

Never launch whole list. Standard: ~50-message test sample with separate Failed Rate control before scaling - see first cold message test logic.


Stop rule: >30% failed on first 50 - halt

Over 30% failed on test 50 - stop immediately, change list. Not official Meta rule - widely cited practitioner stop signal - high error cost.

Gray zone between <5% safe and >30% stop - slow down, scrutinize source - see ban mechanics and behavioral anti-spam.


Failure → Success

Failed Working
List 10k purchased e-shop list, 2 years old 5k scraped B2B from contractor
Pre-launch audit None Validator removed 1200 landline, 400 format errors, 800 no WA - 2600 clean
Outcome 18/40 failed, ban on msg 41 despite 2yr trust Test launch 98% delivery, no blocks

Same warmed sender number both cases - difference: audit before launch or not.


Pre-import checklist


What Meta won't show upfront

Official tools: binary registered yes/no only. No last activity, app usage frequency, or last online in public docs. Claims about "active share" beyond binary status are assumptions.


Multi-account operator mistakes

Burn pattern: purchased list unchecked, skip validation "to save time," full-list launch, random free checkers. Multi-account split doesn't fix it - dead list burns each in turn - see broadcast economics where cheap list becomes most expensive line item.


🎯 Next step

Run current list through validator - record invalid % and landline share. If unexpectedly high - that's why last launch underperformed.

Conclusion

Practical rule:

You can rewrite message text after the first complaint. You can't rewrite a ban from a dead list - audit before launch, not after problems.