The same 10 buyers produce a 1% buyer rate among 1,000 delivered recipients and a 10% click-to-purchase rate among 100 clickers.
video fallback bg
Kyle Bigley

Founder & CEO, TxtCart

Last Updated
Reading Time
Get SMS insights weekly

Join 4,000+ marketers who get actionable SMS tips delivered to their inbox.

SMS Marketing Analytics for Shopify: The Metrics That Matter and What They Mean

SMS marketing analytics is the practice of measuring how a text message moves from delivery to click to order, and what that cost, so you can decide what to change in your next send. For a Shopify store, a result only means something once you know three things about it: its denominator, its attribution window and rule, and its cost scope.

Key Takeaways

  1. Check the denominator first. People, messages, clicks and orders are different bases, and the same send can produce a 1% rate or a 10% rate depending on which one you divide by.
  2. Separate the attribution rule (which orders qualify) from the attribution window (how long the platform keeps looking). Both change reported revenue.
  3. Reported ROI measures revenue against a defined slice of cost. It is not profit. Net contribution is the figure to budget against.
  4. Do not use open rate as a core SMS metric. Track delivery, clicks, replies, orders, revenue and opt-outs.
  5. Use external benchmarks to raise questions and your own baseline, calculated the same way each month, to decide what to change.

Most guides give you a list of metrics and a benchmark for each. That is where the trouble starts. Two reports can show a “conversion rate” more than ten times apart and both be correct, because they divide by different things. A dashboard can show strong revenue from a text the shopper never clicked, because the window counted an order that would have happened anyway.

This guide gives you three checks to run before you trust any SMS number, a reference table for the metrics worth tracking, and a way to turn each one into a decision. It also covers why your SMS dashboard and Shopify disagree, how reported ROI differs from profit, and how to set up tracking so the numbers you compare are comparable.

Three checks before you trust any SMS number

Run these on every figure, whether it comes from your dashboard, a competitor’s blog or a benchmark report.

1.  Denominator. Name the unit. People, messages, clicks and orders are four different bases. Revenue per recipient divides by people. Revenue per message divides by messages, and the two drift apart as soon as one shopper receives several texts. A “conversion rate” might divide by delivered messages or by unique clickers. Until you know which, you cannot compare it with anything.

2.  Window and rule. Two settings decide whether an order counts as SMS revenue. The rule says which orders qualify, for example every order after a message, or only orders tied to a link click or discount code. The window says how long after the message or click an order still counts. Change either one and the same sends produce different revenue.

3.  Cost scope. Attributed revenue is not profit. Reported ROI uses whichever costs the platform includes, and a full view adds the ones it leaves out: carrier and platform fees, discounts you gave and the cost of the product you shipped.

Once a number passes those checks, put it to work by asking which of four questions it answers. Is the message reaching people (delivery rate, opt-out rate, net list growth)? Is it engaging them (click-through rate, replies)? Is it earning (orders, revenue per recipient, average order value, reported ROI)? Is it profitable (net contribution per send)? Every metric in the next section is tied to one of those questions and to an action.

The SMS metrics worth tracking, with their denominators

The table states each metric’s formula and unit so you can match it against any report you read. Percentage rates are multiplied by 100. The unit column reads numerator over denominator, so “people over messages” means a count of people divided by a count of messages. Where vendors define a metric differently, use the definition here and note it when you compare.

For a practical review of permission, targeting, overlapping sends and unanswered replies, use our SMS marketing mistakes checklist.

MetricFormulaUnitWhat it tells youCheck when it moves
Delivery rateDelivered messages ÷ sent messages × 100MessagesWhether texts reach phonesList quality, consent, sender setup, carrier filtering
Click-through rateUnique clickers ÷ delivered messages × 100People over messagesWhether the message and offer earn a visitAudience, offer, link placement, message length
Reply rateShoppers who replied ÷ delivered messages × 100, excluding STOPPeople over messagesWhether the message starts a conversationQuestions in the replies, handoff speed
Order rateAttributed orders ÷ delivered messages × 100Orders over messagesOrders earned per message sentAttribution settings, landing page, offer
Click-to-purchase rateUnique attributed buyers who clicked ÷ unique clickers × 100People over peopleHow well the page converts the people who clickedLanding page, price, shipping, checkout
Buyer rateUnique attributed buyers ÷ unique delivered recipients × 100People over peopleShare of your audience that boughtSegment mix, send frequency
Revenue per recipientAttributed revenue ÷ unique recipientsDollars per personWhat each person on a send is worthSegment, offer, window
Revenue per messageAttributed revenue ÷ delivered messagesDollars per messageValue of each text sent. Differs from revenue per recipient when people get several textsSend frequency, flow length
Average order valueAttributed revenue ÷ attributed ordersDollars per orderWhether discounts or bundles change basket sizeOffer design, free-shipping threshold
Opt-out rateUnique opt-outs ÷ delivered messages × 100, per sendPeople over messagesFatigue, relevance, consent qualityFrequency, targeting, how people joined the list
Net list growth(New subscribers – opt-outs) ÷ list size at start × 100People over peopleWhether the list grows faster than it leaksSign-up sources, opt-out spikes
Reported ROI(Attributed revenue – platform-defined spend) ÷ that spendRatioA defined, revenue-based return, not profitAttribution window and rule, which costs are counted
Net contribution per sendAttributed revenue – the send costs you include – product costDollarsWhether a send made moneyDiscounts, product margin, fees outside reported ROI

Open rate is missing on purpose. Standard SMS has no open tracking, so any figure is an estimate built from clicks or replies, and it is not comparable between platforms. Delivery is not attention, so a very high delivery figure says nothing about whether anyone read the text. Track clicks and replies instead, and treat a platform’s “open” number, if it shows one, as secondary.

Why your numbers differ from every benchmark

Published SMS benchmarks disagree by large margins, and the denominator explains most of the gap. Here is what two current sources report, with the basis each one gives.

SourceMetricReportedBasis stated
Klaviyo SMS benchmarks (published January 23, 2026, modified September 24, 2026)Average click rate5.6% campaigns, 9.65% flowsOver 183,000 Klaviyo customers. Collection period and formula not stated
Klaviyo, same pageAverage order rate0.27% campaigns, 1.9% flowsFormula not stated
PushOwl metrics guide (June 4, 2026)Conversion rate5-15% promotional, 15-30% triggeredAttributed orders ÷ clicks within the attribution window. No source named

A 0.27% order rate and a 5% conversion rate sound like different worlds. Take an illustrative send of 1,000 delivered messages and 100 unique clickers, with 10 attributed orders from 10 different buyers who clicked. The click-through rate is 10%. The order rate is 1% of delivered messages. The click-to-purchase rate is 10% of clickers. Ten orders, and the same send can be reported as 1% or 10%.

Flow from 1,000 delivered messages to 100 unique clickers to 10 attributed orders, giving a 10% click-through rate, a 1% order rate and a 10% click-to-purchase rate

Use benchmarks for context and your own history for decisions. Pull your last 90 days under one set of definitions, then judge each send against that baseline. For benchmark detail by industry and campaign type, see our SMS conversion rate guide. For broader market figures, see text marketing statistics.

Attribution rules, windows and why your dashboard disagrees with Shopify

Attribution answers one question: which orders get credited to a text. The rule decides which kinds of orders qualify. The window decides how long after the message or click an order can still count. Both are settings, and both change your revenue figure without changing a single shopper’s behavior.

TxtCart documents its settings in the Help Center. Rules can be set for the whole account, for a single flow, or for one message node, and each deeper level can only be stricter than the one above it. Flows can use All Conversions, Discount/Link Clicked, or None. Campaigns can use All Conversions or None, because Discount/Link Clicked is not available for campaigns. The windows are configurable in your messaging settings. TxtCart’s attribution guide describes the controls, and its ROI article notes that a broader window credits more orders and raises reported ROI, while a stricter one lowers it. Keep your settings consistent over time so trends stay comparable.

Here is an illustrative example. A shopper receives a text at 9:00 a.m. on Monday, clicks the link at 9:05, and buys on Thursday at 4:00 p.m. Under a 1-day window that order is not SMS revenue. Under a 7-day window it is. Run the same campaign under each and you get two different revenue figures from identical behavior. If you compare your numbers with another store’s, or with last quarter’s, make sure the windows match first.

Why your SMS dashboard and Shopify rarely agree:

  • The SMS platform credits orders by its own attribution model, while Shopify reports orders and sales by its own rules.
  • The windows differ, or one tool counts an order after a message is received and the other only after a click.
  • Order exclusions differ, such as tags, test orders or draft orders.
  • Time zones differ, or one report dates revenue by send date and the other by order date.
  • Refunds and cancellations land in different periods.

Do not add up the attributed revenue from your SMS tool, your email tool and your ad platforms and call the total store revenue. Each tool credits the same order to itself. Instead, take a sample of orders from one day and trace each through Shopify, your SMS platform and analytics. Differences you can explain are fine. Differences you cannot are the ones to chase.

From attributed revenue to profit

Three different numbers get called ROI. Keep them apart.

Attributed revenue is the order value your attribution rules and window credit to SMS. Reported ROI measures that revenue against a defined slice of cost. Net contribution is what is left after the costs you choose to include, such as product cost, fees outside reported ROI, and any other variable costs. Only the third tells you whether a send made money.

TxtCart’s dashboard ROI uses Marketing Spend, which is the spend tied to your campaigns and flows: messaging fees plus campaign fees. It leaves out carrier, platform, service and AI resolution fees. The formula, per the TxtCart Help Center, is:

ROI = (Total Attributed Revenue – Marketing Spend) ÷ Marketing Spend

It appears on the Home screen and on the Flows and Campaigns screens. Merchants who signed up before January 18, 2026 and remain on performance-based billing have transaction fees for recovered orders counted in their total SMS costs, so check how your own account’s costs are defined before comparing.

Here is an illustrative month with round numbers, not TxtCart pricing or results. Attributed revenue is $5,000, already net of discount codes, so you do not subtract discounts a second time. Marketing Spend is $500.

Reported ROI is ($5,000 – $500) ÷ $500 = 9, or 9x (900%). That is not the same as the 10x you get by dividing revenue by spend.

Now add costs the dashboard leaves out: $150 in carrier and platform fees, and product cost at 40% of revenue, or $2,000. Contribution after those listed costs is $5,000 – $500 – $150 – $2,000 = $2,350. Against total SMS cost of $650, that is about $3.62 of contribution per $1 spent. This still leaves out payment processing, fulfillment, shipping, returns and any other variable costs you bear, so subtract those too before calling it profit. It is a long way from 9x, and a better basis for budgeting.

The same $5,000 in attributed revenue read as 10x revenue to spend, 9x reported ROI and $2,350 contribution after listed costs, in an illustrative month

One more limit. Attributed orders include shoppers who would have bought anyway. Reported ROI and net contribution both describe credited orders, not proven lift. Only a holdout test, where a comparable group receives no messages, measures what SMS added.

To run your own numbers, use our SMS ROI calculator. For ways to raise the return once you can measure it, see how to drive more SMS marketing ROI from campaigns.

When a metric moves: what to check

A number is only useful if it points to an action. Pair each combination of movements with the first thing to check, and change one thing at a time so you can tell what worked. Compare flows with flows and broadcasts with broadcasts. A welcome flow and a Black Friday blast reach different audiences at different moments, so one is not a baseline for the other.

What you seeLikely causeCheck firstNext move
High delivery rate, low click-through rateWeak offer, wrong audience, buried linkSegment, message copy, link placementTest one change. See SMS A/B testing examples
High click-through rate, low ordersFriction after the clickLanding page, price, shipping, checkout, window settingFix the page before the message. See Shopify post-click friction
High reply rate, low purchase rateShoppers have questions the text does not answerThemes in replies, response speed, product page gapsAnswer the common question in the next message or on the page
Revenue up, opt-outs upShort-term gain from frequency or broad targetingOpt-out rate by segment and by sendNarrow the audience or cut frequency before the list shrinks
Low delivery rateList quality, consent, sender setup, carrier filteringNew sign-up sources, bounced numbers, sender statusClean the list. See SMS list cleaning for Shopify
Revenue jumped but orders did notHigher order value or a different product mix, or a window or rule was widened, or an exclusion removedAverage order value, product mix, attribution settings history, order exclusionsAnnotate any settings change, keep unlike periods separate, and recalculate only where you have the data
One segment far above the restBuyers already close to purchaseWhether the segment was already engaged before the textUse segmentation to test who needs the text, not who would buy anyway

Tracking SMS revenue in a Shopify store

Follow the same sequence every time, so a number from March means the same thing as one from October.

1.  Fix the reporting period and the units. Decide whether you report by send date or order date, and state whether each rate divides by people, messages or clicks.

2.  Confirm every link in a text is tracked. Open a live text on a phone and follow the shortened link through to checkout.

3.  Use consistent UTM parameters on links you control. An illustrative convention is utm_source=txtcart, utm_medium=sms and utm_campaign set to the campaign name. Do not append a second set of parameters to a link that already carries them, and never put customer details in a URL.

4.  Check how Google Analytics 4 groups the traffic. GA4 assigns sessions to its SMS default channel group when the source or the medium exactly matches “sms” (not case-sensitive), per Google’s documentation. A source of “txtcart” with a medium of “sms” qualifies.

5.  Review your attribution settings and exclusions, then record them with the date. A change in either explains a jump in revenue better than any campaign does.

6.  Compare campaigns and flows in separate reports.

7.  Reconcile a sample of orders across Shopify, your SMS platform and GA4, as described above.

If you use TxtCart, trackable links automatically carry a utm_campaign parameter named for the flow or campaign, and any custom parameters you add pass through as entered. To exclude orders that should not count toward attributed revenue, such as wholesale or test orders, add their Shopify tags under Excluded Order Tags in Attribution Settings.Tag matching is case-sensitive, so enter each tag exactly as it appears in Shopify. The setting applies only to new orders going forward and does not change past data. You can find the full details in the TxtCart attribution guide.

How TxtCart puts the three checks to work

A revenue figure is only useful when you can see the rules behind it. TxtCart’s Insights and Analytics is built around that idea. Here is how it supports each of the three checks.

  • Denominator: performance is broken out by flow, campaign and individual message, with message-level attribution, so you can match each figure to the denominators in the table above.
  • Rule and window: you choose the attribution rule for the account, with stricter overrides for a flow or a message, and the window in account settings. That keeps the rule behind each figure visible.
  • Cost scope: reported ROI uses Marketing Spend, which is messaging fees plus campaign fees. You add carrier, platform, service and AI resolution fees yourself for the all-in view.

The habit that matters is order of operations. Set your attribution rule and window deliberately, record them, read ROI as a defined revenue-based return, and compute net contribution outside the dashboard. That keeps the number you show your team from drifting when a setting changes.

Step-by-step setup is in the TxtCart attribution guide. To see revenue, flow, campaign and message-level reporting on your own store, explore Insights and Analytics. If you would rather walk through your numbers with someone, book a demo.

Shopper replies tell you what the numbers cannot

Clicks and orders show what shoppers did. Replies show why they hesitated. Read them once a week, and sort each into a theme: fit and sizing, shipping, offer eligibility, payment, or trust. Keep STOP messages and complaints in their own group, because they belong with your opt-out analysis, not with your sales questions.

Then compare the themes with the journey. If many replies ask whether a code works on sale items, the message or the landing page left that out. If shoppers keep asking about delivery dates, the answer belongs in the text or at checkout. A high reply count with few orders usually means the text starts conversations that the rest of the journey does not finish.

Speed matters here too. For triggered texts, the delay between the trigger and delivery is worth watching, because a reminder that lands late may reach a shopper who has already moved on. Check when each triggered text actually arrives and compare that with when you intended it to send.

A monthly SMS scorecard you can copy

Review list health weekly and revenue efficiency monthly. Copy the table into a spreadsheet, fill in this month and last month, and set your own baseline from the previous 90 days. The last column is a trigger you write down in advance, so the review ends in a decision. There are no universal thresholds here on purpose, because a good number depends on your list, your offers and your definitions.

MetricUnitThis monthLast monthYour 90-day baselineAct when
Delivery rateDelivered ÷ sentFalls below baseline for two sends in a row
Click-through rateUnique clickers ÷ deliveredFalls below baseline on a comparable send type
Click-to-purchase rateUnique buyers who clicked ÷ unique clickersFalls while click-through rate holds
Revenue per recipientRevenue ÷ unique recipientsFalls below baseline for a core segment
Opt-out rateOpt-outs ÷ delivered, per sendRises against baseline after a frequency or targeting change
Net list growth(New – opt-outs) ÷ starting listTurns negative
Reported ROI(Revenue – Marketing Spend) ÷ spendMoves after an attribution change rather than a send change
Net contribution per sendRevenue – included costs – product costTurns negative on a send you planned to repeat
Attribution rule and windowSetting and dateAny change. Annotate the date and keep unlike periods separate

SMS marketing analytics FAQ

What are the most important SMS marketing metrics?

Track delivery rate, click-through rate, order rate or click-to-purchase rate, revenue per recipient, opt-out rate and net contribution per send. Each answers a different question: whether texts arrive, earn clicks, produce orders, keep the list healthy and make money. State the denominator for every rate so you can compare it across reports.

Is SMS open rate a reliable metric?

No. Standard SMS has no open tracking, so any open figure is an estimate built from clicks or replies. Use click-through rate and reply rate to measure engagement.

What is a good SMS click-through rate?

It depends on the send type and how the source calculates it. Klaviyo’s 2026 benchmarks show an average click rate of 5.6% for campaigns and 9.65% for flows. Other published figures use different denominators from your own reports, so treat them as context. Compare your sends against your own last 90 days. For more benchmark detail, see our SMS conversion rate guide.

How do you calculate SMS marketing ROI?

Subtract your SMS spend from attributed revenue, then divide by the spend. TxtCart’s dashboard ROI uses Marketing Spend (messaging and campaign fees), so it leaves out carrier, platform, service and AI resolution fees. For profit, subtract every cost and product cost as well. Use the SMS ROI calculator to test your own figures.

What attribution window should I use for SMS?

Start from the customer journey. Look at how long shoppers usually take to buy after a click or a message in your store, and pick a window that covers most of those purchases. A longer window credits more orders and raises reported revenue and ROI, so keep the window fixed, record it next to every figure, and annotate the date you change it.

Where to go from here

Run the three checks on your last month of sends, copy the scorecard, and annotate any period that used a different attribution setting. To see the revenue, flow and campaign views in your own store, explore TxtCart Insights and Analytics, or use the SMS ROI calculator first if you are still building your measurement model.

Ready to grow?

New Lessons Every Week

Get notified when we publish new video courses on SMS, RCS, and WhatsApp marketing.

No spam. Unsubscribe anytime. We respect your inbox.No spam. No spam. Unsubscribe anytime. We respect your inbox.