Botagoz runs a salon in Almaty and wants to switch off her 12,000 ₸ a month booking-service subscription. She presses the large "Continue" button and closes the page. A month later another charge arrives: the button kept the subscription, even though Botagoz meant to finish cancelling.
We will work through the case on the salon booking service. The price comes from that example; the other numbers are illustrative. The marketer's job here starts with giving the customer a clear choice back and checking the charges. And if cancellations fell while complaints rose, that does not go on the list of retention wins.
Where persuasion becomes deception
You can talk about the service's benefits, offer a plan that fits better or explain a discount in a way that leaves the person knowing what they are choosing. A dark pattern gets the action the business wants another way: through a hidden condition, an extra obstacle or a button that is easy to misread.
The Deceptive Design catalogue describes obstructed cancellation, hidden subscriptions and costs, confusing wording and visually hidden information. A category helps you name the problem. To fix it, walk the customer's path yourself and find the spot where their intent and what the system does part ways.
Botagoz's intent reads like this: "Stop future charges and keep using the service until the paid period ends." Before she presses anything, she should understand the consequences; afterwards, she should see the saved state. A confirmation before irreversible deletion or a second access check can be needed to protect the account. But they should have no more steps than the protection needs.
Auto-renewal cancellation
Choice before the request
Access through 30 September; alternative: Keep the subscription
- Result confirmation
- Only after the change is saved
Saved state
- Auto-renewal
Off
- Access
Through 30 September
If the request fails, the screen explains the failure and preserves a way to retry.
What the customer is cancelling
In our example, a customer can switch off the next renewal and keep using the service until the paid period ends. Botagoz's subscription is paid through 30 September. So the screen shows the current plan, the access period and a "Turn off auto-renewal" button. The second button, "Keep the subscription", leaves everything as it is.
That is the condition in our example. If the system actually cuts access immediately, the copy and the button must say exactly that, and before confirmation. Do not promise access to the end of the period if the billing system does not keep it.
It helps to pull the operations apart:
| Operation | What to explain before the choice |
|---|---|
| Turn off the next renewal | When charges and access end |
| Pause the subscription | What stops, when it resumes and on which terms |
| Change plan | New price, period and when the change takes effect |
| Delete the account | What happens to data, access and active payments |
Deleting the account does not replace managing payments. For your product, find out what happens to the subscription in each of these cases and make that link visible to the customer.
When cancellation can be confirmed
The button only sends a request. "Auto-renewal is off; access continues through 30 September" appears after the system has saved the change. If the request ends in an error, the screen says so and lets the person try again.
A dropped connection is harder. The request may have gone through while the response never reached the browser. Before retrying or reporting the outcome, the application finds out what was actually saved. Showing success from a single click is dangerous, but so is sending the person round in circles without that check.
When Botagoz signs in again, she sees the same switched-off renewal. A cancellation email adds to that record and does not replace it. Support must be able to see which operation was requested and what the system saved.
For acceptance, set up a test subscription. Walk through a normal cancellation, a double click, a lost response and a fresh sign-in. In every case, the billing record and the on-screen text must agree.
A pause offer can be declined
Another salon is closing for refurbishment, and a pause may suit it. Then the service explains what happens to charges, the schedule and staff access, when everything resumes and what it will cost. The customer picks the pause themselves, with its own button.
If the person has already chosen to cancel, declining the pause takes them straight back to finishing the cancellation. A compulsory call with a manager or a survey you cannot skip can turn feedback collection into an obstacle.
"No, I want to lose customers" judges the person and says nothing about the operation. A neutral "Turn off auto-renewal" says what will happen to the subscription. Ask why they are leaving once the action is saved: by then the answer no longer affects the cancellation.
If the cancel button was hidden and cancellations fell while complaints rose, that is not retention. Some of the "retained" simply could not find the way out, and that is what the complaints are about. Bring back a clear cancellation and keep customers with product value, while leaving is possible at any moment. Removing complaints from the report hides the consequences of the change.
Terms are visible at signup too
The salon service has a 14-day free trial, after which a month costs 12,000 ₸. If the subscription renews automatically, the screen names when charges start, the amount, the frequency and how to switch it off, all before the customer agrees. A button that gives the person a free resource must not also sign them up for a paid service.
Show mandatory parts of the price before payment is confirmed. An additional paid service is something the customer adds only themselves. A default interface language and a paid package added without asking get judged differently: the second changes the customer's obligations.
A limited offer needs a real basis. Show a course intake deadline or stock levels as they actually are. A timer that restarts on every visit and pretends to be a shared promotion deadline misleads the customer.
Forty unfinished cancellations and 480,000 ₸
The service's export shows a hundred salons starting cancellation. Sixty got a confirmation, twenty-five hit an error, and another fifteen closed the page without finishing. Someone on the team proposes counting the remaining forty as retained.
| Attempt outcome | Salons | What is known |
|---|---|---|
| Auto-renewal switched off | 60 | The requested action was completed |
| Cancellation error | 25 | The action could not be completed |
| Page closed without completion | 15 | Reason and subsequent intention are unknown |
| Total who started | 100 | Everyone stays in the analysis of this path |
If renewal stays on for forty salons, their next charges come to 40 × 12,000 = 480,000 ₸. Of that, 25 × 12,000 = 300,000 ₸ falls on salons that hit the error, and 15 × 12,000 = 180,000 ₸ on those who left the page for an unknown reason. This is a sum of possible charges. It shows neither profit nor the value the service gave the salons.
The team first fixes the known error, restores subscription states from the log and reviews disputed charges that have already gone through. A salon that was prevented from leaving did not want to stay; it simply was not let out. And the fifteen who closed the page should not be filed as happy customers automatically either.
Report errors, repeated attempts, support requests and later disputed charges next to completed cancellations. If the same number of people start cancelling, while errors fall and completed cancellations rise, the fix worked. A fall in cancellations alone is not enough to call the change a benefit.
Test understanding and the system
Ask a colleague who was not involved in development to cancel a test subscription. Afterwards, have them explain in their own words whether another charge will come, until when the service works and where to check the result later. Do not tell them "this button cancels", or the test shows nothing.
Then compare their account with the system record. If they are sure they cancelled but renewal is still on, the problem is still there. If the record is correct but the screen threatens immediate loss of access contrary to the terms, it is the copy that needs fixing.
On a phone, the terms read in full, with no hidden continuation, and the buttons are reachable. Keyboard users can see where focus is and complete the action. After an error, the path to retry does not disappear. Every signup and cancellation method the team supports goes through this acceptance.
Fix known deception and technical faults right away, without waiting for proof that they cost profit. What you can test against each other is different clear presentations, as long as each one carries out the chosen action and discloses the terms.
Exercise: the label changed, the action did not
In your project, a button was named "Cancel subscription". After pressing it, eight customers ended up in a one-month pause, with a 12,000 ₸ charge scheduled for each of them afterwards. They did not choose a pause. Write the acceptance criteria for the fix.
0 of 6 done
The label changed, but the path stayed the same: instead of a cancellation, the eight customers still have a future renewal. The eight scheduled charges add up to 8 × 12,000 = 96,000 ₸, and the customers asked for none of them. The team carries out the cancellation they asked for. A pause can still be offered, but as a choice of its own, with explicit agreement to the terms on which it resumes.
Acceptance is done when the chosen operation, the system record and a confirmation the customer understands all agree. A nice-looking screen without a changed subscription leaves the problem where it was.
Video: how design shapes choice
Sally Woellner's talk at TEDxSydney. Afterwards, walk your own cancellation path: what the person expects, what the system does and what confirms the result.