We turned a directory of vouchers that subscribers showed at a counter into a redemption system the subscription business could actually measure.
Qpon’s subscribers paid every month for vouchers they could only display at the counter. Nothing was recorded, so no merchant could be shown what the partnership was worth and no expiry date made sense. Over thirty months we built in-app redemption, replaced calendar expiry with weekly, monthly, and one-time usage rules, and swapped hand-issued promo codes for a referral loop. Every redemption is now attributed to a merchant, an outlet, and a subscriber.
Qpon runs a paid consumer subscription across US cities, onboarding local businesses whose offers make up the catalogue. They came to us with a working product and a structural gap: the thing subscribers paid for left no trace. They wanted a team that would stay long enough to fix the model underneath the roadmap.
Subscribers paid every month for a catalogue of offers that did nothing but appear on a screen. A customer held up the phone, a cashier nodded, and the transaction left no record anywhere in the system.
That broke two things at once. Merchants asking how many subscribers the partnership had actually sent them got an estimate, which turned every renewal conversation into a negotiation over a number nobody had. And with no redemption data, churn stayed invisible until a card declined.
Every voucher also carried an expiry date, so the admin team spent its week re-issuing lapsed offers and answering tickets from subscribers who had missed one. Promo codes were generated by hand, one request at a time.
Redemption went in before anything else on the roadmap. A voucher that is shown is a marketing asset. A voucher redeemed in the app is a record carrying a merchant, an outlet, a subscriber, and a timestamp, and the merchant renewal conversation, the churn read, and the coupon rules all needed to read from that record.
Once redemption was logged, expiry stopped being necessary. We recognized that the expiry date had only ever existed to control how often a subscriber used an offer, and it was a crude instrument for the job. Replacing it with an explicit usage rule on each coupon, weekly, monthly, or one-time, gave merchants tighter control than a date ever did and removed the lapsed-offer cleanup from the admin team entirely.
Referral came last, deliberately. The free-month reward costs real subscription revenue, so we held it until the redemption data could show which subscribers were worth acquiring more of. Then the manual promo code process became a self-serve loop.
One subscriber app across two platforms, plus three web panels and a business onboarding flow.
The same core team carried the product from the first release through redemption and referral. Redemption shipped as a phased rollout across a handful of merchant outlets first, because the failure mode was a cashier who did not know what to tap. We wrote the counter-side flow to survive an untrained employee on a weak signal, then expanded city by city once the first cohort stopped generating support calls.
Subscribers redeem in the app and the record lands against a merchant, an outlet, and a timestamp. A merchant renewal conversation now opens with the redemption log for that outlet rather than an estimate, and the same data tells the business which cities and categories are carrying the subscription.
Coupons no longer expire. Each one runs on its own usage rule, weekly, monthly, or one-time, so a merchant controls frequency directly and the admin team has stopped re-issuing lapsed offers. Promo code requests have been replaced by a referral link every subscriber already has, and the free month is issued by the system when the invite converts.
“They pushed the referral feature back by almost a year and I was annoyed about it at the time. The argument was that giving away free months before we could see who actually used the app would only lose us money faster. They were right.”
If you are trying to close that loop inside a live consumer platform, we have done it without a rebuild.
Start the conversation