You registered your brand. You registered your campaign. Both came back approved. You loaded a 30,000-contact list, hit send, and watched the send counter crawl — hundreds of messages "queued" while your delivery timestamps stretched out over an hour. Nothing was rejected. Nothing bounced. But your "instant" blast wasn't instant, and nobody warned you.
Full disclosure: I work for ReadySMS, so I spend a lot of time explaining this to people who thought 10DLC approval meant "you can now send." It mostly does. But there are two separate limits hiding behind that one approval, and confusing them is the single most common reason a healthy campaign feels broken.
The two ceilings your campaign actually has
When a 10DLC campaign is approved, the carriers assign it two governors, not one:
- A daily message limit — how many messages this campaign is allowed to send in a rolling 24-hour window. This is tied to your brand's trust/vetting score. A low-trust brand might get a few thousand a day per carrier; a vetted one gets tens of thousands or more.
- A per-second throughput rate (TPS, or MPS) — how many message segments can leave the platform each second for this campaign. This is the one nobody talks about, and it's the one that makes your blast queue.
The daily cap answers "how much can I send today?" The TPS rate answers "how fast can it physically go out the door?" You can be nowhere near your daily cap and still be throttled — because you've hit your per-second ceiling and every additional message is politely waiting in line.
Most standard, unvetted 10DLC campaigns start around 1 message segment per second. Vetted brands and higher use-case tiers get more. That number is the whole story once your list gets big.
The worked example: where the wall actually is
Let's do the math, because the math is where the surprise lives.
Say you have a 30,000-contact list and your message is a clean 150 characters — one GSM-7 segment each. That's 30,000 segments to send. Now assume your campaign is running at 1 segment per second, which is a common starting throughput for a fresh standard campaign.
`` 30,000 segments ÷ 1 segment/second = 30,000 seconds 30,000 seconds ÷ 60 = 500 minutes 500 minutes ÷ 60 ≈ 8.3 hours ``
Your "blast" takes over eight hours to fully deliver — and you never came close to a daily cap. The last contact on your list gets the text a full workday after the first one.
Now bump throughput. If your campaign runs at 10 segments/second (achievable with a vetted brand and an appropriate use case), the same list clears in:
`` 30,000 ÷ 10 = 3,000 seconds = 50 minutes ``
Same list, same message, same approval status. The only variable that changed is TPS. That's the ceiling that decides whether your flash sale lands while the offer is still live.
Now add the segment trap
Here's where it compounds. TPS is measured in segments, not messages. If your copy runs 175 characters, it splits into two segments (the boundary is 153 chars per part once you go multipart, not 160 — we broke that down in the 160-vs-153 character cliff post). And if you drop a single emoji in, the whole message re-encodes to unicode and your per-segment limit collapses to 70 characters — the emoji tax.
So that same 30,000-contact list with a two-segment message is now 60,000 segments through the same TPS pipe. Your 8.3-hour send just became 16.6 hours. Trimming your copy from two segments to one doesn't just cut your bill in half — it cuts your send time in half too.
Why daily-cap and TPS get conflated
The confusion is understandable. Both are set at registration, both scale with your brand's trust, and neither is shown to you clearly by most platforms. You see "approved" and assume the throttle is a volume number.
But they behave completely differently:
| Daily message cap | Per-second throughput (TPS) | |
|---|---|---|
| Answers | "How much today?" | "How fast right now?" |
| Unit | Messages / 24h | Segments / second |
| What raises it | Higher trust/vetting score | Vetting + use-case tier |
| Symptom when you hit it | Sends get rejected/deferred | Sends queue and trickle |
| Resets | Rolling 24h window | Continuously (it's a rate) |
The symptom is the tell. If you're getting rejections or "daily limit exceeded" errors, that's the daily cap. If everything's accepted but delivery timestamps are spreading out over hours, that's TPS. We went deep on the raw mechanics of this in Why Your 50,000-Contact Blast Takes 4 Hours — worth reading if you send big lists.
Carriers don't share a number, either
Adding one more layer: your TPS isn't a single global figure. Each carrier enforces its own rate for your campaign, and they don't agree. It's common for a campaign to fly on AT&T and crawl on T-Mobile with identical registration — the same messages, throttled at different speeds depending on which network the recipient is on. We wrote that up separately in Same Campaign, Different Carriers.
Practically, this means your effective send speed is gated by your slowest carrier for the portion of your list on that network. If a third of your contacts are T-Mobile and T-Mobile is your bottleneck, that third sets the pace.
What actually raises your throughput
You have real levers here. In rough order of impact:
- Brand vetting. An external vetting score is the biggest single throughput unlock for most senders. ReadySMS offers it as an optional one-time add-on — $40 Standard or $100 Enhanced — and it raises both your trust score and your daily/TPS limits. It's not worth it for a low-volume sender, but if you're regularly hitting the wall, it pays for itself in a single blast. We laid out the break-even in Is 10DLC Brand Vetting Worth $40? and what the score numbers actually unlock in Your Brand Vetting Score Silently Sets Your Daily Send Cap.
- Register the right use case. A campaign filed under the wrong use case can get a throughput tier that doesn't match how you actually send — and misclassification quietly throttles you. If your texts are transactional but you filed "marketing," you're leaving throughput and deliverability on the table. Here's why that mismatch hurts.
- Shorten your copy. Every segment you cut is capacity back in the pipe. One-segment messages send twice as fast as two-segment ones. This is free.
- Plan the send window. If you know your list clears in eight hours at your current TPS, don't start a flash-sale blast at 4pm — the tail end will hit people at midnight, which also collides with quiet-hours enforcement. Start early, or raise throughput first.
Plan around the ceiling you actually have
The fix isn't "send slower" — it's knowing your number before you hit send. Take your list size, multiply by your segments-per-message, divide by your real TPS, and you have your send duration. If that duration doesn't fit the window your offer needs to land in, you have two moves: cut segments, or raise throughput through vetting and correct use-case filing.
ReadySMS surfaces your registration status, use case, and throughput tier in-app rather than making you guess — brand and campaign registration run right in the platform (roughly ~$10/mo per brand and ~$20/mo per campaign in carrier fees), with vetting as an optional bump. The point isn't that we make messages leave faster than physics allows; nobody does. The point is you shouldn't discover your TPS ceiling for the first time at the bottom of a stalled progress bar.
If you're sizing a big send, run your numbers through the cost calculator and check your throughput tier before the campaign that matters. An approved campaign is permission to send — how fast it goes is a separate number, and now you know where to find it.