Cookie preferences

Choose what we may use. Strictly necessary cookies keep you signed in and can't be turned off; everything else is your call and changes nothing about how the site works. You can change your mind any time from the footer.

· 13 min read

Your SMS dashboard is counting deliveries, not decisions

Text messaging is two channels wearing one name: inbound texts that are leads, and outbound campaigns to a list of people who already know you. The second is where the reported revenue lives, and most of it is credited on delivery rather than on anything the customer did. Here is how to tell the two apart, what the platforms actually count, and how to measure what a text adds rather than what it arrived before.

Two hands holding a smartphone above a pair of light trousers, a text conversation with blue message bubbles on the screen and a black smartwatch on one wrist.
Photo by RDNE Stock project on Pexels
Contents
  1. SMS is two channels that share a name
  2. What an SMS platform actually counts
  3. The list is the reason the numbers look good
  4. Inbound texts are leads, and belong in the same file as calls
  5. How to measure outbound SMS honestly
  6. The opt-in record is attribution data you already have
  7. Where SMS and email claim the same order
  8. What the SMS figure should look like in a report
  9. A short checklist

Text messaging has a reputation for being the most measurable channel a small business can buy. The messages are short, the links are tracked, the platform reports revenue by campaign within hours, and the figures are usually spectacular.

They are spectacular for a reason that has little to do with the messages. Most of that revenue is credited because a text arrived shortly before a purchase, not because anybody read it, tapped it or acted on it. And the people receiving those texts are, almost by definition, the people most likely to buy from you this week whether you text them or not.

None of this means SMS does not work. It often works very well. It means the number on the dashboard is answering a different question from the one you are asking, and the gap between the two is wide enough to move a budget.

An SMS dashboard reports what your list bought after you texted it. The question worth paying for is what your list bought because you texted it.

SMS is two channels that share a name

Inbound SMS is a lead source: a stranger or a customer texts you first. Outbound SMS is a retention channel: you text a list of people who opted in. They are measured differently, and most reporting only covers the second.

A plumber whose website says "text us a photo of the leak" is running one channel. A salon sending "20% off blow-dries this Thursday" to four thousand subscribers is running another. Both appear in a marketing plan as "SMS", which is why the channel is routinely over-credited in one direction and ignored in the other.

The two things called SMS, and how each should be measured
Inbound textsOutbound campaigns
Who starts itThe customerThe business
Who receives itYouYour subscriber list
What it isA lead, like a call or a formA reminder, offer or nudge to people who already know you
Typical sourcesText-to-tracked-number, missed-call text-back, website chat that moves to SMSCampaigns, abandoned-cart and win-back flows, appointment and review messages
The honest questionWhich ad or listing produced this conversation, and did it close?What did this campaign add beyond what the list would have bought anyway?
Usual reportingRarely reported at allA revenue figure in the SMS platform

For businesses that close sales on the phone or in person — trades, clinics, dealerships, agencies — the inbound half is frequently the more valuable one and the less visible. It is also the easier one to measure properly, because every inbound text carries a phone number, and a phone number is exactly what a closed-sales record already holds.

What an SMS platform actually counts

Most SMS platforms credit a sale to a text if the sale happens within a set period after the message, and several count delivery alone. The settings are published, they differ by platform, and they change over time.

This is not hidden. The platforms document their rules clearly, and the rules are reasonable for what they are: a way of reporting activity on the list. The trouble begins when the resulting figure is read as the channel's contribution to revenue and set beside other channels measured on different rules.

Read those two examples side by side and a pattern appears. A delivery-based window does not measure whether the text did anything. It measures whether the person who received it bought something shortly afterwards. For a list of engaged customers, that second number will always be large.

A view window on SMS is a statement about who is on your list, not about what your message did.

The list is the reason the numbers look good

An SMS list is self-selected: people join it because they already buy from you or intend to. Crediting texts with the purchases of your most loyal customers makes the channel look like it causes behaviour it mostly coincides with.

Think about how somebody ends up on the list. They gave you their number at checkout, entered it in a pop-up to claim a discount on the order they were already placing, or texted a keyword they saw in the shop. Every one of those routes begins with somebody who is already a customer or is about to become one.

Now apply a delivery window to that group. Send a text on Friday morning to people who buy from you roughly monthly, and a predictable share of them would have bought over the weekend in any case. The text arrives first, the purchase follows, the window closes around both, and the campaign is credited. Repeat for every send and the channel's reported revenue becomes, to a large degree, a measure of how often your best customers buy.

  • Sending more often raises reported SMS revenue even if no additional sale occurs, because more purchases fall inside a window.
  • Growing the list with existing customers raises it too, for the same reason.
  • Seasonal peaks are credited to whatever texts happened to go out that week.
  • A discount code in the text can move a purchase that would have happened at full price into the SMS column and cost you the margin.

That last point deserves emphasis because it is where a flattering figure becomes an expensive one. If a campaign offers 15% off to people who were going to buy anyway, it has not produced revenue. It has reduced it, and the dashboard reports the opposite.

Inbound texts are leads, and belong in the same file as calls

A customer who texts your business first is a lead with a phone number attached, which makes it one of the most matchable leads you have. It should be tracked to its source the way a call is, not left in a messaging inbox.

Inbound texting has grown quietly because customers prefer it. People who would not phone a business will happily send a photo of a cracked tile, a question about availability, or a reply to an automated message sent when a call went unanswered. For a service business, those conversations are leads in the plainest sense, and they tend to be warmer than form fills because the customer chose a personal channel.

The attribution problem with them is not overstatement. It is invisibility. Texts land in a shared inbox, a staff member's phone or a messaging tool that exports nothing, and the source is never recorded. When the job closes, it closes as Direct / Unknown or, worse, gets credited to whichever ad happened to be running.

  1. Give each advertising source its own text-enabled number where you can: the number in the Google Business Profile, the number in the paid search ad, the number on the van. Many call tracking providers can text-enable the numbers they issue.
  2. Export the conversation log alongside the call log: the customer's number, the tracked number they texted, the date of the first message.
  3. Treat a missed-call text-back as a continuation of the call, not a new lead. The source is whatever produced the call.
  4. Match the log against closed sales on the phone number, the same way you would match calls.

Done this way, inbound SMS stops being a black hole and becomes one of the cleanest sources in the report. The key that links the lead to the sale is the channel itself.

How to measure outbound SMS honestly

The honest measure of an outbound campaign is the difference between people who received it and comparable people who did not. A holdout gives you that directly; click-only counting and before-and-after comparisons give you defensible approximations.

There are three approaches worth using, in descending order of how much they can be trusted.

1. Hold some of the list back

Pick a random slice of the list — a tenth is a reasonable starting size — and exclude it from a campaign or a flow for a defined period. At the end, compare revenue per person in the two groups. Because the groups were assigned at random, the only systematic difference between them is the message. The difference in revenue is what the message added, and it is usually much smaller than the dashboard figure, which is the point of running it.

Holdouts feel expensive because you are deliberately not texting people who might have bought. In practice they are cheap: if the holdout group buys almost as much as the rest, you have learned that the campaign was not worth its discount; if it buys much less, you have proof of value that no dashboard can give you.

2. Count clicks, not deliveries

Where a holdout is impractical, turn off the view window and credit only orders that followed a click, within a short period. This still over-credits — some people tap a link on the way to a purchase they had already decided on — but it removes the largest source of inflation, which is the purchase that happened with the text unopened.

3. Compare subscribers with themselves

Take customers who joined the list and compare their spending in the months before they joined with the months after, against customers who never joined over the same period. It is a rough method with obvious weaknesses — joining the list often coincides with a burst of interest — but it is far better than comparing subscribers with non-subscribers, which mostly measures that subscribers were better customers to begin with.

Ways of attributing revenue to outbound SMS
MethodWhat it countsDirection of errorQuestion it answers
Delivery or view windowAny purchase within N hours of a delivered textLarge overstatementWhat did my list buy after I texted it?
Click windowPurchases following a tap on the linkModerate overstatementWhich messages did buyers pass through?
Before and after joiningChange in a subscriber's own spendingSome overstatementDid joining the list change behaviour?
Holdout groupDifference between texted and untexted groupsClose to neutralWhat did the texts add?

If you cannot run a holdout, at least stop counting purchases from people who never opened the message.

The opt-in record is attribution data you already have

Every SMS subscriber arrived through something — a pop-up shown to paid traffic, a keyword on a sign, a checkbox at checkout. That acquisition source is recorded at opt-in and is the right place to credit the subscriber's first purchase.

A common reporting mistake is to let SMS claim the first purchase of a new subscriber. The person arrived from a paid social advert, saw a pop-up offering a discount for their number, joined, received a welcome text with the code, and ordered. The SMS platform credits the welcome message. The advert that brought them to the site gets nothing.

Used properly, that record splits SMS's claimed revenue into two honest pieces. The first purchase of a new subscriber belongs to whatever brought them to the opt-in. Later purchases can be tested against a holdout. What should not happen is the welcome text taking credit for the advert's work, which is the single most common way SMS reporting and paid social reporting end up claiming the same sale.

It is worth adding that consent records serve their own purpose first, and what a given business must keep is a question for that business and its advisers. The observation here is narrower: the data is usually already there, and it is rarely used for measurement.

Where SMS and email claim the same order

When text and email run in separate tools, each applies its own window to the same order, and the same purchase can appear in both dashboards. Adding them together overstates owned-channel revenue, sometimes beyond what the business took.

A customer receives a Monday email and a Wednesday text about the same sale and orders on Thursday. An email tool with a five-day window claims it. An SMS tool with a 24-hour view window claims it. Two dashboards, one order, reported twice. Tools that run both channels usually deduplicate within themselves, but nothing deduplicates across two vendors, and nothing at all deduplicates against the advertising platforms, which may be claiming the same order as a view-through conversion from last week's video.

The fix is not to pick the right dashboard. It is to start from the list of orders, which is the only record in which each sale appears exactly once, and ask which source can defensibly be linked to each. Anything that cannot be linked stays unlinked rather than being shared out.

What the SMS figure should look like in a report

A defensible SMS line separates inbound leads from outbound campaigns, states the rule behind every figure, and reports the incremental estimate beside the platform's own number rather than instead of it.

Replacing the dashboard figure outright tends to start an argument about whose number is right. Showing both, with the rule behind each, tends to end one. The platform figure is a real description of list activity; the holdout or click figure is the estimate of contribution; the gap between them is information in its own right.

  • Inbound texts: revenue matched from conversations to closed sales, by the tracked number or listing that produced them.
  • Outbound campaigns, platform view: revenue as the SMS tool reports it, with its window stated.
  • Outbound campaigns, incremental: the holdout result, or the click-only figure if no holdout ran.
  • New-subscriber first purchases: credited to the source recorded at opt-in, not to the welcome message.
  • Unmatched: sales with no traceable source, reported as such.

CloseRev matches your closed sales against your lead sources on the phone number or email address in both files, which makes text messaging one of the easier channels to measure: an inbound conversation log, or a subscriber export with its opt-in source and date, is a lead file like any other. Every sale is counted once, against the source it can defensibly be linked to, and anything that cannot be linked is reported as Direct / Unknown rather than being handed to whichever tool had the widest window.

A short checklist

Most of the improvement comes from five changes, and none of them requires new software.

  1. Split SMS into inbound and outbound in every report, and never add the two together without saying so.
  2. Look up the attribution windows in your SMS tool today and write them down. Turn off the view window if you can.
  3. Route inbound texts through tracked, text-enabled numbers and export the conversation log with the call log.
  4. Credit a new subscriber's first purchase to the source recorded at opt-in, not to the welcome message.
  5. Run one holdout on your biggest recurring campaign before the next budget review.

Texting customers is often one of the best-value things a business can do. The case for it is stronger, not weaker, when the figure behind it can survive somebody asking what would have happened without it.

Questions people actually ask

How do SMS platforms attribute revenue?
Most use a window after the message rather than an action by the customer. Postscript's default credits any order within 24 hours of a text being received, whether or not the subscriber clicked, plus orders within seven days of a click. Klaviyo's help centre says an SMS conversion can be counted when the message was delivered before the order. Both are configurable, and both describe your own list buying rather than your text causing the purchase.
Is SMS revenue in my platform dashboard real?
The orders are real. The claim that the text produced them is the part to test. A subscriber list is made of people who already know the business and buy at a higher rate than strangers, so a delivery-based window will credit texts with a large share of purchases those people would have made anyway. The dashboard is an upper bound, not an estimate.
What is the best way to measure SMS marketing ROI?
A holdout. Keep a random slice of the list out of a campaign, then compare the revenue per person in the group that received it with the group that did not. The difference is what the text added. Where a holdout is not possible, count click-through orders only, and compare subscribers' revenue against their own behaviour before they joined the list.
Should inbound text messages count as leads?
Yes, and they should sit in the same file as your calls. A customer who texts a tracked number, replies to a missed-call text-back, or starts a conversation from a website widget is a lead with a phone number attached, which makes it one of the easiest leads there is to match against a closed sale.
What attribution window should I use for SMS?
Shorter than for most channels, and click-based if you can. A text is read within minutes or not at all. Klaviyo's own guidance argues that SMS should be treated as a channel for immediate action. Whatever you choose, set it before looking at the results and write it beside the number in the report.
Does SMS get double-counted with email?
Often, when the two sit in different tools. Each platform applies its own window to the same order, so a customer who received an email on Monday and a text on Tuesday can be claimed by both. Adding the two dashboards together is the most common way SMS and email revenue ends up exceeding what the business actually took.

See it on your own numbers.

Two exports and a few minutes. Three days free, no card, nothing to install.