In product, the most consequential decisions are almost never the most obvious ones. They are not the ones debated in strategy reviews or flagged in quarterly roadmaps. They are the ones that seem small — a checkout flow, a single form field, where a button lives — but contain an entire philosophy about what you believe the user deserves.
Putting loyalty at checkout instead of in a separate app was that decision for OPA!. It is the single product choice that most clearly defines what kind of company we are building — and what kind of company we refuse to be.
I'm Charran Harrichand, Chief Product Officer & Co-Founder of OPA!. I've spent thirteen years in telecom designing customer experiences for systems that serve millions of users simultaneously. This article is about the product decision that changed everything — and the thirteen years of pattern recognition that made it inevitable.
The Problem We Were Solving
Before I explain the decision, let me show you the problem it was designed to eliminate.
The standard restaurant loyalty enrollment flow — the one used by virtually every major restaurant brand and third-party loyalty platform — looks like this:
An 89% attrition rate. Out of every 100 customers who encounter your loyalty program, only 11 ever participate. Not because they don't want rewards — everyone wants rewards. Because the enrollment process demands too many discrete actions: a separate download, a separate account, a separate login, a payment link, and a deliberate check-in at checkout.
This is not a loyalty funnel. It is a loyalty filter — a system that eliminates the vast majority of your customers before they ever engage with the program designed to retain them. The industry has accepted 11% enrollment as normal. It is not normal. It is a product failure.
The 13-Year Lesson from Telecom
In telecommunications, I spent over a decade designing customer experiences for systems that process millions of concurrent interactions. The foundational lesson — the one that shapes every product decision I make — is this:
Every additional step in a user flow is an attrition event. Not might be. Is.
In telecom, onboarding friction is measured in basis points of customer lifetime value. A single extra screen in an activation flow — one additional tap — costs millions of dollars in aggregate LTV across a large user base. Not because any individual user cares about one extra tap. Because at scale, the cumulative effect of friction is attrition, and attrition compounds.
I brought that measurement discipline to OPA!. Every feature we build is evaluated against a single question: does this add a step? If it does, we find a way to eliminate it. If we can't eliminate it, we make it invisible. If we can't make it invisible, we question whether the feature should exist at all.
The Decision
The alternative was obvious — and it was wrong.
The standard approach in the industry is to build a companion loyalty app. Separate download. Separate profile. Separate points balance. Backend integration with the ordering platform. It's what every major chain does. It's what every loyalty vendor recommends. And it is a product that optimizes for the vendor's architecture rather than the user's experience.
A companion app doesn't eliminate friction. It moves it. The customer still has to take an action outside the transaction to participate in the loyalty program. And the data from thirteen years of telecom UX told me exactly what happens when you require out-of-transaction actions at scale: most users don't take them.
So we made the decision: loyalty at checkout.
Auto-enrolled on first order. No download. No separate profile. No extra action. If you ordered, you're enrolled. Your loyalty wallet is provisioned automatically. Your points accrue automatically. Your rewards appear at your next checkout automatically. The entire loyalty experience happens inside the transaction — because the transaction is the only moment you have the customer's full attention.
What Changed
The data on loyalty enrollment rate when friction approaches zero versus the industry standard:
The difference between 11% and near-100% is not a percentage improvement. It is a category change. At 11%, a loyalty program is a niche feature used by your most dedicated customers. At near-100%, it is a retention engine that touches every customer who orders. The revenue implications are not marginal — they are structural.
OPA! partners report 3.2x higher repeat order frequency among loyalty-enrolled customers and 22% higher average order values when customers see progress toward a reward at checkout. When enrollment is universal, these numbers apply to your entire customer base — not just the 11% who bothered to download a separate app.
The Product Philosophy
The principle behind the loyalty decision extends to every product choice at OPA!: the right experience is the one the user doesn't have to think about.
This is not about simplicity for its own sake. It is about respecting the user's attention as a finite, precious resource that you do not have the right to waste. If a user has to make an extra decision, download an extra app, or remember to do something to access the full value of the platform — the product has failed them. Full stop.
At OPA!, this philosophy manifests in every layer of the product:
POS integration happens in 48 hours — not because we cut corners, but because the integration architecture was designed to eliminate every unnecessary step in the setup flow.
Menu sync is automatic — because requiring manual menu entry is a friction event that delays go-live and introduces errors.
Customer profiles are auto-provisioned — because asking a customer to create a profile before they can order is asking them to prove they deserve to use your product. They don't owe you that. You owe them a frictionless experience.
Every one of these decisions was informed by the same thirteen years of telecom pattern recognition: friction is never neutral. It always has a cost. The only question is who pays it — the user, or the product team who let it exist.


