Lazyweb

Do Apps Add or Remove the Price From the Paywall Button When They Rewrite It?

Among 304 detected paywall buttons whose copy was actually rewritten, 20 added a price marker to the button that wasn't there before, and 18 removed one — a near-even split (Lazyweb Research).[1][2] Another 23 kept price on both sides and 243 had no price either way, so most rewrites never touch button-level pricing at all.[2] These are detected UI diffs with inferred rationale, not measured A/B lift.

Of 304 rewritten paywall buttons, 20 added a price to the button and 18 removed one — a near-even split, with 243 never showing price either way (Lazyweb Research, July 2026).

By Ali Abouelatta · Lazyweb Research · n=304 · Published 2026-07-07 · Updated July 2026

paywallpricingmonetizationexperimentsux-patternsmobile
Glow paywall screen — real in-market example tracked by Lazyweb Research
Night Sky paywall screen — real in-market example tracked by Lazyweb Research
Ai Arta Paywall / Subscription screen — real in-market example tracked by Lazyweb Research
Amazon Music paywall screen — real in-market example tracked by Lazyweb Research
Real in-market screens from Glow, Night Sky, Ai Arta, Amazon Music — tracked by Lazyweb Research
How 630 paywalls combine offer framing × price-in-button
Trial-led · no price108 (17%)Trial-led + price20 (3%)Direct · no price443 (70%)Direct + price59 (9%)No price in buttonPrice in buttonDirect (no trial)Trial-led

Most paywalls (70%) are direct with no price in the button; putting a price in the button is the exception in every quadrant. Source: Lazyweb Research, 630 paywalls.

How 630 paywalls combine offer framing × price-in-button
QuadrantContents
Trial-led / No price in buttonTrial-led · no price — 108 (17%)
Trial-led / Price in buttonTrial-led + price — 20 (3%)
Direct (no trial) / No price in buttonDirect · no price — 443 (70%)
Direct (no trial) / Price in buttonDirect + price — 59 (9%)
Rewrites (of 304) — Where price sits on the button
Price added (absent → pre…Price added (absent → present): 2020Price removed (present → …Price removed (present → absent): 1818Price on both before and …Price on both before and after: 2323No price either sideNo price either side: 243243
Rewrites (of 304) — Where price sits on the button
ItemRewrites (of 304)
Price added (absent → present)20
Price removed (present → absent)18
Price on both before and after23
No price either side243

The finding

Looking only at the 304 detected cases where the paywall button copy genuinely changed, price-on-button moves are roughly balanced: 20 rewrites added a price marker ($, currency, or /mo·/yr) that was absent before (14 companies), and 18 removed one that was present before (13 companies).[1][2] There is no strong directional consensus — apps go both ways in similar numbers.

Where price sits on the button

Button price stateRewrites (of 304)
Price added (absent → present)20
Price removed (present → absent)18
Price on both before and after23
No price either side243

The headline is that 243 of 304 rewritten buttons (80%) never carry an explicit price at all — pricing lives elsewhere on the paywall, and the button itself usually stays action-oriented ('Continue', 'Try free').[2]

How to apply it

If you are debating whether to put the price on the button, the corpus says there is no house rule to copy — adds (20) and removes (18) are near-even.[1][2] The more common pattern by far is to keep price off the button entirely (80% of rewrites) and let a benefit or trial verb carry the CTA.[2] Test the price-on-button choice as a genuine open question, not a settled best practice.

Caveats

The 304 base is rewritten-button-copy rows; some contain descriptive annotations (e.g. "Large blue button: 'CONTINUE'") rather than pure copy, so a fraction are annotation noise rather than real changes.[3] Price detection is a regex for currency and per-period markers, so unusual formats may be missed. Every row is a detected UI diff with inferred rationale, never a measured conversion result.[3]

The numbers

StatComputed from
304 rewritten button-copy rows (base)cta_text_before_after_differ
Price added 20 (14 cos), removed 18 (13 cos), both 23, neither 243price_on_button_added
Some of the 304 rows are annotation noise, not real copy changessmallSampleWarnings.data_quality
Methodology. Universe: 304 detected paywall buttons whose copy actually changed, drawn from 795 detected before/after changes across 146 companies in Lazyweb's ~800-tracked-app mobile corpus, July 2026. Price-on-button classified by regex; some rows are annotation noise. Detected UI diffs with inferred rationale, never measured A/B lift.

Sources & citations

  1. [1] Lazyweb Research analysis of 304 rewritten paywall button texts (within 795 detected changes, 146 companies), July 2026. Base = rows where cta_text_before and cta_text_after both present and differ. Price markers detected by regex; add=20, remove=18, both=23, neither=243.
  2. [2] Lazyweb Research analysis of 795 detected paywall CTA changes (146 companies), July 2026. Detected UI diffs with inferred rationale, not measured A/B outcomes. Some rewritten-text rows contain annotation noise.

Source: Lazyweb Research — proprietary analysis of real, in-market app screens. Cite as Lazyweb Research, 2026-07-07.

Related questions

More in How apps rewrite paywall CTAs (before/after experiment pages) →

Explore the underlying screens, flows, and A/B tests inside Lazyweb. More research