# How Many CTAs Does the Median Mobile Paywall Have?

Source: Lazyweb Research
Author: Ali Abouelatta, Lazyweb Research
Published: 2026-07-07
Updated: July 2026
Sample size: n=874
Category: [Paywall anatomy and plan-structure benchmarks](https://design.lazyweb.com/blog/category/paywall-anatomy-and-plan-structure-benchmarks)
Tags: paywall, monetization, mobile, ux-patterns, checkout
HTML: https://design.lazyweb.com/blog/how-many-ctas-median-paywall-has
Markdown: https://design.lazyweb.com/blog/how-many-ctas-median-paywall-has.md

**Answer.** Across 874 mobile paywalls with extracted CTAs in Lazyweb's corpus, the median paywall shows 2 distinct call-to-action texts (p25=1, p75=3, mean 2.89)[1]. Most paywalls are lean: 42% show a single CTA and 68% show one or two[1]. If you have more than three CTAs on a paywall, you are in the top ~21% and should have a reason for it.

> The median mobile paywall shows 2 distinct CTAs; 41.8% show just one (n=874 paywalls, Lazyweb Research, July 2026).

## The distribution

From 874 canonical paywalls with extracted CTAs, counting distinct CTA texts per screen[1]:

| Distinct CTAs | Paywalls | Share |
| --- | --- | --- |
| 1 | 365 | 41.8% |
| 2 | 225 | 25.7% |
| 3 | 99 | 11.3% |
| 4+ | 185 | 21.2% |

Median is 2, p25 is 1, p75 is 3, and the mean is 2.89[1] — pulled up by a long tail of dense paywalls.

## How to apply it

Two CTAs is the modal, safe structure: typically one primary subscribe/continue action plus a secondary link (restore, view plans, or dismiss)[1]. A single-CTA paywall is the single most common pattern at 41.8%[1] and is a defensible minimalist choice. Going to 4+ distinct CTAs puts you in the top 21%[1]; that usually means multiple plan buttons acting as CTAs, so make sure the primary action is still unmistakable.

## Caveats

Counts use distinct CTA texts per canonical to avoid double-counting re-extractions; raw row counts have a long tail (up to 114 rows on one canonical)[2]. CTAs were extracted for 874 of the 1,297 canonical paywalls[1]. This measures how many CTA texts appear, not their roles — see the role-mix pages for primary/secondary/dismiss splits.

## The numbers

| Stat | Computed from |
| --- | --- |
| median 2 CTAs (p25 1, p75 3, mean 2.89); 1=365 (41.8%), 2=225 (25.7%), 3=99 (11.3%), 4+=185 (21.2%) of 874 | cta_count_per_paywall: distinct cta_text per canonical from paywall_ctas |
| 874 of 1,297 canonical paywalls have extracted CTAs; max 114 raw rows on one canonical | cta_count_per_paywall coverage and dedup note |

## Methodology

Universe: 874 canonical paywall screens with extracted CTAs across ~800 tracked apps; distinct CTA texts counted per canonical, July 2026. Caveat: counts distinct texts (not roles); raw rows have a long tail so dedup is required.

## Visual references

Real, in-market app screens tracked by Lazyweb Research:

- Superlist: https://zlfyzdmohcskkucuunmk.supabase.co/storage/v1/object/public/screenshots/app_trees/superlist/superlist-50e40c4f54210668/screen_018_18_Paywall_productivity-paywall-dismiss-attempt.png
- Flighty: https://zlfyzdmohcskkucuunmk.supabase.co/storage/v1/object/public/screenshots/uploaded_flighty/paywall/compare/2026-05-28/1780022206824_00_Flighty-20260529-023646-01.png
- Headway: https://zlfyzdmohcskkucuunmk.supabase.co/storage/v1/object/public/screenshots/edu17_headway/lazyscreenshots/2024_07_06_13-41-11_0F76CB5C.png
- Glow: https://zlfyzdmohcskkucuunmk.supabase.co/storage/v1/object/public/screenshots/uploaded_glow/paywall/compare/2026-05-28/1780022910198_00_Glow-20260529-024829-01.png

## Sources & citations

- [1] Lazyweb Research analysis of 874 paywall screens with extracted CTAs (~800 tracked apps), July 2026. Distinct lower(cta_text) counted per sc_canonical_id from paywall_ctas.
- [2] Lazyweb Research analysis of 1,297 canonical paywall screens (~800 tracked apps), July 2026. CTA extraction covers 874 canonicals; distinct-text dedup avoids re-extraction inflation.

## Related questions

- [What Is the Mix of Primary, Secondary, and Dismiss CTAs on Paywalls?](https://design.lazyweb.com/blog/paywall-cta-role-mix-primary-secondary-dismiss)
- [Dark or Light: What Background Do Mobile Paywalls Actually Use?](https://design.lazyweb.com/blog/dark-vs-light-paywall-background-benchmark)
- [Do Paywalls Use Feature Checklists or Benefit Carousels?](https://design.lazyweb.com/blog/do-paywalls-use-feature-checklists-or-benefit-carousels)
- [How Many Plan Options Do Mobile Paywalls Show — 1, 2, or 3?](https://design.lazyweb.com/blog/how-many-plan-options-do-mobile-paywalls-show)
- [What % of Paywalls Pre-Select the Annual Plan?](https://design.lazyweb.com/blog/what-percent-of-paywalls-preselect-the-annual-plan)
- [What % of Paywalls Show Social Proof (Ratings, Member Counts)?](https://design.lazyweb.com/blog/what-percent-of-paywalls-show-social-proof)
- [What % of Paywalls Mention a Free Trial?](https://design.lazyweb.com/blog/what-percent-of-paywalls-mention-a-free-trial)
- [How Many CTAs Does the Median Paywall Have?](https://design.lazyweb.com/blog/how-many-ctas-does-the-median-paywall-have)

## Explore the evidence

- [Cal AI app tree](https://design.lazyweb.com/company/cal-ai/app-tree) — Full 45-frame August 2026 capture
- [Cal AI trial introduction](https://design.lazyweb.com/flow/cal-ai/onboarding-paywall) — Three captured screens · August 2026
- [Cal AI: sign-in, trial, then reminder](https://design.lazyweb.com/blog/cal-ai-sign-in-trial-reminder-sequence)
- [Paywall before or after account creation?](https://design.lazyweb.com/blog/do-apps-paywall-before-or-after-account-creation)

## Continue your research

[Connect Lazyweb to your coding agent](https://www.lazyweb.com/mcp-install)
