If you're building a business case for SMS, someone will ask what results to expect. Most published "SMS statistics" pages can't answer that well. They're recycled from vendor decks, they don't say how anything was measured, and they mix transactional texts with promotional campaigns as if they were the same channel.
This post does two things. It gives you round, honestly framed ranges for the four metrics a sender can actually measure: delivery, reply, click and conversion. Then it shows you how to measure your own numbers and turn them into cost per result, with the math worked out on Ready's pricing. Your own data will beat any benchmark within a month of sending, so the measurement half matters more than the ranges.
The four metrics you can actually measure
A text either reaches a handset or it doesn't. After that, the recipient either does something you can see or does nothing. That leaves four metrics worth tracking:
- Delivery rate: delivered messages divided by messages sent. It shows list quality and carrier filtering.
- Reply rate: unique contacts who replied divided by messages delivered. This is the core metric for two-way use cases such as appointment confirmations, lead follow-up and support.
- Click rate: unique clicks on a tracked link divided by messages delivered. It matters for promotional texts that drive to a page.
- Conversion rate: completed goals (orders, bookings, payments) divided by messages delivered. This is the number your business case actually rests on.
Track opt-out rate as well, meaning STOP replies divided by delivered. It isn't a success metric, but it tells you whether your frequency and content are wearing out the list.
Benchmark ranges, framed honestly
These are round industry approximations, not measured Ready statistics. They vary a lot by audience, consent quality and message type. Use them to sanity-check your projections, not to promise results.
| Metric | Typical range (approximate) | What moves it most |
|---|---|---|
| Delivery rate | High 90s % on registered, consented lists | Registration, list hygiene, content filtering |
| Reply rate (conversational/transactional) | Highest of any SMS metric for opted-in lists | Asking a direct question, sender recognition |
| Reply rate (promotional) | Low single digits % | Whether the text invites a reply at all |
| Click rate (promotional) | Roughly mid-single digits to low teens % | Offer strength, link placement, list freshness |
| Conversion rate (promotional) | Roughly 1 to 5% of delivered | Offer, landing page, timing |
| Opt-out rate per send | Under about 1% is healthy | Frequency, relevance, consent clarity |
A few caveats on this table:
- Transactional and promotional numbers are different channels. A "reply C to confirm" appointment text and a 20%-off promo shouldn't share one benchmark. Split them in your reporting from day one.
- Consent quality dominates everything. A list of people who texted a keyword last week will beat a list imported from a 2019 spreadsheet on every metric. Our post on average SMS opt-in rates covers how lists get built in the first place.
- We don't cost out cold lists. Cold outreach belongs on the phone and in the mail. SMS goes to people who opted in or replied. Any benchmark built on cold texting describes a practice we won't model.
How to measure your own numbers
Delivery rate
Pull your sent and delivered counts per campaign. On Ready you can see message status in the app, or page through GET /v1/messages via the API (docs). If delivery falls well below the high 90s, look at three things first:
- Registration. Unregistered traffic gets carrier-filtered. Most approvals take 2 to 7 days, and registration has no setup fee: the first month, $25, is charged at submit.
- Content. Approved campaigns can still get filtered for link shorteners or spammy phrasing. See why approved campaigns still get filtered.
- Daily caps. A brand on the lowest T-Mobile trust tier is capped at roughly 2,000 messages a day. Sends above that get held back, which looks like a delivery problem when it's actually a throughput limit.
Reply rate
Count unique repliers, not total inbound messages. One chatty customer who sends six texts is one reply. Exclude STOP and HELP keywords from the count, then report STOP separately as opt-outs. Ready honors STOP automatically and propagates the opt-out across campaigns. You can pull the list with GET /v1/opt-outs.
Click rate
Ready doesn't do the click attribution for you, so tag every link with UTM parameters (for example, utm_source=sms&utm_campaign=spring-promo) and count sessions in your analytics tool. Use one campaign tag per send so you can compare them. Skip public link shorteners, because carriers distrust them. Use your own domain.
Conversion rate
Attribute orders or bookings to the UTM tag, a unique promo code per campaign, or both. Promo codes catch the customer who saw the text and later typed your URL. Pick an attribution window up front, such as seven days, and keep it the same across campaigns.
Worked example: turning rates into cost per conversion
Here's the calculation a business case needs. All figures below are stated assumptions, not predictions.
Assumptions:
- 5,000 opted-in contacts
- Ready Standard rate: $0.0075 per segment, plus a $0.0045 carrier fee per segment
- 100 orders attributed (2% of sent), average order $60, so $6,000 in attributed revenue
- 250 contacts reply with a one-segment message (replies are billed like sent texts)
Version A: 150 characters, plain text
150 GSM-7 characters is 1 segment.
- Outbound: 5,000 × 1 = 5,000 segments → 5,000 × $0.0075 = $37.50, plus 5,000 × $0.0045
- Replies: 250 segments → 250 × $0.0075 = $1.88, plus 250 × $0.0045
- Per-segment rate subtotal: 5,250 × $0.0075 = $39.38, plus 5,250 × $0.0045
- Rate cost per order: 52.5 × $0.0075 = $0.39, plus 52.5 × $0.0045
- Total: 5,250 × $0.012 = $63.00, so about $0.63 per order
Ready's all-in prices per segment include the carrier fee but not screening: Scrub lists and Number validation, the two switches in Settings under Compliance, each add $0.003 per segment when switched on, shown as screening on your bill, and both are off by default. Unless you turn the opt-out footer off, the first text to each contact, and one again from time to time, also gets "Reply STOP to opt out" and your business name if the message does not already have them, so a text close to the segment limit can bill one more segment.
Version B: 175 characters with one emoji
The emoji switches the message to unicode, which allows 67 characters per segment in a multipart message. 175 ÷ 67 rounds up to 3 segments.
- Outbound: 5,000 × 3 = 15,000 segments → 15,000 × $0.0075 = $112.50, plus 15,000 × $0.0045
- Replies: same 250 segments → 250 × $0.0075 = $1.88, plus 250 × $0.0045
- Per-segment rate subtotal: 15,250 × $0.0075 = $114.38, plus 15,250 × $0.0045
- Rate cost per order: 152.5 × $0.0075 = $1.14, plus 152.5 × $0.0045
- Total: 15,250 × $0.012 = $183.00, so about $1.83 per order
With identical performance, the emoji nearly triples cost per order. If the emoji version doesn't convert close to 3x better, it loses. Ready swaps curly quotes, long dashes and ellipses for plain characters before sending, so those won't push you into unicode. Emoji and other non-GSM characters still will.
If you turn on scrubbing for Version A, add 5,000 × $0.003 = $15.00 for the outbound send.
Add the fixed monthly cost
Registration runs $25/mo + $2 per number. With one number, that's $27/mo. Spread over four campaigns a month like Version A, each campaign carries a quarter of it, shared across its 100 orders. For a deeper version of this model, including how to set a break-even, see how to calculate SMS marketing ROI.
Benchmarks by use case are more useful than averages
A single "SMS conversion rate" hides most of the signal. Compare yourself against your own use case:
- Transactional and reminders. Judge these on reply and confirmation rate. High reply rates are normal because you asked a question the person cares about.
- Lead follow-up. Judge on reply rate and time to first reply. The value comes from speed. Our speed-to-lead post covers why minutes matter.
- Recovery flows (failed payments, abandoned carts). Judge on recovered dollars per send, not clicks. The SaaS dunning math works through one of these.
- Promotional campaigns. Judge on conversion rate and cost per order, and watch opt-out rate closely, because this is where list fatigue shows up first.
What actually moves the numbers
From the levers you control, roughly in order of impact:
- Consent and recency. Fresh, explicit opt-ins outperform old lists on every metric.
- Registration that matches what you send. A mismatched use case can get you throttled, which drags delivery down.
- Segment discipline. Keep promos to one segment where you can. This changes cost per result, not response.
- Sending hours. Ready holds sends outside permitted local quiet hours based on the recipient's area, so a text queued at 11 PM goes out later instead of irritating someone at night. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
- One clear ask. Texts with a single action, like "Reply Y" or one link, beat texts that try to do three things.
The practical takeaway
Treat published benchmarks as a range for the first draft of your business case, then replace them with your own numbers. Measure delivery, unique replies, tracked clicks and attributed conversions per campaign. Keep transactional and promotional reporting separate, and always convert rates into cost per result using the real segment count, because a single emoji can triple the bill.
If you want to run a test send against your own list, you can create an account. The first 20 one-to-one texts are free, and campaigns are billed from the first text. Pricing is on the pricing page.