What changes structurally
Migration shifts the billing rail. Not just for the subscribers who get migrated — for every subscriber who arrives after you have web rails in place. Before migration:- Existing subs on app-store billing at 15–30%
- New subs on app-store billing at 15–30%
- Existing migrated subs on web: 6% Recurr take in Y1 (3.5% platform + 2.5% performance fee), 3.5% Recurr take in Y2+, plus your country-specific Stripe processing
- Existing un-migrated subs still on app-store billing (untouched)
- New subs acquired through web channels: 3.5% Recurr take from day one (no migration performance fee on new web subs), plus Stripe processing
Why this matters for paid acquisition
Assumptions in this section. US-based app on Stripe (2.9% + 17 ARPU. At $17 ARPU the per-transaction flat fee adds ~1.76 points to the Stripe percentage basis, so all-in Stripe is ~4.66%. Your live Migration Audit uses your country-specific rate and actual ARPU.
- Existing book: the migrated cohort recovers margin permanently for the lifetime of each subscription (see where the recovery comes from for the worked numbers)
- New cohorts: every dollar of paid acquisition spent post-migration runs on the lower fee structure from the first charge
The earlier you start, the longer compounding has to run
For an app expecting to operate for 5+ years, the compounding window is the dominant variable. A migration that takes 12 weeks frees the next 200+ weeks of acquisition + retention to run on web rails. For an app planning a sale in 18 months, compounding still matters — buyers value LTV-based metrics, and the ones that reflect web economics are more attractive than the ones blended with store fees.The audit shows a multi-year view alongside the year-one figure for exactly this reason. Year one is the entry; later years are where the default rail matters. The full lifetime number depends on retention curves the public audit doesn’t see.
