ChaatPass is loyalty a family-run restaurant can own
Our own product: an SMS loyalty program that needs no app or new hardware. The customer’s phone number is the card, and every point is a row in a ledger that has to add up. Live in pilot at Karachi Chaat House on Devon Ave since April 2026.
Visit chaatpass.comAll four numbers are from the ChaatPass production database, read on October 2, 2026. Pilot launched April 2026.
The problem
Big chains run loyalty programs that remember every order and bring customers back. Most independent restaurants have a paper punch card at best, or a marketplace app that keeps the customer relationship for itself. Devon Ave is one of Chicago’s great dining corridors, and its family-run restaurants had no practical way to own a repeat audience.
How it works
Your number is the card
Customers give their phone number once. They can do it at the kiosk or when ordering online, or scan the QR code on the table. Nobody needs an account or a password.
Automatic points
Every paid order earns 5% back. Points land with no staff step, because the program reads the payment itself.
Self-serve redemptions
At 100 points, $5 comes off the next order. Members redeem it themselves on the same three channels. Nobody has to go to the counter or read out a code.
A few texts per order
One or two transactional messages per order, such as a welcome or a points-earned note, plus a text when a reward is ready. STOP works at any time.
When a delivery fails
If a delivery can’t be dispatched after a customer redeems, the points go back automatically. Members never pay for our failures.
The rules
$1 earns 1 point, worth 5¢. Points cover up to half a bill.
Points are a ledger
We treat points as money the restaurant owes its regulars. Every change to a balance is a row in a ledger, and the balance is only ever the sum of those rows.
What has to stay true
When a redemption fails
- Paid order. Square confirms the payment.
- Member identified. The phone number on the order matches a member.
- Earn recorded. An earn row is written with the Square payment ID, and the balance moves in the same transaction.
- Reward redeemed. On a later order the member takes a reward. A redeem row lowers the balance.
- Delivery fails. Uber can’t dispatch the order.
- Value restored. The payment is refunded and a reversal row returns the points. The ledger keeps both rows.
In production this path has written 4 reversal rows that returned 285 points, as of October 2, 2026.
Reconciliation
| Metric | Value | How it is counted |
|---|---|---|
| Member balances, total | 22,203 points | Sum of every member’s balance |
| Ledger, total | 22,203 points | Sum of every ledger row |
| Difference | 0 points | Balances minus ledger. 0 of 420 members are out of step. |
| Members | 420 | Member records |
| Sign-ups | 413 | Sign-up bonus rows in the ledger. Not every member record has one. |
| Points issued | 26,163 | 21,486 as sign-up bonuses and 4,677 earned on purchases |
| Points redeemed | 4,161 | 96 redemptions |
| Redemption rate | 15.9% | Points redeemed divided by points issued |
| Adjustments and reversals | 201 points | Net of 4 reversals and 26 adjustments. Issued, less redeemed, plus this figure gives 22,203. |
| Members who have redeemed | 46 | Leaves out online redemptions made without a one-time code. With them the count is 57. |
| Member purchases | 246 | Earn rows in the ledger |
These are points and counts. The restaurant’s sales figures are not published here.
What went wrong and how we fixed it
On September 26, 2026 we checked every balance against the ledger and they did not all match. Older code had updated balances and written ledger rows as two separate steps, and some early rows had the wrong sign.
We posted 23 correcting rows, each labelled with the reason for it, and moved every balance change into the single database function described above. Balances and ledger matched that day. They matched again when we read them on October 2, 2026.
Limits
- These are totals for one restaurant in pilot. They say nothing yet about how the program performs elsewhere.
- The balance check runs daily as a scheduled job. On October 7, 2026 we planted a one-point error in the test copy of the database: the check caught it and alerted, and went quiet once it was fixed.
- The database refuses edits and deletes to ledger rows; a correction is a new row.
- Points come back automatically when a delivery fails. A refund issued by hand at the register does not restore points on its own.
- Most member records don’t record which channel the sign-up came through, so we don’t publish a split by channel.
The pilot
ChaatPass launched in April 2026 at Karachi Chaat House on Devon Ave, running on the ordering and kiosk platform we built and run in production. Since its launch month, 200 more members have joined, and members redeem on their own in every channel. Next, it opens to more family-run restaurants on the block through a founding-partner waitlist.
See it live
Running a restaurant that should own its regulars?
ChaatPass is opening to founding partners on Devon Ave. If you want the same system, or loyalty built around your own stack, tell us about it.