You send 10,000 texts. Your dashboard lights up green: 98% delivered. Nice number to screenshot for the client. But when you cross-check that campaign against actual replies, clicks, and downstream conversions, the math doesn't add up. It looks like a chunk of those "delivered" messages never actually landed on a screen.

That gap is real, it's common, and it hides inside the exact metric you're using to prove success.

Full disclosure: I work for Ready, an SMS platform. I'm going to explain what a "delivered" receipt actually confirms, why the honest number is often lower than what your dashboard shows, and how to narrow the gap. This isn't a pitch — it's the stuff most vendors would rather you didn't ask about.

What "delivered" actually means

When you send a message, it travels a chain: your platform → the carrier's messaging gateway → the recipient's carrier → the handset. A delivery receipt (DLR) is a status code that bounces back up that chain. The problem is where it comes from.

There are roughly three tiers of confidence, and most dashboards blur them into one green checkmark:

StatusWhat it actually confirmsConfidence it hit the inbox
Sent / AcceptedThe carrier gateway took the message off your handsLow — it's just in the queue
Delivered (DLR)The receiving carrier acknowledged handoff toward the deviceMedium — the carrier says it delivered
No error + downstream signal (reply, click, redemption)A human on a phone did somethingHigh

The middle row is where the trouble lives. A "delivered" DLR means the terminating carrier accepted the message and reported success. It does not guarantee the message cleared the carrier's spam filter and rendered on a screen. On several networks — T-Mobile is the frequent culprit — a message can be silently filtered and still return a delivered-looking receipt, or return no failure code at all.

So your 98% isn't lying about what the carrier reported. It's lying about what the recipient saw.

Where the silent filtering happens

Carrier spam filtering operates on content and reputation, and it happens after your 10DLC campaign is approved. Registration gets you a lane on the highway; it doesn't stop the highway patrol from pulling individual messages over. A message can trip a filter for:

  • A public URL shortener. Shared bit.ly-style domains carry the reputation of everyone else who ever abused them. That's covered in depth in why shared bit.ly links get your texts silently filtered.
  • SHAFT-adjacent language — sex, hate, alcohol, firearms, tobacco — plus loan/credit/gambling terms that trip content classifiers.
  • A link in the very first message to a contact with no prior two-way history. Carriers reward a warmup pattern before the first link.
  • A use-case mismatch — sending transactional content on a campaign you registered as marketing, which quietly drops delivery even though nothing errors out.
  • Blasting from a cold number or exceeding throughput, so the tail of a send gets throttled and some of it quietly evaporates.

None of these throw a loud red "FAILED." That's the whole problem. Filtered traffic often returns clean-looking statuses, which is how 15% of a send can go nowhere while your report insists everything's fine.

How to detect the gap without guessing

You can't see filtering directly — no carrier hands you a "we blocked this" flag. But you can triangulate it from signals that only a real human on a real phone can produce.

1. Reply-rate floor test. For any opted-in list, some baseline of people reply — even to a broadcast. Response rates on healthy opted-in lists often land somewhere around 30–50% for conversational sends (that's an industry approximation, not a promise). If a campaign reports 98% delivered but your reply rate collapses versus a comparable past send, the delta isn't apathy. It's messages that never arrived.

2. Click-rate consistency. Same idea. If two campaigns to the same segment report identical delivery but one gets half the clicks, the low one probably got filtered — the recipients who would have clicked never saw the link. This is also where you have to be careful that your tracking redirect isn't itself the thing getting flagged; there's a real attribution-vs-deliverability tradeoff worth understanding.

3. Carrier-split analysis. Break delivery down by carrier. If AT&T shows one pattern and T-Mobile shows a suspiciously perfect "delivered" rate with near-zero downstream engagement, you've likely found silent filtering. The AT&T vs T-Mobile throughput differences show up here too.

4. Seed-number monitoring. Keep a handful of your own phones across carriers on the list. Send the campaign, then physically check: did the text arrive? Did the link render? This is the only ground-truth test that beats every dashboard, and it takes five minutes.

If you run a program at any real scale, formalize this. The SMS metrics you should actually track walks through which numbers are honest and which ones flatter you.

Why the "delivered = read" leap is even worse

Some vendors go one step further and quote a "98% open rate," treating the delivery receipt as proof the message was read. It isn't. A DLR says the network handed the message toward the device. It says nothing about whether a human unlocked the phone and read it. Delivery is a network event; a read is a human one, and SMS has no reliable read receipt. I've written about why the 98% open rate is a delivery receipt, not a read — worth reading if anyone's ever quoted that stat at you in a sales deck.

How to shrink the gap

Detection is half of it. Closing the gap is mostly about being the kind of sender carriers trust:

  1. Register properly and match your use case. Standard 10DLC (~$10/mo per brand, ~$20/mo per campaign) is table stakes. Register the campaign for what you'll actually send. A use-case mismatch silently tanks delivery.
  2. Warm up new numbers. Don't blast 10,000 texts from a day-old number. A 7-day ramp builds carrier trust before you scale volume.
  3. Ditch shared shorteners. Use a dedicated branded link domain so your links carry only your reputation.
  4. Clean your content. Avoid SHAFT terms and loan/credit/gambling triggers. If your template got approved but delivery still drops, the content-level blocking that registration doesn't fix is your likely answer.
  5. Respect throughput and quiet hours. Overrunning your TPS cap gets the tail of a send throttled; sending at bad local hours hurts engagement and reputation. Ready enforces timezone-aware quiet hours automatically.
  6. Honor opt-outs cleanly. STOP handling propagates across campaigns in Ready, so you're not re-messaging people who left — a reputation signal carriers watch.

Where transparency actually comes from

Ready sits as a thin layer over carrier infrastructure and passes the carrier fee through separately ($0.0045/segment, itemized, not marked up) on top of $0.02/segment on Standard. That transparency isn't just a billing thing — it's the same philosophy applied to delivery reporting. You see the carrier status as it actually is, split by carrier, so you can run the triangulation above instead of staring at one aggregated green number.

No platform can turn a filtered message into a delivered one after the fact, and I won't pretend Ready makes you filter-proof. What we can do is register your 10DLC in-app (most approvals in 1–3 days), enforce quiet hours, scrub litigator/DNC numbers, and give you the carrier-level visibility to catch the gap early instead of discovering it in a bad quarter.

The practical takeaway

A "delivered" receipt confirms the carrier accepted your message — not that a human saw it. Silent filtering hides inside that green number, and on some networks it hides especially well. Treat delivery as one signal, not the truth, and cross-check it against replies, clicks, and a handful of seed phones you actually own.

If you want to pressure-test your own numbers, the fastest start is 2,500 free credits (no card): sign up here, run a real send to your seed phones across carriers, and compare what the dashboard says to what actually shows up on the screen. If those two numbers match, great. If they don't, now you know where to look. More on the platform at tryready.com/readysms.