What Percent of Onboarding Flows Include a Paywall Step?
Across 129 canonical onboarding flows tracked by Lazyweb Research, at least 31% (40 of 129) contain an in-flow paywall step [1]. Because the paywall label is sparse (present on only 1,583 of 23,407 canonical screens), treat 31% as a floor, not a ceiling. The 40 flows come from 40 distinct companies, so roughly one in three apps interrupt onboarding with a purchase moment.
40 of 129 canonical onboarding flows (31%) contain a paywall step, Lazyweb Research, July 2026 (N=129 flows).
The finding
Of 129 canonical onboarding flows (drawn from 2,467 flows and 10,811 flow steps across ~800 tracked apps), 40 contain at least one screen flagged as a paywall [1]. That is 31% [1]. The 40 paywalling flows map to 40 distinct companies out of the 125 companies represented in the onboarding set [2], so the company-level rate is comparable at about one in three.
Why this is a floor
Paywall detection uses the is_paywall screen flag, which is NULL on 21,824 of 23,407 canonical screens [3]. A cross-check against screen-category names containing 'paywall' added zero additional flows [3], so the flag is internally consistent within onboarding, but undetected paywalls almost certainly exist. Frame the number as 'at least 31%.'
How to apply it
If you are deciding whether an in-onboarding paywall is normal, the answer is: common but not universal. A majority of onboarding flows (69%, 89 of 129) ship no paywall step in-flow at all [1] — many apps defer monetization to a separate surface. Benchmark against your vertical rather than the blended average; rates swing from 54% in Health & Fitness to near zero in social and utility categories [4].
The numbers
| Stat | Computed from |
|---|---|
| 31% (40 of 129 onboarding flows) | onboarding_flows_with_paywall |
| 40 of 125 companies | onboarding_company_coverage |
| is_paywall NULL on 21,824 of 23,407 screens; category cross-check added 0 flows | universe / smallSampleWarnings |
| Health & Fitness 54% (14/26); Social 0/10 | vertical_health_fitness / vertical_contrast_low_paywall |
Sources & citations
- [1] Lazyweb Research analysis of 129 onboarding flows (~800 tracked apps), July 2026. Onboarding flows = flow_name ILIKE '%onboarding%'; paywall = sc_canonical.is_paywall IS TRUE. ↩
- [2] Lazyweb Research analysis of 125 companies (~800 tracked apps), July 2026. Distinct company_name across the 129 onboarding flows; 40 have an in-onboarding paywall. ↩
- [3] Lazyweb Research analysis of 23,407 canonical screens (~800 tracked apps), July 2026. is_paywall is NULL on 21,824 rows; a %paywall% category-name cross-check surfaced no additional flows. ↩
- [4] Lazyweb Research analysis of per-vertical onboarding flows (~800 tracked apps), July 2026. Category joined via companies.category; verticals under 8 flows dropped. ↩
Source: Lazyweb Research — proprietary analysis of real, in-market app screens. Cite as Lazyweb Research, 2026-07-07.