A campaign can produce a 30% click-through rate and still lose money. That is why learning how to track campaign roi means going beyond opens, clicks, and replies. Your team needs to see which messages create purchases, booked appointments, recovered carts, repeat visits, and profitable customer actions.
For growth-focused businesses, ROI tracking is not a reporting exercise to revisit at the end of the month. It is how you decide where to put the next marketing dollar. When the data is clean, you can scale the campaigns that drive revenue, fix the ones that leak margin, and stop guessing which channel deserves credit.
Start With the ROI Formula That Matches Your Business
Campaign ROI measures the profit generated by a campaign relative to what it cost to run. The core formula is simple:
Campaign ROI = (Revenue attributable to the campaign – Total campaign cost) / Total campaign cost x 100
If an SMS cart recovery campaign generates $8,000 in revenue and costs $1,000 in platform fees, message volume, creative time, and offer expense, its ROI is 700%. For every $1 invested, the campaign produced $7 in profit before broader operating costs.
The catch is that revenue is not always profit. A retailer with a 35% gross margin should not treat $10,000 in campaign-attributed sales as $10,000 in financial gain. A home services company may need to account for technician time, travel, and sales commissions. Restaurants may need to subtract discount costs and food costs. Use the margin that reflects your real business economics, especially when comparing campaigns with different offers.
For appointment-based businesses, a booked appointment is often not the final conversion. Track the appointment, the show rate, the completed service, and the resulting revenue. Otherwise, a campaign can look successful because it filled the calendar while actually producing a high volume of no-shows.
Define One Conversion Goal Before You Send
Every campaign needs a primary revenue event. That could be a completed checkout, payment collected, appointment attended, quote accepted, membership renewal, or purchase at a physical location. Pick the event that proves business value, not the easiest metric to collect.
A back-in-stock text campaign can be measured against completed orders. A review request campaign should be measured differently: review volume and rating improvement matter, but so does the downstream lift in calls, bookings, or local conversions. An abandoned cart workflow should focus on recovered revenue, not just the number of customers who clicked back to the cart.
Secondary metrics still matter because they explain performance. Delivery rate tells you whether the audience was reachable. Click-through rate reveals whether the offer and call to action earned attention. Conversion rate shows whether the landing page, checkout, booking flow, or sales team finished the job. But none of these should replace revenue as the primary scoreboard.
Build a Clean Attribution Path
Attribution answers a basic question: which campaign caused or influenced the conversion? The answer gets messy when a customer receives an email, clicks an SMS, sees a retargeting ad, and purchases two days later. You will not get a perfect answer every time, but you can create a consistent system that supports better decisions.
Start by giving every campaign a unique identifier. Use campaign-specific tracking parameters for links, dedicated landing pages where appropriate, unique promotion codes, or tagged checkout flows. For local and service businesses, connect message sends to customer records so a booked job or completed payment can be tied back to the message that prompted it.
Then choose an attribution rule and use it consistently. Last-click attribution gives credit to the final interaction before conversion. It is simple and useful for direct-response campaigns such as cart recovery texts. First-click attribution helps show which channel initially brought a customer into the funnel. For longer sales cycles, a multi-touch view can be more honest because it recognizes that several messages may have moved the customer toward a purchase.
There is no universal model that works for every business. If your SMS campaign sends a time-sensitive offer with a direct purchase link, last-click attribution may be enough. If you sell higher-ticket services and customers book after several conversations, track assisted conversions too. The key is not chasing a flawless model. It is applying one clear method so campaign results are comparable.
Calculate Total Cost, Not Just Message Spend
A campaign that looks cheap on a dashboard may be expensive once every input is counted. Total campaign cost should include the messaging or email platform expense, per-message fees, discounts offered, creative and copy time, paid media used to grow the list, agency or staff labor, and any sales or fulfillment cost triggered by the campaign.
You do not need to assign every overhead expense down to the penny. But excluding major costs creates false confidence. A 20%-off offer may produce impressive top-line sales while shrinking margin so much that a smaller, no-discount campaign is actually more profitable.
For recurring campaigns, calculate both the cost of the individual send and the cost of building the workflow. A drip sequence might take time to set up, but once it is running, the marginal cost per conversion can drop significantly. That is where automation earns its keep: not by sending more messages for the sake of volume, but by producing revenue repeatedly without rebuilding the campaign each time.
How to Track Campaign ROI Across SMS, Email, and Offline Sales
Your customer does not experience your marketing channels in separate tabs, so your reporting should not either. SMS may get the immediate response, email may provide the product detail, and a store associate or sales representative may close the sale. A fragmented tool stack makes this hard to see.
Use one customer profile whenever possible. Connect phone numbers, email addresses, purchase history, appointment data, loyalty activity, and payment records. When a customer receives a text and later buys in-store, the transaction should still be visible as part of the campaign journey if you have a reliable identifier such as a loyalty account, offer code, or customer phone number.
OtterText helps teams bring messaging, automated workflows, payments, and campaign reporting into one operational view, making it easier to follow a customer action from message delivery through conversion. That visibility matters most when your business has multiple locations, repeat buyers, or a mix of online and offline transactions.
For campaigns that cannot be tied to an individual click, use controlled comparisons. Send an offer to one segment and hold back a similar audience. Compare conversion rate, average order value, or appointment volume over the same time period. This approach is especially useful for local promotions, win-back campaigns, and loyalty messaging where customers may convert without clicking a tracked link.
Watch the Metrics That Explain Revenue Quality
Revenue alone can hide problems. A campaign with high attributed revenue may have low average order value, poor repeat purchase behavior, or an unsustainable discount. Pair ROI with a small set of quality metrics that show whether you are building durable growth.
Track conversion rate to see whether campaign traffic turns into buyers. Track average order value to understand whether the campaign increases or decreases basket size. Track customer acquisition cost when the campaign targets new leads. For retention campaigns, track repeat purchase rate and customer lifetime value. For appointment campaigns, measure booking-to-show and show-to-sale rates.
These metrics help you make better calls. A low-ROI campaign may be worth keeping if it acquires high-value customers who return repeatedly. Conversely, a campaign with immediate revenue may deserve less budget if it trains customers to wait for discounts or attracts low-margin orders.
Create a Reporting Cadence Your Team Will Actually Use
Do not wait for a quarterly review to find out that your best offer expired two months ago. Review direct-response campaigns within the first 24 to 72 hours, when delivery, clicks, and early conversions reveal whether something is off. For longer workflows, evaluate performance weekly and monthly because customers may need more time to convert.
A useful campaign report should show the audience segment, channel, offer, send date, total cost, attributed revenue, gross profit, ROI, conversion rate, average order value, and attribution window. Keep the layout consistent so a marketing manager, owner, and operations lead can scan it without decoding a new spreadsheet every time.
When a result changes, investigate the full funnel. A weak campaign may have the wrong audience, a vague offer, poor timing, a broken link, limited inventory, an unresponsive sales team, or an overly complicated checkout. ROI reporting should lead to action, not a debate about whose dashboard is right.
Turn Every Campaign Into the Next Test
The fastest-growing teams do not treat ROI as a final grade. They use it to form the next hypothesis. Test one meaningful variable at a time: audience segment, offer, send time, message length, landing page, follow-up sequence, or call to action. Changing everything at once may create a temporary spike, but it will not tell you what caused it.
Protect your list while you optimize. Respect consent, honor opt-outs immediately, and follow TCPA and industry-specific messaging requirements. Compliance protects more than your legal position. It preserves the customer trust that makes direct messaging such a powerful revenue channel.
The goal is not to produce the prettiest campaign report. Build a system where every send teaches you what customers buy, when they respond, and what it takes to earn profitable growth. Then put that insight back into the next campaign while the opportunity is still fresh.