Roach motel

What is a roach motel dark pattern?

A roach motel is a flow that’s easy to join but deliberately hard to leave - one click to subscribe, a hidden maze to cancel. The asymmetry is the trick: friction only ever runs one way.

Also known as: hard to cancel, easy in hard out

Prefer to watch? Watch the recap 0:34

The demo

Join in one click - then try to cancel. Watch the step counter, and switch modes to compare a roach motel with a flow where leaving is as easy as joining.

Steps to join: 0 · Steps to cancel: 0

Start by joining - it only takes one click.

What this demo shows (text version)

A subscription with a single "Subscribe" button that joins you in one step. Once subscribed, a "Cancel subscription" option begins the cancellation flow. In roach-motel mode that flow is a gauntlet: a "are you sure" warning, a guilt-worded choice, a retention discount offer, and a final confirmation - several steps, each counted.

In symmetric mode, cancelling takes one click, the same as joining. A tally compares the number of steps to join with the number to cancel. The lesson is the asymmetry: a roach motel makes entry trivial and exit deliberately laborious, taxing people for trying to leave.

When a flow is one click to get into and a buried maze to get out of, the friction only ever runs one way - and that asymmetry is the whole trick. Make leaving as easy as joining; if cancelling needs a gauntlet of warnings and offers, the product isn’t holding people, the design is.

The tell is always the asymmetry. If joining is one click and leaving needs a phone call, a postal address or a five-screen gauntlet, the friction was designed in. Regulators have noticed: the broad direction of consumer-protection law - from general unfair-practices rules to EU and UK consumer law - is that cancelling should be as easy as signing up, precisely because this pattern is so common. The principle outlasts any single rule.

My test: put the sign-up flow and the cancel flow side by side and count the steps. If they don't roughly match, you are not protecting revenue, you are taxing exit - and the people worst hit are the ones least able to fight through it. Make leaving easy and let the product be the reason people stay.