01The vendor
Replacing the rewards vendor
An outside vendor’s platform, paid monthly: a messaging system bundled with two rewards apps, built on a no-code platform and published under the vendor’s own developer accounts.
Rebuilt in-house, on a ledger and developer accounts the business owns.
I rebuilt the system in-house. For customers it works the same way.
The same points, rewards and balances, and on iOS the new apps ship as updates to the existing App Store listings, so nobody has to find a new app.
- Redesigned apps for both brands, built from one codebase with each brand’s own design
- Balances on a ledger the business owns, with every redemption checked and debited on the server
- Passwordless sign-in, so no customer has to reset a password the old vendor never exported
- Developer accounts in the brands’ own names on Apple and Google
- No monthly fee for the apps or the rewards program once customers switch over
I wrote the handover requirements, starting with the consent records: the per-contact opt-in history that decides whether the business can keep messaging the customers it inherits.
Every customer balance carried over to the new ledger and matched the old system’s export. How the apps and the ledger work is on the Mobile Apps and Backend & Data pages.
02The SOW
Reviewing a statement of work
For a data-platform project with an outside partner, I reviewed the draft statement of work.
- Review the draft against what our data actually holds
- Flag the assumptions that would not survive contact with it
- Hand the owners the questions to settle before signing
03Claims
Checking claims against the data
Before a vendor’s claim drives a decision, I measure it against the live database.
- DeduplicationThe point-of-sale customer ID was already a reliable key, and merging on email address would have fused unrelated customers who share a placeholder address
- A metricMembership sales, defined for an analytics consultancy building dashboards on the same data: count purchases, not activity, so free package redemptions do not register as sales
- AdoptedSent with a reference series to validate against. Their workflow now runs on it