How should a DTC brand attribute sales from SMS campaigns?
SMS converts fast and claims loudly, which makes it easy to over-credit. Separate SMS-driven intent from SMS-assisted intent with holdouts and short windows, or the channel will eat credit that belongs to email and paid.
Why SMS over-claims
SMS sits at the top of the intent hierarchy. Someone who handed over a phone number is already a warm prospect, and a text lands with near-total open rates within minutes. When that person buys, the SMS platform claims the sale, and the claim looks airtight: message sent, link clicked, order placed, all within the hour.
The problem is selection bias. The SMS list is the brand's most engaged audience. Many of those buyers would have purchased anyway that week, from the email they also received or the ad they also saw. Last-click attribution hands the whole sale to the text message and nothing to everything that built the intent. The channel looks like a miracle and the rest of the mix looks broken.
This distortion grows as the list grows. Early SMS programs message a small list of superfans and the numbers look incredible. At scale the marginal subscriber is less engaged, the incremental lift shrinks, and the platform dashboard keeps reporting glowing ROAS because it measures clicks, not incrementality.
Windows should be hours, not days
The default attribution window in most SMS platforms is far too long for how the channel actually behaves. SMS influence is immediate: the large majority of SMS-driven purchases happen within hours of the send, often within the first sixty minutes. A seven-day click window credits the text for purchases that had nothing to do with it.
Shorten the window to match the behavior. A four to six hour click window captures genuine SMS-driven buying without sweeping in the week's organic demand. For post-purchase and shipping notification texts, which are service messages that happen to contain links, the window should be shorter still, or the revenue excluded from campaign reporting entirely.
Separate blast campaigns from triggered flows in the reporting. A cart abandonment text and a promotional blast have different intent profiles and different honest windows. Blending them produces one ROAS number that describes neither accurately.
The holdout that settles the argument
When the team disagrees about how much credit SMS deserves, run a holdout. Suppress a random ten percent of the SMS list from campaigns for a month and compare purchase rates against the messaged group. The difference is the incremental lift, and it is almost always smaller than the platform's reported attribution.
Holdouts also answer the cannibalization question: does SMS steal sales from email? Compare email engagement and revenue in the holdout group versus the messaged group. If the holdout group buys just as much through email, the SMS program is mostly shifting credit between owned channels rather than creating new demand. That is still worth knowing, because it changes how you value list growth versus message frequency.
Run the holdout quarterly, not once. SMS incrementality decays as the list fatigues, and a holdout from last year describes a program that no longer exists. The brands with the healthiest SMS programs keep re-measuring.
Where SMS fits in the mix
None of this makes SMS a bad channel. Properly measured, it is usually the highest-intent owned channel a DTC brand has, and its speed is unmatched for time-sensitive offers like drops and restocks. The goal is not to talk the team out of SMS. It is to price it correctly.
Give SMS credit for what it actually does: accelerate purchases that were already likely, capture demand during narrow windows, and reach customers who ignore email. Do not give it credit for building the demand. That work belongs to the channels that acquired the subscriber and nurtured the intent, and the reporting should show the handoff honestly.
The practical setup: short windows, separated blast and flow reporting, quarterly holdouts, and a dashboard showing incremental revenue next to platform-reported revenue. When both numbers are visible, the conversation shifts from defending the channel to managing it. That is what attribution is for.