The store-to-web subscriber migration playbook
How mobile subscription apps move an existing book from app-store billing to direct web billing they control end to end — the sequence, the safeguards, and the worked math at $5M ARR.
Web billing costs 3.6% + $0.30 in processing. A mixed store book blends to roughly 22% — on a $17 renewal that gap is +16.6 points of margin, permanently5.
Cost to collect one renewal. Chapter 02 decomposes both.
Store billing costs a representative $5M book $1.1M a year — 22% of everything billed — and holds a further $513K, about 10% of ARR, in a 48-day settlement queue.
The method requires no SDK, no app release and no binary change — it runs outside the app, under Apple 3.1.3(b)1 and Google Play policy2.
The key risk is induced attrition — every migration message is also an invitation to reconsider the subscription. 8.2% of the entire base cancelling because of the campaign erases year one, and a blast to everyone, dormant subscribers included, is how you find that number. Churn-aware design is a requirement.
The migration rate is won in the campaign — multi-touch, cohort-aware, the offer personalised per subscriber. Every point of acceptance returns $8,314 a year on the reference book, recurring.
The fee saving is the visible change — the durable one is ownership. Pricing, lifecycle motions and the subscriber relationship stop being store-mediated. And a migration is a capability, not a project: new store cohorts mature onto the rail, and the book keeps compounding.

This is what we have found running store-to-web migrations — the mechanism, the arithmetic, and the parts that argue against doing it. We publish it in full so any app can weigh the move on its own terms — check the arithmetic, borrow the framework, and decide with the whole method in front of you.
Acts I to III are vendor-neutral: the method holds whether you run it in-house, with us, or with someone else. Act IV is where we set out what Recurr does and what working with us involves.
— Matthew Vanmidde, Founder
Sixty seconds, on your ARR and fee mix. The summary above is enough to start.
Run your numbersThree chapters, five minutes. Twenty-nine for all four acts.
Read Act IEvery figure computes from the same model the audit runs on your numbers. The worked example is a representative book: $5M store-billed ARR, 22% blended store fee, 50/50 plan mix at $10/mo and $100/yr. Web figures carry the payment rails only — Stripe at the published rate for your billing country, Stripe Billing at 0.7%, and the flat fee4. They do not net Stripe Tax, which trims roughly a point.
1 Apple App Review Guidelines, 3.1.3(b) — Multiplatform Services.
2 Google Play Payments Policy.
3 RevenueCat, State of Subscription Apps 2026 — apps with $25M+ annual gross consumer spend.
4 Stripe published pricing by market, July 2026.
5 These figures are gross of cost, in two ways. Running billing — dunning, tax, receipts, refunds, chargebacks — moves with the billing and costs something wherever it sits. So does the migration itself: vendor fees, internal engineering and support time, campaign cost. Neither is netted here. The audit nets both against your own numbers.