Text message marketing works when a few conditions hold: the list opted in, the sender is registered, and the message gives the reader a reason to act now. When those conditions are missing, SMS fails, and it costs you money each time it does. Most of the skepticism about SMS comes from people who saw the second case, or who got tired of inflated statistics that no sender can verify.
This post doesn't give you a headline number. It covers the metrics you can measure, what moves them, how a campaign runs from first consent to the last reply, and a worked cost example with exact math. We make Ready, so the mechanics described here are how our platform handles each step. The patterns apply to any registered sender.
What you can actually measure
SMS gives a sender three metrics you can trust, plus revenue if you track it.
- Delivery rate. The share of sent messages the carrier reports as delivered. This is the closest thing to a health check. If delivery drops, the problem is usually registration, content filtering or bad numbers, not your copy. Our post on what "delivered" really means covers what a delivery receipt confirms and what it doesn't.
- Reply rate. Inbound replies divided by delivered messages. For conversational texts to an opted-in list, such as appointment confirmations, quote follow-ups or "still interested?" check-ins, reply rates are usually high. Promotional sends to a large list reply far less, because nobody needs to reply to a coupon.
- Click rate. Clicks on a tracked link divided by delivered messages. This is the main metric for promos. It varies widely by offer, list age and audience, so measure your own baseline instead of copying someone else's.
- Revenue or conversions. Orders, booked appointments or paid invoices attributed to the send. This is the metric that settles whether SMS works for you.
If a vendor quotes you a metric that isn't on this list, ask how they measured it.
What drives results (and what doesn't)
| Factor | Effect on results | Why |
|---|---|---|
| Consent | Large | Opted-in contacts expect the text. Cold contacts complain, opt out and invite carrier filtering. |
| Registration (10DLC) | Large | Carriers filter unregistered traffic, so a message that never arrives can't convert. |
| Timing relative to intent | Large | A text sent minutes after a form fill or missed call reaches the person while they still care. |
| A clear single action | Medium | One link or one question beats three. |
| Segment fit | Medium | A message to past buyers of a product performs differently than the same message sent to everyone. |
| Clever copy | Small | Copy matters less than the four factors above. |
| Emoji | Usually negative on cost | One emoji drops the segment limit from 160 to 70 characters. |
Our stance on the first row is firm. Cold outreach belongs on the phone and in the mail. SMS is for people who opted in or who replied to you. A list you bought will lose money on SMS and expose you to TCPA claims of $500 to $1,500 per text. If your list is thin, start with growing it compliantly before you send anything.
Why "approved" isn't the same as "delivered"
Registration gets your number onto a sanctioned route. It doesn't guarantee every message gets through. Carriers still screen content: shortened links, phrasing that reads like a loan offer, or messages that don't match the use case you registered can all be filtered after approval. If your delivery rate falls after a successful registration, that is the likely cause. We cover it in content-level blocking that registration doesn't fix.
How a campaign runs, end to end
The order matters, because several of these steps take days.
- Collect consent. Use a web form, checkout checkbox, keyword or in-person signup, with clear wording about what the person will receive. Store the opt-in time, the wording and the page URL in your own system or store. Ready records the sender's attestation on each campaign you send and on each API send that attests consent: who sent, to how many, and when. That record is not a per-contact consent log, so keep the per-contact proof yourself.
- Register the brand and campaign. In Ready this happens in-app. There's no setup fee. The charge at submit is the first month, $25. After that the monthly cost is $25/mo for registration and $2 per number. Most approvals take 2 to 7 days.
- Use the waiting period well. The first 20 texts are free one-to-one sends, so use them to test message formatting before you pay for registration, because they end when registration is paid. An account can send up to 500 texts a month before registering, at its normal per-text rate. If you bought a number before registering, it sends on Ready's shared registration at the same rate while your own registration is in review. To send, you add a card and get a number, which is $2 a month with the first month charged when you get it.
- Write the message to fit a segment. Plain GSM-7 text fits 160 characters in one segment. Longer messages split into 153-character segments. Ready replaces curly quotes, long dashes and ellipses with plain ones before sending, so those never change your count. Emoji still do.
- Send. Ready refuses opted-out and numbers on your Ban list up front and doesn't charge for them. Quiet-hours enforcement holds texts that would land outside permitted hours in the recipient's area and sends them later. A held text is charged only when it actually sends. The best time to send is a separate question from what's legally allowed. 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 not sent, and you send it again once the window opens; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
- Handle replies. Inbound messages land in the Inbox, and in GoHighLevel if the account is connected. A STOP reply is honored automatically, and the opt-out applies across every campaign.
- Measure. Compare delivery, replies, clicks and revenue against the cost of the send.
For a more detailed walkthrough, see how to run an SMS campaign step by step.
A worked cost example
Assumptions: 2,000 opted-in contacts and a 150-character promo with no emoji, which is 1 segment. Ready's Standard rate is $0.0075 per segment plus a $0.0045 carrier fee per segment. Replies are billed like sent texts. For this example, assume 10% of contacts reply with a one-segment message.
- Outbound: 2,000 × 1 segment × $0.0075 = $15.00, plus 2,000 × $0.0045 in carrier fees.
- Replies: 200 × 1 segment × $0.0075 = $1.50, plus 200 × $0.0045 in carrier fees.
- Subtotal: $44.00 in per-segment rate, plus 2,200 × $0.0045 in carrier fees.
That subtotal excludes the compliance surcharge. TCPA/DNC scrubbing and landline validation each cost an extra $0.003 per segment when switched on for an account. Both are off by default. With both on, the 2,200 segments add 2,200 × $0.003 × 2 = $13.20.
The same promo with one emoji
Add a single emoji and the 150 characters no longer fit in one segment. They split into 67-character unicode segments: 150 ÷ 67 rounds up to 3 segments.
- Outbound: 2,000 × 3 × $0.0075 = $45.00, plus 6,000 × $0.0045 in carrier fees.
The emoji triples the outbound cost. That's the most common avoidable cost increase we see in campaign math.
Does it pay back?
Assumptions: 2% of delivered contacts click, 20% of clickers buy, and the average order is $60. For simplicity, the example assumes all 2,000 messages were delivered.
- 2,000 × 2% = 40 clicks
- 40 × 20% = 8 orders
- 8 × $60 = $480 in revenue
Against a cost of roughly $44 plus carrier fees, that's a clear win. Halve each assumption and the result changes: 20 clicks, 2 orders, $60, which barely covers the cost. Run the numbers with your own click and conversion rates, not ours. The SMS ROI calculation guide covers margin, attribution windows and the opt-out cost of each send.
Where SMS tends to underperform
To be fair to the skeptics, SMS underperforms in these cases:
- Long-consideration purchases with no trigger. A cold "check out our new service" text to a two-year-old list rarely moves anyone.
- Over-sending. Every send costs some opt-outs. A weekly promo cadence can shrink a list faster than it earns.
- Content that needs explaining. If the offer takes three paragraphs to explain, use email and send a short text that points to it.
- Pure price competition. If your only goal is the lowest per-message cost, a raw carrier API or GoHighLevel's LC Phone will cost less per message than Ready. Ready is built for teams that want registration handled in-app, compliance controls on by choice, and a CRM, inbox and automations included with the texting.
The practical takeaway
SMS works for timely, expected, single-action messages sent to people who asked to receive them, from a registered number, at a sensible hour. It fails when any of those conditions is missing. Measure delivery, replies, clicks and revenue. Ignore any metric a sender can't verify. Work out the cost per segment before you send, and check for emoji first.
If you want to test this on your own list, sign up, send your first 20 one-to-one texts to check formatting, then register and run a small first campaign. Current rates are on our pricing page.