Sign in

Blog · How-to guides

SMS marketing ROI: campaign costs and matched sales

SMS marketing ROI compares the contribution from matched sales with the full campaign cost. Build the comparison from messaging, order, refund, and cost exports, using a stated observation window and a check against finance totals.

The short answerSMS marketing ROI compares matched customer contribution with the total cost of the campaign over a stated window. Match orders once, deduct returns and variable fulfillment costs, and include messaging, creative, and allocated campaign costs. Treat the result as attribution-based unless a suitable comparison establishes additional sales caused by the campaign.

The ROI SMS marketing teams report should compare matched customer contribution with campaign costs over an explicit observation window. Orders must be net of discounts and returns, while costs must include more than the messaging invoice. A matched sale establishes an allocation under your rules; it does not establish that the message caused the sale.

Start with a campaign register and the exports you have

Create a register with campaign ID, send date, audience definition, sales-window end, attribution rule, and cost owner. For this example, a US retailer measures orders placed within fourteen days after each send. Refunds relating to those orders are included through the reporting cutoff, which is recorded separately.

Use an approved customer or order key to connect the messaging and order summaries. Phone numbers are unnecessary in the working comparison when a consistent internal identifier is available. Keep a separate unmatched bucket; missing identifiers should not silently become customers with no purchases.

The order export needs order ID, campaign allocation, order date, net sales, returns, and variable product and fulfillment costs. The messaging export supplies campaign totals and billed charges. Finance supplies creative charges, campaign labor allocations, and any offer expense missing from the order figures.

Agree how an order touched by several campaigns receives credit. Google's attribution guidance describes attribution as assigning credit for user actions across touchpoints. Your combined comparison needs its own consistent rule; the marketing attribution guide covers those choices in detail.

Build the cost boundary before calculating return

Net sales in this example already reflect campaign discounts and refunds. Variable costs contain merchandise and fulfillment, with marketing excluded. Marketing investment contains messaging charges, creative, and allocated campaign labor or platform costs.

This separation prevents the same discount or marketing expense being deducted twice. A voucher that reduces order revenue belongs in net sales; a separately purchased promotional item needs a stated cost treatment. Ask finance where the charge already sits before adding it.

The marketing ROI versus ROAS guide owns the general formulas and denominator choices. Here the practical task is applying one agreed scope consistently to SMS order matches. Do not substitute revenue divided by messaging fees for a contribution-based return.

Work the two campaigns from their matched orders

These illustrative campaigns have completed the same sales window. Amounts are USD, with percentages rounded to one decimal place where needed. Orders are counted once after the attribution rule is applied; partial credit would require the same allocation in revenue and its related variable costs.

Campaign Matched orders Net sales (USD) Variable costs (USD) Contribution before marketing (USD)
Win-back 120 18,000 10,800 7,200
Replenishment 200 24,000 13,200 10,800
Total 320 42,000 24,000 18,000

For this summary in columns A through E, calculate E2 and fill down:

=C2-D2

The corresponding campaign-cost register is:

Campaign Messaging (USD) Creative (USD) Allocated costs (USD) Total marketing cost (USD)
Win-back 1,200 600 200 2,000
Replenishment 1,600 600 200 2,400
Total 2,800 1,200 400 4,400

Combine the approved contribution and cost columns in a return summary:

Campaign Contribution (USD) Marketing cost (USD) After marketing (USD) Attributed ROI
Win-back 7,200 2,000 5,200 260.0%
Replenishment 10,800 2,400 8,400 350.0%
Total 18,000 4,400 13,600 309.1%

With that last table in columns A through E, D2 is =B2-C2. E2 is:

=IF(C2=0,"",D2/C2)

Format E as a percentage. The total ROI uses =SUM(D2:D3)/SUM(C2:C3), giving 309.1%. It is the return on the combined dollars invested, rather than an average of the campaign percentages.

Make the order matching reproducible

Suppose a worksheet named Orders contains campaign ID in A, order date in B, and matched net sales in C. In the campaign register, A2 is the campaign ID, B2 the inclusive window start, and C2 the inclusive window end. Sum the matched orders with:

=SUMIFS(Orders!$C$2:$C$1000,Orders!$A$2:$A$1000,$A2,Orders!$B$2:$B$1000,">="&$B2,Orders!$B$2:$B$1000,"<"&($C2+1))

The upper bound includes timestamps throughout the final day. Microsoft documents SUMIFS as summing values that meet multiple criteria. Apply the same campaign and date criteria to variable costs, and extend the ranges to cover the full export.

Covirage is not affiliated with Microsoft or Google.

Prove the report before interpreting it: $42,000 minus $24,000 equals $18,000, and $18,000 minus $4,400 equals $13,600. Tie messaging costs to supplier invoices and total order revenue to the financial extract. Matched plus unmatched orders must equal the eligible order population without duplicated order IDs.

Where the result goes wrong

  • Discounts disappear from the scope. Gross sales overstate the contribution available to pay for messaging. If an additional $2,000 discount reduced the example's net sales with all other inputs fixed, contribution would be $16,000 and attributed ROI 263.6%.
  • Every repeat purchase receives SMS credit. Existing customers may have reordered without contact. A useful allocation still needs that limitation stated.
  • Delivery metrics become return metrics. High delivery or click rates can coexist with poor contribution. Keep execution diagnostics separate from the return decision.
  • Acquisition and retention are mixed. Win-back and replenishment audiences can have different histories. Use customer acquisition cost for the separate new-customer measure.
  • The next campaign inherits the historical percentage. Audience availability and offer mix may change. The workflow to improve marketing ROI turns observed results into a bounded next decision.

Check SMS return on your own file in Covirage

Bring your campaign-cost register and matched order and refund summaries to Covirage as files or a Google Sheet. Covirage maps the columns, and its tools compute and check the figures; the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.

See customer profitability for the contribution behind those matched sales.

Questions people ask

Should SMS marketing ROI include the discount offered?

Yes, but count it once. If the order export already reports revenue after the discount, do not add the same discount to marketing costs. Record separately funded rewards or offer expenses that have not already reduced revenue or contribution.

How long should the SMS sales window be?

Choose a window that fits the purchase cycle and document it before comparing campaigns. Use equally mature campaigns and show later revisions separately. A short reorder campaign and a considered purchase may need different windows, so their headline returns may not be directly comparable.

Can all orders after a text message count as SMS revenue?

No. Orders need an agreed match and attribution rule, and overlapping channels must not claim the same outcome in full. Even correctly matched orders may have occurred without the message, so attributed return alone does not establish incremental return.

Should SMS ROI use delivered messages or sent messages?

Use the supplier's billed units to reconcile messaging expense. Sent and delivered counts help explain campaign execution, but neither replaces the dollar investment denominator. Keep those operational counts beside the return calculation so delivery changes do not obscure cost changes.