There's a contact in your list who opted in eight months ago, clicked once, and hasn't done anything since. Not a reply, not a click, not a purchase. You keep texting them anyway, because deleting a contact feels like admitting defeat, and because "more contacts" has always felt like the goal.
It isn't free to keep them. Every blast you send to that silent number costs you a segment, same as a customer who buys every month. And the longer you drag dead weight through your sends, the more it quietly damages the thing you actually need: deliverability. There's a cleaner move, a one-time re-permission text that either wakes them up or lets them go. Below is the math on when that's worth it, and the exact wording that stays compliant.
Full disclosure: I work for Ready, an SMS platform. I'll show the math with our pricing, but the logic holds on any transparent per-segment plan.
What a silent contact actually costs
Start with the direct line item. On Ready's Standard tier, a single SMS segment is $0.02 + $0.0045 carrier pass-through = $0.0245 all-in. (Past 50,000 segments in a month, that per-segment rate drops to $0.016 automatically, see pricing.)
Say you blast your list twice a week, a promo and a reminder. That's ~8 sends a month. If 20% of your 10,000-contact list has gone cold (2,000 contacts), here's what you're paying to text people who never respond:
| Item | Math | Monthly cost |
|---|---|---|
| Cold contacts | 2,000 | — |
| Sends/month | 8 | — |
| Segments (1-segment msg) | 2,000 × 8 | 16,000 |
| Cost at $0.0245/seg | 16,000 × $0.0245 | $392/mo |
That's $4,704/year to reach an audience that has demonstrated, repeatedly, that it doesn't want to hear from you. And that's the generous version, it assumes a tidy one-segment message. The moment a curly apostrophe or an emoji sneaks in, the same message can split into three segments and triple that number (the unicode trap catches more senders than you'd think).
The cost you don't see on the invoice
Direct spend is the smaller problem. The bigger one is what silent contacts do to your delivery rate.
Carriers judge your sending reputation partly on engagement signals, are people replying, clicking, or are they ignoring and reporting you? A list that's 20% dead tells carriers your content isn't wanted, which feeds filtering decisions that affect messages to your good contacts too. You can be fully 10DLC-registered and still watch delivery quietly erode because the aggregate behavior of your list looks like spam. (Registration doesn't fix content-level filtering.)
And there's a measurement trap on top of it: your dashboard may say "98% delivered" while a meaningful chunk never reached a real inbox. A "delivered" receipt confirms the carrier accepted the message, not that a human saw it. Dead numbers (disconnected, ported, landline reassignments) inflate your "delivered" stat and drag your real engagement rate down.
So carrying dead weight costs you three ways: wasted segments, degraded deliverability for everyone, and metrics that lie to you about both.
The re-permission send: one text to decide
A re-permission campaign is a single message to your cold segment that asks them to confirm they still want in. It does one of two things, both good:
- They reply/click and re-engage, you've revived a contact for the price of one segment.
- They do nothing, you suppress them, stop paying to text them, and clean your engagement signal.
The honest framing: you're not losing contacts, you're converting a liability into either a win or a clean exit. A contact who ignores a "do you still want these?" text was never going to buy anyway.
Who counts as "cold"
Pick a definition and stick to it. Common thresholds:
- No open/click/reply in 90 days, aggressive, good for high-frequency senders.
- No open/click/reply in 180 days, conservative, good if you send monthly.
- Never engaged after opt-in, these are your worst offenders; prioritize them.
In Ready you can build this segment against your activity data (or in GoHighLevel via the native integration, where last-activity fields live). Don't guess, pull the actual segment and count it before you decide anything.
The compliant re-permission wording
This message has to do real work in one or two segments, and it has to stay on the right side of consent rules. A few hard requirements:
- Identify your brand, carriers filter unbranded messages.
- Make the ask explicit, you're confirming continued consent, so say so.
- Honor the opt-out automatically: STOP has to work, and in Ready it does, propagating across campaigns so a suppressed contact can't be re-messaged by accident.
Here's a one-segment version (count your characters, 160 GSM-7 is the cliff, and a stray curly quote drops you to 70):
[Brand]: Still want our texts? Reply YES to keep getting deals. No reply = we'll stop texting you. Reply STOP to opt out anytime.
That's 123 characters in plain GSM-7, one segment. Write "YES" and "STOP" in straight ASCII, skip the emoji, and use a straight apostrophe if you need one.
A slightly warmer two-segment version if you have room in the budget:
[Brand]: We noticed you haven't opened our texts in a while. Want to keep getting exclusive offers? Reply YES to stay in. Otherwise we'll remove you. Reply STOP anytime.
Send it during permitted local hours, a re-permission text that lands at 6 AM for a third of your list defeats the purpose and raises TCPA exposure. If your list spans time zones, quiet-hours enforcement handles the timing so you're not babysitting the clock.
The payback math
Here's where it gets easy to justify. Re-permissioning those 2,000 cold contacts is a one-time cost:
| Item | Math | Cost |
|---|---|---|
| Re-permission send | 2,000 contacts × 1 segment × $0.0245 | $49 |
Compare that $49 one-time spend to the $392/month you're currently burning on those same contacts. Even if the re-permission send revives zero of them and you suppress all 2,000, you stop the $392/month bleed. Payback is under four days.
Realistically, re-permission sends to opted-in lists often recover somewhere in the 10 to 25% range (treat that as a rough industry band, not a promise). Say 15% reply YES, that's 300 contacts you keep, now engaged, plus 1,700 you suppress. Your next blast goes to a list that's measurably more responsive, which helps the deliverability of every future send.
When not to do this
Honesty section. A re-permission purge isn't always the right call:
- Tiny lists. If you have 400 contacts total, the segment savings are trivial and the deliverability benefit is marginal. Just clean obvious dead numbers and move on.
- Long purchase cycles. If you sell something people buy once a year, think HVAC service, tax prep, certain B2B, "no engagement in 90 days" is normal, not cold. Lengthen your threshold or skip the purge.
- Transactional-only sends. If you only text order confirmations and appointment reminders, engagement looks different and this calculus doesn't apply the same way.
Match the threshold to your actual buying cycle. The goal is removing dead weight, not punishing patient customers.
The practical takeaway
A contact who hasn't engaged in 90+ days isn't an asset sitting in reserve, it's a recurring charge that also drags down delivery for the contacts who do buy. The fix is cheap and reversible in exactly one direction: a single compliant re-permission text that revives the ones worth keeping and cleanly removes the rest.
Run it once a quarter. Pull your cold segment, count it, multiply by $0.0245 and your sends-per-month to see what you're actually spending, then send the one text that settles it.
If you want to build and send that segment on transparent per-segment pricing (with STOP handling, quiet-hours, and the segment math visible before you hit send) you can start with 20 free texts to test the wording. A 2,000-contact send needs a registered number, since unregistered accounts can send up to 500 texts a month.