## Why SMS attribution breaks so easily SMS looks simple on a dashboard: send a text, track the link, count the order. In practice, attribution for SMS revenue is one of the messiest problems in messaging analytics. A same-day promo can steal credit from email. An app open can look like a text conversion. A short click window can hide delayed purchases. A long window can over-credit every campaign that touched the customer that week.
Honest SMS attribution is not about picking the flattering model. It is about defining windows, choosing a primary and secondary model, running lift tests when stakes are high, and reporting cost per conversion with the same rigor you bring to send volume and delivery rates. This guide walks through click windows, last-touch versus multi-touch, holdout and lift tests, and the pitfalls that quietly inflate SMS ROI.
## Start with the conversion you actually care about Before you debate models, name the event. “Attributed revenue” means nothing until you define: - **Primary conversion:** purchase, signup, deposit, booking, or another revenue event. - **Assist events:** link click, landing-page view, add-to-cart, app open, reply keyword. - **Identity join keys:** phone number, hashed email, customer ID, device ID, or order ID. SMS attribution usually joins on phone number plus a click token.
If your checkout uses a different identifier, build an identity bridge early. Without it, you will either under-count (orphaned orders) or over-count (fuzzy matching that attaches the wrong order to the wrong text). Write the definition in one sentence your finance partner would accept: “An SMS-attributed purchase is an order placed by a matched customer within X hours of a tracked SMS click, excluding holdout recipients.” That sentence becomes the contract for every report.
## Click windows: short enough to be credible, long enough to be fair A **click window** (or attribution window) is the maximum time between a tracked SMS interaction and a conversion that still counts for that message. ### Common window shapes - **Same-session / 1–2 hours:** Best for flash sales, OTP-adjacent offers, and “reply YES” flows. Credible, but misses delayed buyers. - **24 hours:** A practical default for promotional SMS.
Most impulse and same-day offer conversions land here. - **3–7 days:** Useful for consideration products (travel, finance, B2B trial). Higher risk of stacking credit with email and paid ads. - **View-through windows:** Credit for people who received a text but never clicked. Use sparingly; SMS view-through is hard to prove without a holdout. ### How to choose a window Ask three questions: 1.
What is the median time from click to purchase for this offer type? 2. How many other channels are active in the same period? 3. Would a skeptical stakeholder accept this window in a board slide? Then publish **two numbers**: conversions inside the primary window, and conversions in an extended “assisted” window. Dual reporting stops arguments about whether you are too tight or too loose.
It also surfaces same-day promo bias—when almost all credit piles into the first few hours of a blast while lifecycle SMS looks weak. ### Click versus send windows Prefer **click-based** windows for performance SMS. A send-based window credits anyone who received the text and later bought, even if they never engaged. That can be valid for brand lift studies, but it is a poor sole ranking metric for creative or offer tests.
If you report send-based revenue, label it clearly as “received-and-converted” and pair it with a holdout. ## Last-touch vs multi-touch: pick a primary, keep a secondary ### Last-touch (last SMS click) Last-touch gives 100% of credit to the final tracked SMS click before conversion. It is simple, auditable, and good for optimizing offer copy and landing pages. **Strengths:** Easy to explain. Harder to game with soft assists.
Aligns with media-style “last click.” **Weaknesses:** Ignores nurture texts that started the journey. Punishes welcome series and educational drips that set up the sale. Use last-touch as your **primary operating metric** for day-to-day campaign ranking—especially when you need a single number for cost per conversion. ### Multi-touch for SMS journeys Multi-touch spreads credit across several messages (and sometimes channels). Common variants: - **Linear:** Equal credit to every SMS touch in the path.
- **Time-decay:** More credit to touches closer to conversion. - **Position-based (U-shaped):** Extra weight on first and last touch; middle touches share the rest. - **Path-aware:** Separate credit for keyword opt-in, browse abandonment, and checkout reminder roles. Multi-touch is valuable when SMS is a **journey**, not a one-shot blast. A cart reminder should not look worthless because a later “flash 10%” text got the last click. ### A practical dual-model setup 1.
**Primary:** Last SMS click within 24 hours → campaign leaderboard and cost per conversion. 2. **Secondary:** Time-decay multi-touch across SMS touches within 7 days → journey and automation health. 3. **Cross-channel note:** When email or paid search also touched the path, report SMS as “SMS-influenced” rather than claiming full revenue unless your org has a shared multi-channel model. Do not average incompatible models into one vanity ROI.
Show both, and state which one drives budget decisions. ## Holdout and lift tests: the honesty layer Windows and multi-touch still describe correlation. **Lift tests** estimate incremental impact: how many conversions happened *because* of SMS, not merely after SMS. ### How a simple SMS holdout works 1. Randomly assign eligible customers to **treatment** (can receive the SMS) and **holdout** (suppressed for that campaign or journey). 2.
Keep holdout large enough for a stable comparison—often 5–15% depending on volume and conversion rate. 3. Measure conversion rate (and revenue) in both groups over the same window. 4. **Incremental conversions** ≈ treatment conversions − expected conversions at the holdout rate. 5. **Incremental revenue / cost** becomes your true efficiency story. ### When lift tests are worth the friction - Always-on automations that spend steadily (cart, browse, win-back).
- Large promotional blasts where leadership will reallocate budget based on “SMS drove $X.” - Anytime last-touch ROI looks suspiciously high during a sitewide sale. ### Guardrails for clean lift - Holdouts must be **random**, not “people we did not want to text.” - Do not text the holdout via another SMS journey in the same test window. - Align the measurement window with your attribution window.
- Watch for **contamination**: app push, email, or ads that disproportionately hit one group. - Pre-register the success metric so you do not hunt for a flattering cut after the fact. Lift will often be lower than last-touch revenue. That is not failure—it is calibration. Teams that only celebrate last-touch eventually over-invest in SMS that cannibalizes organic or email demand.
## Cost per conversion without the fiction Honest unit economics need a clear numerator and denominator. **Cost side:** Include message cost, short-code or sender fees allocated to the send, and—if material—link-tracking and platform fees. For fair comparisons, use the same cost basis across campaigns. **Conversion side:** Use the primary attribution definition (for example, last click, 24h). Separately show incremental conversions from holdouts when available.
Helpful metrics: - **Cost per attributed conversion (CPA):** Spend ÷ attributed conversions. - **Cost per incremental conversion:** Spend ÷ lift-based conversions (gold standard when sample size allows). - **Revenue per message / per click:** Useful for creative triage, not for finance-grade ROI alone. - **Assisted revenue:** Multi-touch or extended-window revenue labeled as assist, not as cash collected solely by SMS.
If a campaign’s last-touch CPA looks excellent but lift CPA is weak, treat it as a **timing or cannibalization** signal, not as proof the creative is world-class. ## Common pitfalls that inflate SMS “wins” ### Same-day promo bias Big promotional days create a pile of purchases. Any SMS sent that morning can look heroic under a generous window. Mitigations: tighter windows, holdouts, and a same-day baseline from customers who got no SMS.
### App opens miscounted as conversions Some stacks fire a “converted” event when the app opens from a deferred deep link—even if the user never buys. Keep **engagement events** separate from **revenue events**. Attribute app opens as assists; reserve conversion credit for completed checkout (or your true KPI). ### Double-counting retries and variants A/B tests and retries can attach multiple clicks to one person.
Deduplicate to the conversion grain (one order, one signup) before ranking variants. Credit the click that your rules say won—not every click in the path—unless you are explicitly in multi-touch mode. ### Ignoring unsubscribes and complaints
Related Articles
Design SMS A/B tests that detect real lifts without burning your list—sample size, single-factor variants, and kill switches that protect trust.
SMS works because it is personal and immediate. That same intimacy makes compliance non-negotiable.
Discover how SMS A/B testing can revolutionize your mobile marketing strategy. Learn what to test, how to execute, and best practices for optimal message performance.
Discover how RCS messaging is transforming mobile marketing in 2026. Learn about its features, benefits, and actionable strategies for businesses.
Operational playbook for AI personalization that earns trust: governed decisions, consent-first gates, safe content, cross-channel caps, and measurable lift.
Discover essential strategies and best practices for building a compliant, engaged, and high-performing SMS subscriber list in 2026. Maximize your marketing ROI.
Unlock the secrets of SMS character encoding and segmentation. Optimize your mobile marketing campaigns for deliverability, cost-efficiency, and impact.
SMS still earns attention because it is direct and fast. Open and response rates are often far higher than many other channels. Results still depend on...
Explore SESender
SESender brings audience preparation, contact validation, sender and provider controls, scheduling, delivery tracking, and campaign reporting into one workspace. Review the current product and pricing information before deciding whether the platform fits your messaging workflow.
Explore the platform or review pricing.