Do paywalls show the price in the CTA button or only above it?
Only 11.6% of 1,886 primary paywall CTAs (219 buttons) embed a price in the button text; a further 8.2% (155) show a price in the copy above the button but keep the button price-free.[1][2] In the extracted copy, 80.2% of primary CTAs have no price in the button or its adjacent copy at all.[3] Putting the price in the button is the minority pattern — most apps keep it out.
11.6% of 1,886 primary paywall CTAs (219) embed a price in the button; another 8.2% show price only above it — Lazyweb Research, July 2026.
The finding
Price-in-button is measured by matching a currency symbol plus digits, or a decimal price plus a period unit (/mo, per year, etc.), in the CTA text. 219 of 1,886 primary CTAs (11.6%) do this.[1] A separate 155 (8.2%) have no price in the button but do have one in the extracted title/subtitle above it.[2]
| Where the price sits | Share of primary CTAs |
|---|---|
| Inside the button | 11.6% (219/1,886) |
| Above the button only | 8.2% (155/1,886) |
| Not in extracted CTA copy | 80.2% (1,512/1,886) |
Real examples of price-in-button: Zeus ('$50.99/year'), iam ('Only $49/year'), Elevate ('Unlock for $3.3 per month').[1]
How to apply it
If your button shows a price, you are in the 11.6% minority — a defensible, transparency-forward choice, but not the norm. The larger group either keeps price in the offer copy above the button (8.2%) or shows no price in the CTA area at all.
The decision hinges on your offer: a trial-led paywall usually wants the button to say 'Start Free Trial' and the price to sit below as the post-trial terms, keeping the tap frictionless. A direct-purchase paywall (no trial) more often benefits from price-in-button transparency. Match the button to the offer type rather than defaulting either way.
Caveats
'Price not visible' (80.2%) means no price in the *extracted CTA-adjacent copy* only — prices on plan cards elsewhere on the screen are not captured by this extraction.[3] Frame the 80.2% as 'no price in the button or its immediate copy', never as 'no price on the paywall'. Role-based cuts use the 1,886 primary rows; 39% unknown-role rows are excluded. Figures are a July 2026 pull.
The numbers
| Stat | Computed from |
|---|---|
| 11.6% (219/1,886) | price_in_cta_share: currency+digits or decimal+period-unit in cta_text |
| 8.2% (155/1,886) | price_above_cta_only_share |
| 80.2% (1,512/1,886) no price in extracted CTA copy | price_above_cta_only_share denominator note |
Sources & citations
- [1] Lazyweb Research analysis of 1,886 primary paywall CTAs (~800 tracked apps), July 2026. Price regex on cta_text; named examples from extracted CTA copy. ↩
- [2] Lazyweb Research analysis of 1,886 primary paywall CTAs (~800 tracked apps), July 2026. Price absent from button but present in extracted surrounding title/subtitle. ↩
- [3] Lazyweb Research analysis of 1,886 primary paywall CTAs (~800 tracked apps), July 2026. 'No price visible' counts only CTA-adjacent extraction, not plan cards elsewhere on screen. ↩
Source: Lazyweb Research — proprietary analysis of real, in-market app screens. Cite as Lazyweb Research, 2026-07-07.