# How does cancellation-flow coverage compare between web and app?

Source: Lazyweb Research
Published: 2026-07-07
Sample size: n=332
Tags: cancellation, web, mobile, saas, retention
HTML: https://www.lazyweb.com/research/web-vs-app-cancellation-screens-coverage
Markdown: https://www.lazyweb.com/research/web-vs-app-cancellation-screens-coverage.md

**Answer.** This research tracks two separate universes: 332 canonical Cancel-Subscription app screens (1,685 screenshots, 81 apps) and 135 labeled in-product web cancellation screens [1][2][3]. All 135 web screens are flagged as real in-product cancel screens, not marketing pages [2]. Report the two universes separately — they are not a single pooled sample.

> 332 canonical app cancel screens vs 135 labeled in-product web cancellation screens, July 2026.

## Two universes, kept separate

| Universe | Screens | Backing |
|---|---|---|
| App (canonical Cancel-Subscription) | 332 | 1,685 screenshots, 81 apps [1][3] |
| Web (in-product cancellation) | 135 | all flagged in-product [2] |

The app corpus is screenshot-backed across 81 apps; the web corpus is 135 labeled in-product cancellation screens, every one flagged `is_in_product=true` [1][2][3].

## Why not pool them

The two are collected and labeled differently, so pooling would produce a false blended rate. The web set is deliberately filtered to **real product cancel screens** (not marketing pages) [2], and the app canonical category is partially polluted with paywall/win-back screenshots, which is why app-side tactic rates use the narrower 48-app genuine-cancel-intent subset [4]. Keep denominators honest by citing each universe on its own.

## How to apply it

When benchmarking a **web** cancel flow, anchor to the 135-screen web universe; for a **mobile app** flow, anchor to the app corpus and its 48-app clean subset for tactic rates [1][2][4]. Do not quote an app-derived save-offer rate as if it applied to web, or vice versa — the samples are separate by design.

## The numbers

| Stat | Computed from |
| --- | --- |
| 332 canonical Cancel-Subscription app screens | cancel_canonical_screens |
| 135 in-product web cancellation screens, all flagged in-product | web_cancellation_screens |
| 1,685 screenshots across 81 apps back the app corpus | cancel_screenshots_and_apps |
| 48-app / 401-screenshot genuine-cancel-intent subset for tactic rates | genuine_cancel_intent_subset |

## Methodology

Universes: 332 canonical app cancel screens (1,685 screenshots, 81 apps) and 135 labeled in-product web cancellation screens, July 2026. Method: report each universe separately with its own denominator. Caveat: the two are not pooled; the app category is partially paywall-polluted, so tactic rates use a 48-app clean subset.

## Sources & citations

- [1] Lazyweb Research analysis of 332 canonical cancel screens (app corpus), July 2026. App-side Cancel-Subscription canonical screen count.
- [2] Lazyweb Research analysis of 135 in-product web cancellation screens, July 2026. All 135 flagged is_in_product=true (real product cancel screens).
- [3] Lazyweb Research analysis of 1,685 screenshots (81 apps), July 2026. Screenshot and app coverage backing the app canonical category.

## Related questions

- [How many steps should I expect in a subscription cancel flow?](https://www.lazyweb.com/research/how-many-steps-in-a-subscription-cancel-flow)
- [What do click-to-cancel flows look like screen by screen in the field?](https://www.lazyweb.com/research/what-do-compliant-click-to-cancel-flows-look-like)
