# How is the cancel button styled versus the keep/subscribe path?

Source: Lazyweb Research
Published: 2026-07-07
Sample size: n=78
Tags: cancellation, retention, design, ux-patterns, experiments
HTML: https://www.lazyweb.com/research/how-is-the-cancel-button-styled-in-cancel-flows
Markdown: https://www.lazyweb.com/research/how-is-the-cancel-button-styled-in-cancel-flows.md

**Answer.** Across 78 cancel/keep/pause/resubscribe CTA buttons, 40 are styled as dismiss and 18 as secondary, versus only 7 primary [1]. So the cancel action is heavily de-emphasized relative to the primary keep/subscribe path. If you are optimizing for compliance rather than dark patterns, that skew is the thing to check first.

> Of 78 cancel/keep CTAs, 40 dismiss and 18 secondary vs 7 primary styling, July 2026.

## The role split

| CTA role | Buttons | Distinct apps |
|---|---|---|
| Dismiss | 40 | 18 [1] |
| Secondary | 18 | 14 [1] |
| Unknown | 13 | — [1] |
| Primary | 7 | 6 [1] |

Cancel and retention actions skew heavily toward dismiss and secondary styling; only 7 of 78 buttons in this set are styled primary [1].

## What it means

The visual hierarchy consistently pushes users toward the **keep/subscribe** path and mutes the cancel action into dismiss-weight styling [1]. This is the mechanism regulators scrutinize under click-to-cancel: if the cancel affordance is styled as an afterthought, the flow reads as obstructive even when a cancel option technically exists.

## How to apply it

Audit your cancel screen's button hierarchy against this split [1]. A compliant flow keeps the actual cancel affordance clearly reachable rather than dismiss-weighted. The field's own experiments trend toward easing progression — DoorDash made a reason button more prominent to reduce abandonment on the cancel path, a completion-friendly direction [2]. Style the cancel action so a user can find and complete it without hunting.

## The numbers

| Stat | Computed from |
| --- | --- |
| 78 cancel/keep CTAs: 40 dismiss (18 apps), 18 secondary (14 apps), 13 unknown, 7 primary (6 apps) | cancel_flow_cta_roles |
| DoorDash A/B made 'Select Reason' button solid to reduce abandonment | qualitative / doordash experiment |

## Methodology

Universe: 78 cancel/keep/pause/resubscribe CTA buttons in the paywall universe, July 2026. Method: count by cta_role and distinct apps. Caveat: 13 buttons have unknown role and role labels are derived from styling, not intent.

## Sources & citations

- [1] Lazyweb Research analysis of 78 cancel/keep/pause/resubscribe CTA buttons (paywall universe), July 2026. cta_role split for cancel-family buttons across distinct apps.
- [2] Lazyweb Research analysis of DoorDash cancel-flow experiment, July 2026. A/B changing reason button from grayed-out to solid to ease progression.

## Related questions

- [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)
- [How common is an 'are you sure' confirmation step when cancelling?](https://www.lazyweb.com/research/how-common-is-a-confirmation-step-when-cancelling)
