Qpon's Subscription Voucher Platform

We turned a directory of vouchers that subscribers showed at a counter into a redemption system the subscription business could actually measure.

Qpon's Subscription Voucher Platform

The Objective

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.

Service Tags

Mobile App Development Web Application Development Subscription Platform Engineering Admin Panel Development

Industry Tags

Consumer Rewards Subscription Commerce

Tech Stack

React Native React Node.js PostgreSQL AWS Stripe Billing Firebase Cloud Messaging Google Maps SendGrid

The Impact

30 months
Continuous engagement across the product's full lifespan
The same core team shipped the first release, the redemption module, and the referral loop.
100%
Of redemptions now attributed to a merchant, outlet, and subscriber
Before the redemption module, none were recorded anywhere in the system.
0%
Expired-coupon support tickets since expiry dates were removed
Coupons now run on usage frequency rather than a calendar date.
1 month
Free subscription earned per converted referral
Replaced a manual, admin-issued promo code process.
The Client

A subscription business that could not see what its subscribers were doing.

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.

The Problem

A voucher that is only shown is a voucher that never happened.

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.

qpon-signup-screen
qpon-yen-ching-screen
Our Approach

Redemption first, because every later decision needed the data it produced.

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.

What We Built

The System

One subscriber app across two platforms, plus three web panels and a business onboarding flow.

Subscriber app (iOS + Android)
Business onboarding
City panel (web)
Admin panel (web)
How It Was Built

Thirty months on a rolling retainer, with the riskiest module rolled out one counter at a time.

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.

Outcome

Every redemption is a record, and the admin team no longer maintains the catalogue by hand.

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.

Testimonials

“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.”

Founder, Qpon

A subscription product that cannot see what its subscribers use is guessing at both churn and partner value.

If you are trying to close that loop inside a live consumer platform, we have done it without a rebuild.

Start the conversation