Where the line runs
Every interface proposes something and nudges towards something — that is the normal work of a
product. A pattern becomes dark when the decision is made not because the user chose it, but because
the interface distorted the picture or made the alternative inconvenient.
The practical test is three questions asked of any element:
| Question | Honest technique | Dark pattern |
|---|---|---|
| Is it true? | The numbers on screen match the system data | The numbers are generated for effect |
| Is the refusal visible? | The alternative is on screen, readable, neutrally worded | The refusal is hidden, greyed out or worded to demean |
| Is the action reversible? | Undoing is as easy as doing | One click to subscribe, support required to cancel |
The key point: the strength of the nudge is irrelevant here. The message only 2 left can genuinely
accelerate a decision — and it is perfectly honest when there really are two units in the warehouse.
The same message with 400 units in stock is deception, although it looks identical.
A catalogue of patterns and honest alternatives
Almost every dark pattern has a version that delivers the same business effect without deceit. The
difference nearly always comes down to replacing invented data with real data.
| Pattern | The technique | The honest alternative with the same effect |
|---|---|---|
| False scarcity | Only 3 left, unconnected to actual stock | Show the real stock figure, and only when it is genuinely low; otherwise do not show it at all |
| Fake timer | A countdown that restarts on reload or expires with no consequence | A timer on a real promotion with a fixed end date, identical for everyone |
| Confirmshaming | A decline button worded as No, I do not want to save money | A neutral pair of buttons: Get the discount and Not now |
| Hidden fees | A service charge, packaging or insurance surfacing at the last step | The full final price visible in the cart; extra services as an explicit priced choice |
| Roach motel | The subscription starts in one click, cancelling requires a call to support | Cancellation in the same place as sign-up, in the same number of steps |
| Pre-ticked checkboxes | Consent boxes for marketing and data processing already ticked | Empty checkboxes plus clear wording on exactly what consent covers |
| Misdirection in buttons | The target button is bright and large, the refusal is grey 11px text | Different visual weight is allowed, but the refusal stays readable and clickable |
| Fake counters | 17 people are viewing this now, with a random number | Real view and purchase counters for a period, from analytics data |
| False personalization | Picked especially for you above an ordinary bestsellers block | Genuine personal recommendations, or the neutral heading Popular in this category |
| Sneak into basket | A product or service added to the order without the user acting | The upsell is offered as an explicit block with one-click refusal |
The most common field for violations is the mechanic of
urgency and scarcity and social proof
widgets. Both work precisely because the user believes the data is real; as soon as the numbers are
invented, the mechanic turns into a dark pattern — and, importantly, loses reliability over the long
run, because users learn to recognise a permanently ticking timer fairly quickly.
A simple rule for the team: if an element shows a number, that number must come from the data rather
than from a generator. Real stock, real views over 24 hours, real orders over a week. This is not
only more ethical but also more robust in operation: real data does not have to be maintained in a
plausible-looking state.
Why this is not only about ethics
The delayed damage is invisible in a short test. That is the main methodological trap. A dark
pattern almost always wins an A/B test, because the test typically runs one
to two weeks and measures order conversion. Pressure really does raise the share of sessions with an
order. The costs appear beyond the observation window:
| What rises | How long it usually takes to show |
|---|---|
| Returns and refused deliveries | 2–6 weeks, following the delivery and return cycle |
| Support contacts and payment disputes | 1–4 weeks |
| Unsubscribes from communications | From the next send onwards |
| Negative reviews and mentions | Weeks and months, cumulatively |
| A falling share of repeat purchases and retention | One or two purchase cycles — often a quarter or more |
The practical conclusion: a decision to deploy a pressure mechanic cannot be made on a single
conversion metric. The minimum correct scheme is to count post-order metrics in the test (returns,
support contacts) alongside conversion, and for mechanics that affect trust, to observe a dedicated
group for longer than the standard test window.
Regulatory risk. Requirements for explicit consent to personal data processing and marketing
messages, for transparency of the final price and for ease of unsubscribing are enshrined in law in
many jurisdictions and keep tightening. A pre-ticked consent checkbox in many cases simply does not
count as consent — meaning a base collected that way is legally unusable. Consent management
platforms (CMP) exist precisely because interface tidiness is not enough here.
Reputational risk. Dark patterns are highly visible from outside: a screenshot of an eternal
timer or a confirmshaming button travels across social media faster than any advertising campaign.
The damage is asymmetric to the gain — a percentage point of conversion against a public takedown in
front of a wide audience.
Audit checklist
Walk the shopper path end to end — from the homepage to the post-order email — and check:
- Every number is real. Warehouse stock, the promotion timer, the watching now counter, the
order count for a period — each comes from system data. A one-second check on the timer: reload
the page and open it in another browser; the time must match. - The refusal is visible and neutral. Every popup and banner — including
exit windows with a promo code — has a readable close button, and the
wording of the refusal carries no judgement of the user. - Consent checkboxes are empty by default, the text beside them explains exactly what consent
covers, and it separates different purposes. - The final price does not change at the last step. The checkout total matches the cart total;
all fees and services are shown before payment details are entered. - Cancellation is symmetric with sign-up. Subscriptions, auto-renewal and registration are
cancelled in the same interface and in a comparable number of steps. - Nothing adds itself to the order. Insurance, packaging, paid delivery, an extended warranty —
by explicit choice only. - Display frequency is capped. The same window does not appear in every session; a cooldown
applies on repeat visits.
Common mistakes when deploying pressure mechanics:
| Mistake | What to do instead |
|---|---|
| Switch the timer on for everyone, permanently | Tie it to a real promotion with an end date |
| Show a stock figure on every product card | Show it only when stock is genuinely low |
| Judge the effect on one week of conversion | Add post-order metrics and observe beyond the test window |
| Inflate the view counter for plausibility | Show real views, and hide the block when the numbers are small |
| Treat competitors do it too as an argument | Judge by the three questions in the first section, not by the market |