Indie developers obsess over the paywall screen. They should obsess over the paywall sequence. A converting paywall is rarely about visuals; it is about timing, framing, and recovery. Here is the anatomy that works for us across eight live Tappa apps.
1. The trigger
The paywall should appear after a moment where the user has just experienced value. Not on launch. Not on the second screen. After a clear win.
For I Remember, the trigger is finishing the first puzzle pack. For Lunara, it is logging the third dream. For Receipt Scanner, it is the first export. We measure the conversion rate at each candidate trigger point and pick the one with the highest paid conversion per impression — not the one with the highest impression count.
2. The lead
The top of the paywall has one job: tell the user what they are about to get, in their own words. Not features, benefits. Not "unlock pro", but "keep your streak forever" or "export everything you've scanned".
The lead matters more than the price.
3. The plan layout
Three principles:
- Default to annual. Annual subscriptions have higher LTV by ~3x in our portfolio. Make annual the visual default.
- Show the per-week price of the annual plan. "$0.96/week" reads cheaper than "$49.99/year," and it is the same money.
- Use a discount badge on annual that is a real percentage of monthly × 12. No fake math. Apple's review team will catch it eventually.
4. The free trial framing
If you offer a free trial, frame it as "Try 7 days free, then $X". Do not bury the post-trial price. Users who feel tricked refund. Refunds tank your conversion rate over time.
5. The objection-handling row
A single line just below the plans, addressing the most common reason for hesitation:
- "Cancel anytime in Settings."
- "No charge during the free trial."
- "Family Sharing supported."
We A/B-tested this row across multiple apps. Adding it consistently lifted conversion 6–12%.
6. The dismissal
The X button. It must be there. Hiding it is a dark pattern, Apple has cracked down on it, and the long-term cost in refunds and reviews is brutal.
What works better: a soft "Continue with limited free version" link below the plans. Explicit, calm, honest.
7. The recovery
The most under-built part of any paywall sequence. After the user dismisses, they should see a simpler offer 24–72 hours later, ideally tied to a moment of value ("You finished puzzle 25. Unlock the full pack?"). For our portfolio, the recovery offer recovers an additional 8–15% of dismissed paywalls.
8. The settings paywall
The paywall the user reaches by tapping "Upgrade" in Settings is not the same paywall they saw at the trigger. It assumes more knowledge, more intent, and less hand-holding. Give it a different layout, and remove the explanatory copy.
A final note on testing
A/B test paywalls one variable at a time. Run each test until you have confidence (usually a week). Do not run more than two paywall tests at a time. Conversion data is noisier than people admit.
The paywall is the most leveraged surface in your app. Spend a disproportionate share of your time here. The math says so.