Marketing ROI for a retail store is the sales a campaign can be shown to have caused, minus what it cost to send, divided by that cost. You get there by crediting orders back to the specific campaign that drove them — usually with a unique promo code, link, or reply — then comparing that attributed sales number against the cost of the campaign, not against your total store revenue for the week.
What Does "Marketing ROI" Actually Mean for a Retail Store?
Most stores track whether sales were good or bad on the day a campaign went out. That tells you almost nothing, because sales that day would have happened anyway from foot traffic, repeat customers, and regular online orders. Real marketing ROI isolates the orders you can trace to the campaign.
Marketing ROI is the sales you can attribute to a specific campaign, minus the campaign's cost, divided by that cost. If a text campaign cost $50 to send and generated $600 in attributed sales at 50% gross margin, your marketing profit is $250 and your ROI is 400%. Without attribution, you're just guessing.
How Do You Credit an Order Back to a Specific Campaign?
Attribution in a physical or hybrid store doesn't need pixels or ad platforms. It needs a trackable identifier attached to each campaign, and a way to check that identifier against a completed sale — not a click, not a cart that was started and abandoned.
- A unique promo code per campaign — "WINBACK10" for a win-back text, "RESTOCK15" for a back-in-stock alert — redeemed at checkout, in-store or online, on the same catalog.
- A dedicated landing page or link for a campaign, so visits and orders from that source are distinguishable from general traffic.
- A direct ask at checkout: "how did you hear about this sale?" logged against the order, useful for small stores without code discipline.
- Reply capture: for texts, a reply that says "yes, still want it" or asks a question ties directly to that send and that customer profile.
The method matters less than consistency: pick one identifier per campaign and use it every time, so you can pull a clean list of orders that used it later.
What Should You Count as Campaign Cost?
Underestimating cost is the most common way ROI numbers get inflated. A campaign's true cost is more than the price of the text or email itself.
- Platform cost: the monthly Messaging plan fee, apportioned across the campaigns you send that month.
- The discount given away: if the promo code was 15% off, that's real margin given up on every order it touched, not just a marketing expense.
- Creative and staff time: writing copy, building a segment, and picking images all take paid hours.
- Any paid promotion used to drive people to the campaign in the first place, such as boosted posts or paid search.
If you only count the send cost, every campaign looks profitable. Counting the discount and the time spent is what makes the comparison honest.
How Do You Calculate ROI, Step by Step?
- 1. Pick a unique promo code or link for the campaign before you send it.
- 2. Send the campaign and record the total cost: platform fee share, discount value, and staff time.
- 3. After the campaign window closes (typically 3–14 days depending on urgency), pull every order that used the code or link.
- 4. Total the sales from those orders, then multiply by your average gross margin to get attributed profit — revenue alone overstates the win if the campaign ran on a deep discount.
- 5. Subtract total cost from attributed profit, divide by cost, and you have ROI. A campaign that returns $3 in profit for every $1 spent is worth repeating; one that barely breaks even is worth reworking or dropping.
What's a Good Reply Rate — and Why Does It Matter?
Sales are the outcome you care about, but reply rate is the earliest signal you get, often before any orders come in. A text campaign that gets replies — questions about sizing, "is this still available," a simple "yes" — is reaching people who are paying attention. A campaign that gets zero replies and zero opt-outs usually means it landed in a dead zone: ignored, not read. One that gets a spike of opt-outs is telling you the offer, frequency, or targeting was wrong, and that's worth acting on faster than waiting for the sales number. See our guide on SMS marketing consent, timing, and texts that sell for how reply-worthy texts are built.
Which Campaigns Should You Send Again?
Once you've run the same type of campaign three or four times with attribution in place, patterns show up. Use them to decide what earns a spot on your regular calendar versus what gets retired.
- Repeat it if ROI stayed positive across multiple sends and reply/open behavior held steady or grew.
- Rework it if attributed sales were decent but margin was thin — try a smaller discount or a different segment next time.
- Retire it if two or more sends in a row produced flat attributed sales and no engagement, regardless of list size.
- Time it differently if the campaign performs well but always arrives during a slow week — a flash sale or win-back send that works on a Tuesday might do better closer to payday.
How Does Retailer OS Help You Track Campaign ROI?
Texting, email campaigns, and the shared inbox in Retailer OS run on a Messaging plan — Starter at $49.99/month, Growth at $99.99/month, or Pro at $249.99/month. These aren't included in the base store price; you add the plan when you're ready to send campaigns and automations, and pricing is separate from the full plan breakdown on the pricing page.
Because promotions run on the same catalog the register sells from, a unique promo code created for a campaign gets redeemed and recorded at checkout — in-store or through the online store add-on if you have it — the same way any other discount does. Every customer profile in the built-in CRM carries purchase history, so once you know which orders used a campaign's code, you can see who they were and what else they've bought, which is the difference between "this campaign made $600" and "this campaign brought back four lapsed customers who then bought again the following month." Replies to text campaigns land in the shared inbox that comes with the Messaging plan, so reply rate is something your team can actually read, not just a number in a report. For the sales side, reports and saved views let you filter by date range and channel to pull the orders a campaign touched, and scheduled email digests keep the numbers in front of you without a manual pull every time. None of this replaces your books — the daily sales a campaign drives still flow through to QuickBooks Online the same as any other sale — but it's enough to answer the only question that matters before you spend the same money twice: did this campaign pay for itself.
For the other half of retention marketing — the automated flows that don't need a fresh idea every week — see the three email flows every store should run.
Start with one campaign type this month. Give it a unique promo code, run it, and pull the attributed orders before you send the next one. If you're deciding whether a Messaging plan is worth adding, compare plans and pricing or see how campaigns fit alongside POS and inventory in Retailer OS.
Last updated September 17, 2026