SMS Marketing ROI: How to Measure It Properly
SMS marketing ROI is (SMS-attributed profit − program cost) ÷ program cost. The inputs that make it honest: margin-based revenue, all-in costs including carrier fees, and attribution you actually trust. Benchmarks for 2026: automated texts earn around $0.74 per message; campaigns around $0.15. Here is the full calculation, with a worked example.
Count every cost. Platform subscription, per-message and carrier fees, list-acquisition spend (the popup incentive is an SMS cost, even when finance books it as a discount), and management time or agency fees. Per-message economics make SMS unlike email — every send has a marginal price, which is why volume discipline is an ROI lever rather than a style preference, and why “send more” is sometimes the exact wrong answer to a revenue target.
Measure revenue at the margin, with honest attribution. Use your platform’s attributed revenue but know its windows, deduplicate against email so one order is not credited twice, and convert revenue to gross profit before computing ROI. A 10× revenue return at 30% margin is a 3× profit return — still excellent, differently sized, and the version your P&L recognizes.
A worked example. Suppose a 10,000-subscriber list gets four campaigns a month — 40,000 sends — plus roughly 6,000 automated messages from cart, browse, and back-in-stock flows. At the Omnisend benchmark rates of $0.15 and $0.74 per message, that models to about $6,000 of campaign revenue and $4,400 of automated revenue: $10,400 total. At 60% product margin, $6,240 of profit. Against, say, $1,500 of platform, message, and carrier costs plus management time, the channel clears a healthy multiple — and the automated 15% of sends produced over 40% of the revenue, which is the mix insight the blended average hides.
Benchmark the split, not the average. The channel’s economics concentrate in automation: Omnisend’s 2026 data shows automated SMS converting at 0.77% versus 0.12% for campaigns, and Postscript’s benchmarks put abandoned-cart texts at $3.52–$10.95 earned per message for the middle half of Shopify stores. Our own programs land in that band — Darc Sport’s campaigns earned $7.89 per message sent, with SMS revenue up 29.8% in two months. If your automated-to-campaign split leans campaign, your ROI problem is a mix problem before it is anything else.
Account for list growth as an investment, not a cost of the month it happened. The popup discount that captures a subscriber books as an expense today, but the subscriber pays back across their whole messaging lifetime — Postscript’s benchmarks put SMS subscriber lifetime value between $25 and $553 across the 25th to 90th percentile of stores. Amortize acquisition incentives against that horizon and list growth usually reads as your best-returning SMS line rather than your worst: a $10 welcome incentive against even the low end of that value band clears quickly. The reverse discipline applies too — a subscriber who never converts is not free, since every message sent to them carries marginal cost. Prune the never-engaged on a schedule; a smaller list with clean economics beats a padded one on both the ROI math and deliverability.
The incrementality caveat. Attributed is not incremental — some SMS-credited orders would have happened anyway through email or direct visits. The clean check is a periodic holdout: suppress a random slice of the audience from a campaign and compare purchase rates. Even one holdout test a quarter keeps the ROI number honest and usually strengthens the case for flows over blasts.
The two silent ROI killers. Over-sending — each marginal blast costs real money and burns goodwill measurable in opt-outs — and consent shortcuts, where compliance exposure converts into legal risk no ROI line captures. Both are program-design failures; the guardrails are in our SMS best practices.
Platform choice moves the denominator. Pricing models differ meaningfully between the leading platforms — usage-based tiers versus negotiated contracts — and at volume that difference is an ROI input, not a procurement detail. The cost architecture comparison is in Attentive vs Postscript. And if measurement itself is the blocker, it is a solvable one: our SMS programs ship with deduplicated attribution reporting as a standing deliverable, because an unmeasured channel is an unmanaged one.

