Pick Plug

Sports handicapping app with daily winning picks

0IAP conversion errors after the rewrite
10–30%of purchases failing before the fix
Pick Plug screenshot 1
JavaSpring BootAndroidIn-App PurchasesPush NotificationsMobile

What is Pick Plug?

Pick Plug is a mobile sports picks application where subscribers receive daily handicapper selections. The platform includes in-app purchases, backend subscription management, and push notification delivery.

What problem did Pick Plug solve?

The client had a broken Android IAP flow and a backend that failed to correctly unsubscribe users — causing billing issues and poor user retention. The fix required expertise in both Android and server-side subscription logic.

How Pick Plug works

Audited and rewrote the Android IAP validation flow end-to-end, fixed the backend unsubscribe webhook handler, and implemented reliable push notification delivery for daily picks. IAP conversion errors dropped to zero. Unsubscribe failures were eliminated. The client reported significantly improved user retention and store reviews after the release.

Case Study in Depth

What was going wrong?

Pick Plug sells one thing: a subscription that unlocks daily handicapper picks. When the subscription flow breaks, the business breaks — and it was breaking intermittently, which is the cruelest failure mode. Somewhere between 10 and 30 percent of purchase attempts were failing: a user would tap subscribe, the flow would error or the entitlement wouldn't arrive, and the revenue simply didn't happen. Intermittent means it passes a casual test, survives a cursory code review, and keeps bleeding conversions for months while everyone half-suspects the users are doing it wrong.

The backend had the mirror-image bug: the unsubscribe webhook handler was failing, so cancellations didn't reliably propagate — users who thought they'd cancelled were still being billed. Failed purchases lose revenue; failed cancellations lose trust and generate the one-star reviews and chargebacks that follow it. The app was leaking value at both ends of the subscription lifecycle.

How was it fixed?

Intermittent purchase failures are almost never one bug; they're a chain of small unsound assumptions that only align into failure under real-world timing. So the engagement started with an end-to-end audit of the whole lifecycle — the Android client's billing flow, the store's purchase states, and the server's validation and webhook handling — against production configuration, not a sandbox, because the original bugs had survived precisely by behaving in test environments.

The Android IAP validation flow was rewritten end-to-end to handle every state the store can actually produce, including the awkward ones — pending purchases, retries after interrupted connections, restored purchases on reinstalled devices. The unsubscribe webhook handler was fixed so cancellation events from the store reconcile server-side entitlements reliably. And since the daily-picks product lives or dies on delivery, push notification delivery was hardened in the same engagement — the subscription is only worth paying for if the picks actually arrive every morning.

What changed after release?

In-app purchase conversion errors went to zero — from a 10–30% intermittent failure rate to none — and unsubscribe failures were eliminated. The client reported meaningfully improved retention and store reviews in the releases that followed, which is what you'd expect when the two worst moments in the user relationship (paying and leaving) both start working correctly. The engagement is small in the portfolio's word count and outsized in its shape: this is what mobile rescue work looks like — narrow scope, production-config diagnosis, and a fix measured directly in recovered revenue.

Client feedback on this project

VC

Verified Client

Freelancer.com · 6 years ago

$200 CAD

The best app developer there is hands down! Great Work!