# Should the price go inside the paywall button or above it?

Source: Lazyweb Research
Published: 2026-07-07
Sample size: n=1886
Tags: paywall, pricing, monetization, checkout, ux-patterns, design
HTML: https://www.lazyweb.com/research/price-in-cta-vs-above-button-paywall
Markdown: https://www.lazyweb.com/research/price-in-cta-vs-above-button-paywall.md

**Answer.** Most apps keep price out of the button: only 11.6% of 1,886 primary CTAs embed a price, while a further 8.2% show the price in the copy above the button, and roughly 80% show no price in the extracted CTA-adjacent copy at all [1][2][3]. The dominant pattern is a soft CTA verb with the price living in the surrounding line — not on the button itself.

> Only 11.6% of 1,886 primary paywall CTAs embed a price; 8.2% show it just above the button — July 2026.

## The finding: the button rarely carries the price

| Where the price sits | Primary CTAs | Share |
|---|---|---|
| Inside the button text | 219 | 11.6% [1] |
| Above the button (adjacent copy) | 155 | 8.2% [2] |
| No price in extracted CTA-adjacent copy | 1,512 | 80.2% [3] |

So among CTAs where a price is visible near the button, price-above-the-button (8.2%) and price-in-button (11.6%) are the same order of magnitude, but both are minorities — the norm is a button with no price on it and often no price in the immediately adjacent copy either [1][2][3].

## What each pattern looks like

**Price in the button** is a direct, transactional style — the number is the commitment:
- Zeus — "$50.99/year" [4]
- iam — "Only $49/year" [4]
- Elevate — "Unlock for $3.3 per month" [4]

**Price above the button** pairs a soft verb with the offer detail in the line above — e.g. PictureThis's "Continue" under "Try 7 days free, then $39.99/year" [5]. This is the more common shape overall given that 'Continue' (21.2%) and 'Start' (16.9%) lead the primary-CTA verbs [6].

## How to apply this

Default to keeping the price out of the button and placing it in a clear line above — that matches the majority pattern and pairs naturally with the dominant soft verbs ('Continue', 'Start') [3][6]. Put the price *in* the button when you want a maximally transparent, transactional feel (common in price-forward categories like Graphics & Design) — it's a legitimate ~12% pattern, not a mistake [1]. Whichever you choose, if there's a trial, the price should still appear somewhere adjacent as a trial-then-price line so the renewal terms are clear. Treat in-button vs above-button as an A/B test, since both are established.

## Caveats

'No price visible' (80.2%) means no price in the *extracted CTA-adjacent copy* only — prices on plan cards or elsewhere on the screen aren't captured, so this is 'price outside the button/CTA area,' not 'no price on the paywall' [3][7]. Price detection uses a currency-symbol/decimal + period-unit regex; primary-role CTAs only (39% unknown-role excluded) [8]. Whole-percent rounding applies.

## The numbers

| Stat | Computed from |
| --- | --- |
| Price inside the button: 219/1,886 (11.6%) | price_in_cta_share: 219/1886 = 11.6% |
| Price above the button only: 155/1,886 (8.2%) | price_above_cta_only_share: 155/1886 = 8.2% |
| No price in adjacent copy: 1,512/1,886 (80.2%) | price_above_cta_only_share note: 1,512 = 80.2% |
| Zeus, iam, Elevate price-in-button examples | qualitative price in CTA entries |
| PictureThis 'Continue' + 'Try 7 days free, then $39.99/year' | qualitative picturethis 7-day entry |
| Continue 21.2%, Start 16.9% lead CTA verbs | cta_verb_families: continue 399 (21.2%), start 318 (16.9%) |
| 'No price visible' = adjacent copy only, not whole screen | smallSampleWarnings: price not visible framing |
| 39% CTA rows role='unknown', excluded | universe note |

## Methodology

Universe: 1,886 primary CTAs across ~800 tracked apps, July 2026. Price detected via regex over CTA button text and adjacent extracted title/subtitle only; 'no price' means no price in that adjacent copy, not the whole screen.

## Sources & citations

- [1] Lazyweb Research analysis of 1,886 primary paywall CTAs (~800 tracked apps), July 2026. Price-in-button via currency/decimal + period-unit regex on cta_text; 219 rows.
- [2] Lazyweb Research analysis of 1,886 primary paywall CTAs (~800 tracked apps), July 2026. Price-above-button = no price in button but price in adjacent title/subtitle; 155 rows. 'No price' (1,512) means adjacent copy only.

## Related questions

- [Which app categories lead hardest with free trials on their paywalls?](https://www.lazyweb.com/research/trial-led-paywall-copy-by-category-comparison)
- [How do apps disclose the price after a free trial on the paywall?](https://www.lazyweb.com/research/trial-then-price-disclosure-paywall-pattern)
