You schedule a flash-sale blast to 20,000 opted-in contacts. Send at noon. By 12:15 a few hundred people have replied, orders are trickling in, and everything looks fine. Then it doesn't. At 3pm you check the campaign and 40% of the list still shows "queued." The sale ends at 6. A chunk of your list gets the "60% off, ends today" text at 5:52pm — or the next morning, after the discount died.
Nobody threw an error. Nothing "failed." Your number just hit a ceiling it never told you about, and the platform quietly metered the rest out at whatever rate the carriers allow.
Full disclosure: I work for Ready, an SMS platform. This is the kind of thing we get support tickets about, so I want to explain the mechanic plainly — the caps are real, they're set by your trust tier, and you can plan around them once you know the numbers.
Two different ceilings are throttling you
People blur these together, but they're separate limits and they fail in different ways.
Throughput (TPS — texts per second) is how fast messages leave your number. This is the one that spreads a "noon blast" across an hour. If your effective rate is a few messages per second, a 20,000-message send takes a while no matter what — I walked through that math in detail in Your 10DLC Number Can Only Push ~90 Texts a Second.
Daily message limits are a hard cap on how many messages your campaign can send to a given carrier in a 24-hour window. This is the one that stalls a big list mid-send and doesn't recover until the clock rolls over. T-Mobile enforces this most visibly through its Brand Daily Cap, which is tied directly to your trust score.
A flash sale can hit both at once: TPS spreads the first few thousand over the lunch hour, then the daily cap slams the door before the rest go out.
What "trust tier" actually buys you
When you register a 10DLC brand, it gets a trust score. Standard registration lands you a baseline score. Optional external vetting can raise it. That number isn't cosmetic — on T-Mobile it maps to a daily message allowance per brand:
| Trust tier (approx) | T-Mobile daily brand cap | Who's here |
|---|---|---|
| Low / unvetted | ~2,000 msg/day | Fresh standard registration, low score |
| Mid | ~10,000–40,000 msg/day | Solid standard registration |
| High (vetted) | ~200,000 msg/day | Externally vetted, strong score |
| Top | ~2,000,000 msg/day | Large vetted brands |
Treat these as round, publicly-circulated approximations — carriers adjust them and don't publish an official rate card. The shape is what matters: the gap between an unvetted number and a vetted one isn't 20%, it's often 10x or more. I broke down what specific scores unlock in Your Brand Vetting Score Silently Sets Your Daily Send Cap.
Here's the trap. Your 20,000-contact list is fine on AT&T, which doesn't gate you the same way. But roughly a third of US mobiles are on T-Mobile/Metro. So ~6,600 of your contacts route through the carrier with the strict daily cap. If your brand sits at the ~2,000/day tier, about 4,600 of those T-Mobile contacts cannot send today. They queue until tomorrow. Your "instant" sale is now a two-day drip on a one-day discount.
Why the blast trickles instead of erroring
The reason this is so easy to miss: a good platform doesn't fail the over-cap messages. It holds them and releases them as the window allows. That's the correct behavior — you don't want 4,600 hard failures — but it looks like the send is "still going," which is why operators don't notice until they check delivery reports hours later.
If you want the full walk-through of why a 50,000-contact list can genuinely take four hours to clear, that's Why Your 50,000-Contact Blast Takes 4 Hours. The short version: multiply your list by your per-carrier share, check each share against that carrier's cap and your TPS, and the slowest constraint sets your real send window.
The math you should run before scheduling a drop
Do this before you hit send, not after. Rough worked example for a 20,000-contact promo:
- Split by carrier. Roughly: AT&T ~30%, T-Mobile/Metro ~33%, Verizon ~30%, rest ~7%. So ~6,600 on T-Mobile.
- Check the tight carrier against your cap. If your brand is at ~2,000/day on T-Mobile, only 2,000 of those 6,600 land today. The other 4,600 queue.
- Check TPS for the rest. Even the ~13,400 non-T-Mobile contacts take time. At a modest few-messages-per-second effective rate, that's tens of minutes, not seconds.
- Count segments, not contacts. A 175-character promo with an emoji is unicode, so 70 chars per segment → 3 segments per recipient. Your 20,000 "messages" are really 60,000 segments hitting throughput. That triples every number above.
That last point catches people constantly. One emoji drops your segment limit from 160 characters to 70, and a three-line promo blows straight past it. Keep the message GSM-7 (no emoji, no curly quotes, no em-dashes) and you might fit it in one or two segments — cutting your throughput load by half or two-thirds. On Ready that's also a direct cost lever: at $0.02/segment plus the $0.0045 carrier pass-through, 60,000 segments is $1,470 where 20,000 single-segment messages would've been $490.
How to actually not stall
You have four levers. Use them in combination.
- Raise the ceiling with vetting. External brand vetting is $40 Standard / $100 Enhanced, one-time, and it can move you off the ~2,000/day floor into a tier that clears your whole list in one window. For a store running weekly drops to a five-figure list, that pays for itself the first Friday. Whether it's worth it for you is a throughput question — I laid out the decision in Is 10DLC Brand Vetting Worth $40?.
- Start earlier. If your cap or TPS means the send takes three hours, launch the blast at 9am for a sale that ends at 6pm — not at noon. The people who get it at 11:45 still have all day.
- Trim the message to one segment. Fewer segments = fewer units against every cap, and a cheaper bill. This is the free lever most people skip.
- Split high-value contacts to the front. If you can prioritize your best customers or the carrier that's about to cap you, do that first so the queued tail is your least time-sensitive contacts.
Where Ready fits (and where it doesn't)
Two things matter here specifically. First, same-day 10DLC. Most standard registrations approve in 1–3 days, and many land same-day — so if you realize on Tuesday that your holiday drop needs a registered, decent-trust brand, you're not blocked for three weeks the way manual A2P onboarding stalls you. The same-day approval path covers what compresses and what doesn't.
Second, tier visibility. You can see your brand's registration status and plan send windows against it instead of finding out mid-blast. And if you want the extra ceiling, brand vetting is a checkbox in-app, not a separate carrier project.
Honest limits: Ready cannot make T-Mobile ignore its daily cap, and neither can anyone else. No platform "unlocks unlimited throughput" — anyone claiming that is selling you a queue with a nicer progress bar. The only real levers are your trust tier, your segment count, and your send timing. What a platform can do is show you those numbers and register you fast enough to act on them.
On price: raw CPaaS APIs and GoHighLevel's native texting run at or below Ready's per-segment rate, so I won't pretend Ready is the cheapest per message. What you get for the difference is self-serve 10DLC, in-app vetting, quiet-hours enforcement, STOP handling, and the full inbox/CRM/dialer stack with no per-seat fees. If you're a developer who just wants a cheap API and you'll handle A2P onboarding yourself, a raw CPaaS is a fine choice — say so.
The takeaway
A 10DLC number doesn't send "as fast as you click." It sends as fast as your trust tier and TPS allow, and it stops cold at your carrier daily cap — silently, by queuing the rest. Before your next time-sensitive drop:
- Split your list by carrier and check the tight one against your daily cap.
- Count segments, not contacts — and kill the emoji if you can.
- Vet the brand if your list outgrows the ~2,000/day floor.
- Schedule the send early enough that the queued tail still lands before the offer dies.
If you're setting up for a drop and want to see your registration tier and send windows before you commit, start with the Ready product and pricing page or create an account — you get 2,500 free credits to test the send math on a real list before you bet a flash sale on it.