- SMS marketing ROI formula (the basic one): (SMS revenue − SMS cost) ÷ SMS cost × 100. That’s the version Shopify’s own SMS analytics guide gives.
- It ignores product cost and discounts, so a discount-heavy blast can show a big ROI and still lose money.
- Use profit ROI to budget: (SMS revenue × gross margin − discounts − SMS cost) ÷ SMS cost × 100.
- Klaviyo’s 2026 data says SMS flows are just 7.6% of SMS sends but 45.2% of SMS revenue, so work out ROI for flows and campaigns separately.
- Run your own numbers in the SMS ROI calculator, then test a holdout before you scale sends.
Ask ten Shopify stores how their texts are doing and most will quote the same SMS marketing ROI formula. Revenue minus cost, divided by cost. Big number, everyone happy.
The problem? That formula counts every dollar of revenue as if it was free to make. It forgets what the product cost you, what the discount cost you, and whether the customer would have bought anyway.
So here are all three versions of the formula, what each one hides, and a worked example you can copy. Tricks first, maths right after.
SMS ROI CalculatorEnter subscribers, sends, cost per message, click rate, order rate and AOV and see your SMS return in seconds.Run my numbers →The basic SMS marketing ROI formula
This is the one in Shopify’s own SMS analytics guide:
Shopify counts platform fees plus creative help (copywriters, designers, strategists) as cost. That’s a fair start. It’s fine for comparing one campaign with another inside the same store. It is not fine for deciding whether SMS deserves more budget.
3 tricks before you trust any SMS ROI number
1. Split flows and campaigns
Klaviyo’s 2026 SMS benchmarks, based on over 183,000 Klaviyo customers, say SMS flows are just 7.6% of sends but drive 45.2% of SMS revenue. Flows earn roughly 8× more revenue per recipient than campaigns. If you blend them, your abandoned cart texts hide a weak promo calendar.
2. Put discounts on the cost side
A “15% off, text only” code is a cost. So is the welcome incentive you gave to get the number in the first place. If it doesn’t show up in the formula, your ROI is inflated by exactly that amount.
3. Count segments, not messages
Long texts and emoji can split a message into more than one segment. Shopify’s SMS billing page confirms a message split in two is charged as two. If your cost line assumes one segment per text, your real cost is higher than you think.
Version 2: the profit SMS ROI formula (use this one to budget)
Now you’re comparing profit with spend. Same idea as break-even ROAS for ads: revenue only matters after you take out what it cost to deliver the product.
A Shopify store sends 4 SMS campaigns a month to 8,000 subscribers, plus 2,000 flow messages. Every text is 1 segment. The store’s rate card is $0.015 a segment (example rate, use your own).
- Segments: 32,000 + 2,000 = 34,000. Send cost: 34,000 × $0.015 = $510. Add a $60 platform share: total $570.
- Attributed SMS revenue: $9,000.
- Basic ROI: ($9,000 − $570) ÷ $570 × 100 = 1,479%. Looks incredible.
- Now the truth. Gross margin is 55%, and $1,100 of discounts were redeemed with SMS codes.
- Profit ROI: ($9,000 × 55% − $1,100 − $570) ÷ $570 × 100 = ($4,950 − $1,670) ÷ $570 × 100 = 575%.
Still very good. But less than half of the number on the dashboard. And that’s before we ask how much of the $9,000 would have happened anyway.
Version 3: incremental ROI (the honest one)
Attribution says “this order came after a text”. It doesn’t say “this order happened because of a text”. Someone who was going to buy on Friday anyway clicks your Thursday SMS, and SMS gets the credit.
The fix is a holdout group:
- Pick a random 10–20% of your SMS subscribers and exclude them from campaigns for 4–6 weeks.
- Keep everything else the same: email, ads, site offers.
- Compare revenue per subscriber in the texted group vs the holdout.
Same store. 6,800 subscribers get texts, 1,200 are held out for a month.
- Texted group: $2.10 revenue per subscriber. Holdout: $1.40.
- Incremental revenue: ($2.10 − $1.40) × 6,800 = $4,760, versus $9,000 attributed.
- Incremental ROI: ($4,760 × 55% − $1,100 − $570) ÷ $570 × 100 = ($2,618 − $1,670) ÷ $570 × 100 ≈ 166%.
Still profitable. Now you know by how much, and you can make a real call on adding a fifth campaign or cutting the discount.
Holdouts are hardest on campaigns. Flows like abandoned cart are more likely to be truly incremental, because the person was about to leave. That’s another reason to keep the two apart.
SMS marketing ROI formula for flows: use revenue per recipient
For flows, the cleanest input is revenue per recipient (RPR): revenue attributed ÷ messages delivered. Then:
Klaviyo’s 2026 abandoned cart benchmark report puts abandoned cart SMS flows at an average of $4.48 RPR, with the top 10% of brands at $8.69. Across all SMS flows, Klaviyo says the top 10% get RPR above $5.
- Your abandoned cart text earns $3.00 RPR. Margin 50%. Two segments per text at $0.015 (example rate).
- Profit per text: $3.00 × 50% − $0.03 = $1.47. On 1,500 texts a month that’s about $2,205 profit before discounts.
- Cut the text to one segment and the cost halves. Tiny saving per message, but it adds up across every flow.
If your cart text is well below that, fix the flow before you add campaigns. My guide to the Klaviyo abandoned cart flow covers timing and filters, and my abandoned cart recovery rate benchmark post shows how to measure it without fooling yourself.
What to compare your SMS numbers against
There’s no honest public “good SMS ROI” number. Every brand counts cost differently. But Klaviyo does publish the inputs. From the 2026 SMS benchmarks:
| Metric (Klaviyo 2026) | Campaigns | Flows |
|---|---|---|
| Average click rate | 5.6% | 9.65% |
| Top 10% click rate | 10.44% | 16.6% |
| Average order rate | 0.27% | 1.9% |
| Top 10% order rate | 0.61% | 3.92% |
Klaviyo also lists average SMS revenue per recipient by industry. For example: clothing and accessories at $0.32 for campaigns and $2.31 for flows, health and beauty at $0.32 and $2.09. Use your own industry’s row as the RPR input in the profit formula and you get a sanity check for your ROI.
4 ways to lift SMS ROI without sending more
- Move budget from blasts to flows. Abandoned cart, browse abandonment and welcome texts. The benchmark gap above is huge.
- Segment campaigns. Text engaged buyers, not every number you have. Fewer sends, same orders, lower cost.
- Shrink the discount. Test free shipping or early access against a percentage off. Every point of discount you save goes straight into profit ROI.
- Write one-segment texts. Short, plain characters, one link. See the is SMS marketing worth it guide for the full cost breakdown.
Want to see where email beats SMS for the same message? Work out email the same three ways with my email ROI formula guide, compare the two in the email ROI calculator, and check per-message cost in the SMS pricing calculator.
A one-page SMS ROI sheet you can copy
- Revenue: attributed SMS revenue, split into flows and campaigns. Same attribution window every month.
- Margin: your gross margin after cost of goods and shipping.
- Discounts: total value of SMS-only codes redeemed.
- Cost: segments × rate, platform share, incentives, labour.
- Output: basic ROI (for comparing sends), profit ROI (for budgets), incremental ROI (once a quarter, with a holdout).
If profit ROI stays positive and the holdout agrees, send more. If basic ROI looks great but profit ROI is near zero, your discounts are doing the work, not your texts.
Want Inboxoo to set this up for you?
We build and run Klaviyo email & SMS retention for Shopify brands and get paid on results.
Chat on WhatsAppWant to know the exact quotation? Contact now
FAQ
What is the formula for SMS marketing ROI?
The basic formula is (SMS revenue minus SMS cost) divided by SMS cost, times 100. Shopify’s SMS analytics guide uses this version. For budgeting, a profit version is safer: multiply SMS revenue by your gross margin, subtract discounts and SMS costs, then divide by SMS costs.
What costs should go into SMS ROI?
Per-message or per-segment charges, the SMS share of your platform subscription, the cost of any sign-up incentive, discounts redeemed through SMS, and the time or agency cost to write and manage the messages. Leaving out discounts and incentives is the most common reason SMS ROI looks better than it is.
What is a good SMS marketing ROI?
There is no single trustworthy public ROI benchmark, because every brand counts cost and revenue differently. A practical rule: profit ROI must be clearly above zero after margin and discounts, and the program should still look positive when you compare a holdout group that received no texts.
Should I calculate ROI for SMS flows and campaigns separately?
Yes. Klaviyo’s 2026 SMS benchmarks say flows are 7.6% of SMS sends but drive 45.2% of SMS revenue, and flows earn about 8 times more revenue per recipient than campaigns on average. A blended number hides weak campaigns behind strong flows.
Does attribution change SMS ROI?
A lot. A longer attribution window credits SMS with orders that email, ads or the customer themselves would have driven anyway. Keep the window the same every month, and use a holdout test to see how many orders the texts really added.
How do I calculate SMS revenue per recipient?
Divide the revenue attributed to an SMS send by the number of messages delivered. Klaviyo’s 2026 benchmarks put abandoned cart SMS flows at an average of $4.48 revenue per recipient, with the top 10% of brands at $8.69.
Want Inboxoo to set this up for you?
We build and run Klaviyo email & SMS retention for Shopify brands and get paid on results.
Chat on WhatsAppWant to know the exact quotation? Contact now
Keep reading
Is SMS marketing worth it for Shopify?
Real cost per text, 2026 benchmarks, a break-even formula and a 30-day test to decide if texting pays for your store.
8 min read →Flow benchmarksAbandoned cart recovery rate benchmark
The 3 denominators, verified 2026 benchmarks, and 7 fixes for a flow that underperforms.
7 min read →Ads mathsThe break-even ROAS formula
Which costs belong in the formula, how to set a profit target, and why repeat orders from email change what you can pay for a customer.
7 min read →- Shopify: SMS analytics, top metrics to track (Apr 2026)
- Klaviyo: 2026 SMS marketing benchmarks
- Klaviyo: 2026 abandoned cart benchmark report
- Shopify Help Center: Pricing and billing for SMS marketing campaigns
Worked examples in this post use illustrative numbers, not client results. Benchmarks are linked to their original publisher.