You hit send on a 50,000-contact flash sale at 9:02 AM. The first wave of replies starts trickling in by 9:05. Good. Then you check the queue at 11:00 and it's still grinding — 31,000 sent, 19,000 pending. The discount code expires at noon. By the time the last person gets the text, the sale's over and you've paid to send a dead offer.
That's not a bug. That's a throughput ceiling — messages per second, or TPS — and almost nobody mentions it until your blast is half-stuck behind it.
Full disclosure: I work for ReadySMS, so I have a horse in this race. But the TPS math below is carrier physics, not a sales pitch. It applies to you no matter whose platform you send through.
What TPS actually is
TPS — transactions (messages) per second — is the rate the carriers will accept your traffic. It's not your platform's send speed and it's not your internet connection. It's a throttle the mobile carriers themselves impose on each registered 10DLC campaign, tied to the campaign's trust score.
Send faster than your allowed TPS and the carriers don't crash — they queue, throttle, or in the worst case start filtering you for looking like spam. So your platform paces the send to stay under the ceiling. That pacing is what stretches a "blast" into a multi-hour drip.
The number you actually get depends on three things:
- Whether your brand and campaign are registered on 10DLC at all
- Your campaign's trust score (driven by registration quality and, optionally, external vetting)
- The campaign type you registered (marketing campaigns get throttled harder than transactional ones)
Unregistered traffic is the worst case. It gets carrier-filtered aggressively and runs at a crawl — if it gets delivered at all. This is the whole reason 10DLC registration exists, and why skipping it costs you both deliverability and speed.
The math: how long 50,000 messages actually takes
Let's stop talking in the abstract. Here's how long a 50,000-segment blast takes at common TPS rates, assuming the platform sustains the rate cleanly:
| Sustained TPS | Time for 50,000 segments | Time for 250,000 segments |
|---|---|---|
| 1 TPS | ~13.9 hours | ~69 hours |
| 10 TPS | ~83 minutes | ~7 hours |
| 25 TPS | ~33 minutes | ~2.8 hours |
| 75 TPS | ~11 minutes | ~56 minutes |
| 100 TPS | ~8.3 minutes | ~42 minutes |
The formula is just segments ÷ TPS ÷ 60 = minutes. Nothing fancy. But look at the spread: the same 50,000-contact list finishes in eight minutes at 100 TPS or takes most of a workday at 1 TPS. Same list, same platform, same message — the only variable is the ceiling.
And note the word segments, not contacts. If your message overflows into multiple parts, every segment counts against the TPS rate. A 175-character promo with one emoji becomes three unicode segments — so a 50,000-contact list is really 150,000 segments through the pipe. At 25 TPS that's not 33 minutes, it's 100 minutes. The emoji didn't just cost you money; it tripled your send window.
Why a registered campaign with a higher tier sends dramatically faster
Trust score is the lever. The carriers assign each registered campaign a trust score, and that score maps to a daily message cap and a per-second throughput allowance. Low score, low ceiling. Higher score, the carriers loosen the throttle and let you push more per second.
Standard 10DLC registration — roughly ~$10/mo per brand and ~$20/mo per campaign in carrier fees, approved in about 1–3 days — gets most senders a usable score and a usable TPS. For a local business or a nonprofit sending a few thousand messages a week, that's plenty. You'll never feel the ceiling.
Where it bites is high volume. If you're an ecommerce brand pushing 50k–250k segments per campaign send, or an agency running blasts for a dozen clients, the difference between a mid and a high trust score is the difference between an 11-minute send and a 2-hour send.
That's where external brand vetting earns its keep. It's a one-time $40 Standard / $100 Enhanced upgrade that raises your trust score and your daily throughput limit. For a small sender it's not worth it. For someone whose flash-sale window is 90 minutes and whose list is 80,000 deep, paying $40 once to halve the send time is an easy yes. We wrote a full breakdown of exactly when that crossover happens, because it genuinely isn't worth it for everyone.
Planning your send window around the ceiling
Once you accept the ceiling exists, you plan backward from it instead of getting surprised by it. Here's the discipline:
- Know your real TPS. Don't guess. With ReadySMS, your registered campaign's tier and throughput are visible — we run a transparent layer over the carrier infrastructure, so you can see what you're actually allowed to push rather than discovering it mid-blast.
- Multiply your contact count by your segment count. This is the number that matters, not the contact count. Trim the message first. Cutting a two-segment message back to one halves both your cost and your send time.
- Divide by TPS to get your real send duration. Use the table above. If the duration runs past your offer window, you have a problem to solve before you hit send.
- Back-time the launch. If a code expires at noon and your blast takes 90 minutes, you don't send at 11:00 — you send at 10:20 so the last person gets a live offer, not a dead one.
- Respect quiet hours, because they cut your window further. Quiet-hours enforcement holds sends outside permitted local hours. If your list spans time zones, your usable send window is narrower than the clock suggests. A blast you start at 8:55 AM Eastern can't legally land on the West Coast yet — those get held, which stretches the effective completion time.
Where high-volume senders get burned
A few patterns I see repeatedly:
- Treating contact count as the unit. A 50k list of three-segment messages is a 150k-segment send. Plan for 150k.
- Launching at the start of the offer window. If the blast takes two hours and the offer is two hours, half your list gets it after it's expired. You paid full send cost for a dead message.
- Sending unregistered "to test." Unregistered traffic doesn't just risk filtering — it runs at the slowest possible ceiling. Your test tells you nothing about real-world speed.
- Ignoring trust-score signals. A rejected or downgraded campaign doesn't just delay approval — it can leave you on a lower throughput tier even after it goes live.
The honest tradeoff
For most senders, the TPS ceiling never matters. If you're texting a 2,000-person list once a week, even a modest tier clears it in minutes. Don't pay for vetting you won't use. Don't over-engineer a send window for a list that finishes before you've refilled your coffee.
The ceiling matters when list size × segment count outgrows your offer window. That's the trigger. When you hit it, the fixes in order of effort are: trim the message to fewer segments (free), back-time your launch (free), register cleanly if you haven't (cheap), and add brand vetting if the throughput math justifies it (a one-time $40).
What you don't want is to find out at 11:00 AM, with the sale ending at noon and 19,000 people still in the queue.
The practical takeaway
Throughput is carrier physics, not a feature you can buy your way around entirely. But you can see your real numbers, plan around them, and raise the ceiling when volume justifies it. The senders who get burned are the ones who never knew the ceiling existed until they hit it mid-blast.
If you want to see what your campaign tier and throughput actually allow before your next big send, our pricing page lays out the volume tiers, and you can start with 20 free test sends — pay-as-you-go, no monthly platform fee — to test real send timing. Run a small blast, watch the pacing, then back-time the big one with confidence.