Measuring Redemption Rates and Revenue from Restaurant SMS
Unique codes and POS data reveal which texts actually drive profitable restaurant visits.

SMS gets sent, opens happen inside a few minutes, and most restaurant operators call that a win. The real question sits one layer down: which text put a paying guest in a seat, and what did that guest spend once they sat there?
Texts get read fast, faster than email ever manages, and the path from message to action is about as short as marketing gets: guest sees offer, guest shows code, guest walks in. That short path is exactly why restaurants text constantly. What most of them skip is the second half of the job, the part where you figure out what the send actually did at the register. Sending is the easy 80%. The harder 20%, the part almost nobody does, is what this piece is actually about.
What redemption rate actually measures and what it misses
Redemption rate counts the people who acted on an offer in the store, not the people who opened the text, not the people who clicked, not the people who meant to come in "maybe this weekend" and didn't. It's the first number in the whole chain tied to something physical: a guest walked up, handed over a code, and the register logged it.
That earns it a starting position, not a finish line. It doesn't tell you if that guest would've shown up anyway, discount or not, which is the incrementality problem hiding under nearly every promotion ever run. It doesn't tell you if the check was $14 or $44. And it doesn't tell you whether the discount cut so deep into margin that the "successful" redemption actually cost the restaurant money.
Redemption rate gives you one honest answer: people acted. Three bigger questions still sit on the table. Unique codes, POS reconciliation, average check comparison: that's the machinery that turns one honest answer into an actual dollar figure. Benchmarks swing wildly by offer type and urgency, but restaurant SMS redemption generally beats comparable email offers by a wide margin. A heavily optimized national chain can pull off redemption rates that a small independent simply can't benchmark against. An independent with a few hundred subscribers and no A/B testing budget will land somewhere else entirely, and that's fine. Chase your own number. Nobody else's percentage pays your rent.
How unique codes and dedicated tracking infrastructure connect a text to a transaction
Here's the part that gets skipped constantly: send the same promo code on the door flyer, in the email, and in the SMS, and your POS report showing 40 redemptions tells you nothing about which channel earned them. You've got a number with no address attached.
Unique codes fix that. One per campaign, per segment, sometimes per person, so the transaction at checkout points back to a specific send. Pair it with a landing page carrying UTM parameters for anyone clicking before they walk in, and you've got a digital fingerprint before the visit even happens. The POS then needs to log that code against the ticket itself, rather than swallow it as a generic discount line the way most systems default to doing.
Segmentation turns this from bookkeeping into research. Send one code to new subscribers, another to guests dark for 60 days, a third to loyalty members, and suddenly you're comparing redemption across real audiences instead of watching one aggregate number wobble. Offline attribution work keeps circling back to the same root cause: the signup moment, capturing contact info and a source tag the second someone joins your list, is what creates the digital identity that makes visit-matching possible later on. Skip that step, and no clever code downstream fixes it retroactively.
What does bare-minimum tracking look like for a two-location taco spot versus a 40-unit chain? The independent gets real signal from one code per campaign and a spreadsheet tagging redemptions by send date. Not glamorous, but it beats flying blind. The larger operator runs true segment-versus-segment tests with a dozen codes live simultaneously, feeding a dashboard instead of a spreadsheet. Different scale, same idea. Neither one is guessing.
POS reconciliation: closing the loop between the send and the register
POS reconciliation matches the redeemed codes at the register back to the campaign they came from, then pulls the check totals for review. Said out loud, it sounds almost clerical. It is clerical. It's also the one step most restaurants skip entirely, which is a bit like buying a scale and never once stepping on it.
A real reconciliation report answers four things at once: redemptions per campaign, average check at redemption against baseline average check, total attributed revenue, and what's left after subtracting the discount and the cost of the send. Skip any one of the four and you're left admiring whichever number happens to flatter you.
Incrementality shows back up here, because it has to. Did SMS redeemers spend more than a typical guest, justifying the discount? Or did the discount just subsidize visits that were coming in regardless? There's no answering that without the baseline sitting in the same report, side by side.
Attribution windows need deciding in advance, not negotiated after the fact based on how a campaign happened to perform. Three days? Seven? Whatever number you pick, keep it fixed across campaigns, or none of your comparisons mean anything. Forrester found that 35% of organizations still lean on last-touch attribution as their primary model, a method that flattens an entire customer journey into whatever happened last and badly undercounts channels like SMS that warm a guest up well before the visit. Restaurants inherit that same blind spot if the window isn't built with intention.
Reconciliation turns SMS spend into a line item you can defend on a P&L. The data's already sitting in the POS. Somebody just has to go pull it.
What the revenue data from SMS campaigns actually looks like in practice
A Thai restaurant chain tracked through SimpleLoyalty saw SMS-driven sales climb from RM109,033 in January 2024 to RM201,160 by December, with SMS contributing somewhere between 10% and 20% of total monthly revenue across that stretch. That's compounding growth across a full year, and the only reason anyone can point to that figure is that the program tracked sales by channel from day one. Pull the attribution layer out and that growth vanishes right back into the aggregate, invisible to anyone glancing at total monthly revenue.
Win-back numbers tell a quieter version of the same story. Rezku tracked two restaurants targeting guests gone dark 30-plus days: an Italian restaurant moved from 1.05 to 1.17 monthly visits in that group, a Japanese izakaya from 1.12 to 1.29. On paper, those look like rounding errors. Multiply either lift across a guest list of a few thousand names, though, and it stops looking small fast.
What connects both examples is that the operators knew, before the first text went out, that tracking wasn't optional. Attribution got built into the plan from the start, ahead of any request for a report.
The $71-per-dollar figure that floats around SMS marketing decks deserves a skeptical squint. It's a documented high-water mark from one specific case, not a return you should expect reflected in your own POS by next quarter. Set your own internal benchmark from your own transaction history instead of anchoring to somebody else's headline number. Industry analysis found retention-focused SMS programs, running at fairly modest monthly cost, broke even with just 2 to 4 recovered guests a year. Far less exciting than $71 to $1, but it's a threshold you can actually check your own numbers against without a marketing team's spin attached.
How offer design choices move redemption rates before any measurement begins
Measurement matters, sure, but it's not the only lever, and pretending otherwise would be a little dishonest. Offer design moves redemption rates before any tracking system gets touched at all.
Urgency framing is the obvious one and the most reliable. "Tonight only" or "first 50 guests" consistently beats an open-ended discount a guest can use whenever, which in practice means never. Scarcity does psychological work no clever attribution setup can substitute for.
Personalization pulls in the same direction. First-name treatment, offers tied to a guest's own behavior, a lapsed visit, a birthday, a loyalty milestone, outperforms a blast sent to the whole list at once. A relevant nudge from a place a guest actually eats at lands differently than a generic discount text sent to someone who visited once, two years back, for a birthday that wasn't even theirs.
Birthday campaigns make a clean case study, since the occasion doubles as a built-in timestamp. That same SimpleLoyalty-tracked chain ran a 2024 birthday SMS push that brought back thousands of customers and generated RM380,342 in additional sales. The birthday trigger does two jobs at once: gives the guest a reason to show up, and gives the operator a clean, dated event to measure against.
Frequency discipline sits quietly under all of it. Text too often and the list goes numb; text too rarely and guests forget the relationship exists. Send cadence is part of offer design in the exact same way copy and discount depth are, even though it rarely gets mentioned in the same sentence.
Then there's the tension that only shows up once reconciliation actually happens: a deep discount can pull a higher redemption rate while producing lower net revenue than a shallower discount that redeems less often but costs far less per visit. You can't see that tradeoff from the redemption number alone; you need POS reconciliation sitting right next to it, because offer design and measurement are really one job wearing two hats. SimpleLoyalty's 2024 data also showed automated point reminders producing steady redemption growth over time, while manually timed sends produced inconsistent engagement, suggesting the consistency of the trigger carries almost as much weight as what the trigger says.
Building a reporting cadence that turns campaign data into decisions
A post-campaign review worth running covers four numbers: redemption rate (redeemers over recipients), revenue per redemption (average check tied to the campaign), net campaign revenue (attributed revenue minus offer cost and send cost), and visit frequency change among redeemers over the following 60 days.
What do you actually do with those four numbers once you've got them? Double down on the offer types and segments producing the strongest net revenue. Redesign or retire the ones pulling high redemption on thin margin. That's the whole decision tree, and it's not complicated once the data exists to feed it.
The most honest benchmark isn't some industry average; it's this campaign against your last one, same segment, same restaurant. External numbers help set expectations in a general sense, but your own POS history is the only baseline built entirely from your own guests. Per one restaurant marketing benchmark, a 500% return, five dollars back per dollar spent, counts as a strong target for digital channels where performance is actually measurable. Campaigns landing closer to 200% deserve a redesign, not a shrug. SMS is one of the few restaurant channels where this math is even possible to run, which says as much about the channel's strengths as it does about how poorly measured everything else tends to be.
Finance departments are asking harder questions of marketing everywhere, not just in restaurants. Finance departments are pressing marketing leaders harder than ever to prove what spending actually produced, a trend playing out across industries. Restaurant operators face a smaller version of the same conversation, and the honest answer to "did this campaign work" comes from the POS, not from whatever delivery report the SMS platform hands you on the way out the door.
Reporting cadence is the difference between a measurement system and a filing cabinet full of good intentions. Review the data, adjust the next send, and you've got a program with some discipline behind it. Send, glance at the open rate, shrug, repeat: that's just sending with extra steps.
Where SMS measurement connects to a broader restaurant attribution practice
SMS happens to be measurable in ways most restaurant marketing simply isn't. It has a send timestamp, a trackable offer code, and a POS redemption event sitting at the end of the chain. That combination makes it a decent working model for how attribution ought to run across the rest of a restaurant's marketing, not just inside this one channel.
The infrastructure transfers directly. Unique codes, POS reconciliation, a defined attribution window: that's attribution machinery, full stop, and it works just as well on a paid social campaign or a creator partnership as it does on a text blast, which is the problem Feastalytics was built to solve by tying campaigns across channels back to POS revenue. Per Olo's 2024 data, roughly 60% of restaurant revenue comes from 20% of guests, which means weak attribution doesn't just blur results. It actively misallocates spend between acquisition and retention at exactly the moment those decisions carry the most weight.
Social-to-store attribution needs the same three pieces SMS attribution needs: a trackable entry point, a proof-of-visit signal, a defined window for how long an interaction still counts. Trackable signup, visit verification, window management: same structure, different channel wearing it.
The measurement gap making SMS ROI hard to prove is the identical gap making paid social ROI, creator campaign ROI, and loyalty program ROI hard to prove. Close it in one channel, and you're building the habit and the plumbing that makes closing it everywhere else considerably less painful the second time around.
Restaurants treating SMS tracking as its own walled-off project are missing what's sitting right next to it: one attribution practice connecting every send, ad, or creator post back to the specific revenue it produced at the register. SMS happens to be the easiest place to start, because the redemption code makes the connection almost impossible to lose track of.


