Theory
Fake urgency and fake "was" prices
Where persuasion becomes a dark pattern: reductions measured from a price nobody paid, countdowns that restart, invented scarcity, and Dana's honest price post.
~9 min read · 9 exercises · 250 points
Before you start
A five-day price
Still on Klasna's growth team: Leo wants a quick “sale” on the maths 8-pack before the exam season, and Dana has drafted a New Year post for her own practice.
The question of this lesson: where does persuasion turn into a dark pattern, and what can a seller honestly say instead?
A reduction needs an honest starting point
A “−10%” is a claim about the past: the price used to be higher. It's honest only if the starting point is a price buyers really paid. The classic trick is to raise a price briefly, then “cut” it back.
The EU closed that door. Since May 2022, an announced price reduction must be measured from the lowest price of the previous 30 days. A short rise just before a sale therefore doesn't count as the reference.
The rule is written for goods. For services such as lessons, in our reading, a made-up reference price is caught by the general ban on misleading prices. So Klasna uses the 30-day test for everything it sells: if the lowest price in the past 30 days is the price you charge now, there is no reduction to announce.
The test works for a one-person practice too. It's a simple question to ask before any “sale”: what was the lowest price anyone paid in the last 30 days?
- Do“The lowest price in the last 30 days was 700, so 684 is 2.29% off.”
- Don't“Raise it to 760 for five days, then announce −10%.”
A brief rise before a sale doesn't count as the reference.
Computing the real reduction
To check an announced reduction, find the reference and do one division:
real reduction = (reference price − new price) ÷ reference price
where the reference is the lowest price of the previous 30 days.
Leo's plan for the maths 8-pack: 700 a lesson for months, 760 for five days, then “−10%” to 684. The 760 lasted only five days, so the lowest price in the 30 days before the cut is 700. Real reduction: (700 − 684) ÷ 700 = 16 ÷ 700 = 2.29%, not 10%.
Announcing “−10%” would mislead. Announcing “−2.29%” would be honest but pointless. The honest move is to set the price you want, 684 if that's the plan, and not call it a sale at all.
The same sum works in reverse when planning a real promotion: decide the reduction you want to announce, apply it to the 30-day lowest price, and check that the new price still covers your floor.
- Do“684 a lesson from Monday” with no “sale” label.
- Don't“
760684, −10%!” after five days at 760.Measured from the 30-day lowest price of 700, it's 2.29%.
Sale announcements in Ukraine
For Klasna's families in Ukraine, the picture as of October 2026 has three parts.
- Misleading price information is banned. A “−20%” from a price nobody paid misleads, whatever the country.
- Guidance on sales. The state consumer service says a sale announcement should give its start and end dates and the reduction against the previous price. So “Spring sale, 1–15 March: 620 instead of 650 a lesson” fits; “−20%, limited time!” doesn't.
- A stricter law is coming. A new consumer-protection law with stricter discount rules has been adopted, but it starts only after martial law ends. Lessons teach the current rules and flag what's coming.
These are dated guardrails, not legal advice. Klasna's practical answer is to run every sale through the same three checks wherever the family lives: a real previous price (the lowest of the past 30 days), real dates, and a reduction measured honestly from that price.
- Do“Spring sale, 1–15 March: 620 instead of 650 a lesson.”
- Don't“−20%! Limited time!”
No dates and no previous price.
False urgency and real deadlines
Urgency and scarcity are information when they're true and pressure when they aren't.
False urgency rushes a decision with claims that aren't true: a countdown that restarts for every visitor while the price stays the same afterwards; “price goes up tomorrow” when no change is planned. In the EU, falsely saying an offer is available only for a very limited time is on the list of practices that are always unfair. False scarcity, “only 3 left” as fixed text when 79 places remain, is judged case by case and can also mislead.
The honest versions:
- a real closing date that doesn't move: “NMT Sprint sales close on 28 February”;
- real scarcity, counted live: the Sprint has 120 places because tutors' spring hours are limited, so “79 of 120 places left”, updated from bookings, tells families something true.
The test is whether the statement would still be true if the buyer checked tomorrow.
- Do“NMT Sprint sales close on 28 February. 79 of 120 places left.”
- Don't“Offer ends in 23:59:59”, restarting for every visitor.
A clock that restarts is false urgency.
Dana's draft: three claims, none true
Dana's January draft: “NEW YEAR SALE! 750 600 UAH a lesson, −20%! Only 1 place left! Ends Sunday!”
Check each claim against the facts:
- “Was 750”: she has charged 600 since she started in September. The lowest price of the past 30 days is 600, the price she charges now, so there is no reduction to announce.
- “Ends Sunday”: after Sunday the price will still be 600. Nothing ends.
- “Only 1 place left”: she has two free evening slots a week from February.
What her lessons are “worth” and a price she might charge one day are not previous prices; neither can stand behind a crossed-out number.
It's tempting to think a small seller is too small for this to matter. But Dana's practice grows through her own channel and word of mouth. Her followers may not check today; some of them are the people who will recommend her, or not, once they find out.
- Do“600 a lesson, the same price as since September.”
- Don't“
750600, −20%!” when 750 was never charged.A crossed-out price must be one actually charged in the past 30 days.
Specific beats loud
Dana worries that a post without a sale sounds boring. The honest alternative isn't a flat post; it's a specific one. Specific details do the work that fake urgency pretends to do:
- who it's for: adults who need English for work, lessons in the evenings;
- what a lesson includes;
- the full price: 600 a lesson. As a single-tax FOP without VAT, Dana adds nothing on top, so she can say the price is final;
- the real free slots: two evening slots a week from February. That's true urgency: when they're gone, they're gone;
- how to book: a message to her channel.
The post goes only to her own social-media account and messenger channel. Klasna families are not her audience, and that line stays where it is.
For a one-person practice that grows by word of mouth, trust is the main asset. A follower who later learns that the “−20%” was invented is not the follower who recommends her to a colleague.
- Do“Two evening slots a week from February. 600 UAH a lesson, nothing added on top. Write to me to book.”
- Don't“NEW YEAR SALE! −20%! Only 1 place left!”
Loud claims that aren't true cost a solo seller the trust her referrals depend on.
A future price is not a “was” price
Suppose Dana really did plan to raise her price to 750 after Sunday. Would “750 600, −20%, ends Sunday” become honest?
No. A crossed-out price claims the price used to be higher: it must be a previous price, the lowest charged in the past 30 days, not a future one. Using next week's price as the reference reverses time; buyers read it as a past price they're being spared.
A real rise does change one thing: the deadline becomes true. So the honest post says exactly that, in plain words:
“600 until Sunday, 750 from Monday.”
No crossed-out number, no “−20%”, just two real prices and a real date. It's still urgent, and it's true.
The same applies at Klasna. When the price list changes in September, telling families early that the new price starts on a set date is honest. Showing the new price crossed out next to the old one, as if the old one were a discount, isn't.
- Do“600 until Sunday, 750 from Monday.”
- Don't“
750600, −20%” because the price rises next week.A crossed-out price must be a past price, not a future one.
Dark patterns and their honest twins
A dark pattern is a design that makes the buyer do something they didn't choose. Nazar's collection from other sites:
- A pre-ticked paid extra (“add 3 months of Club” already ticked). In the EU, consent to a paid extra can't come from a pre-ticked box. Twin: an empty box with the price next to it.
- Confirm-shaming: a “No thanks, I don't care about my child's exam” button. Twin: a neutral “No thanks”.
- “Free” that isn't: a trial that quietly starts charging. In the EU, calling something free when the buyer must pay is always unfair. Twin: a trial that states the price and the date charging starts, with a reminder.
- A restarting countdown and a “was” price nobody paid. Twins: a real closing date; a reduction from the 30-day lowest price, or no “was” at all.
How it fits together: urgency, scarcity and reductions must be true when checked; every dark pattern has an honest twin. Next: the module's case, Nazar's exam-season page for NMT Sprint.
- Do“☐ Add 3 months of Club for 1,350 UAH” (unticked) and a plain “No thanks”.
- Don't“☑ Add 3 months of Club” ticked in advance.
In the EU, a pre-ticked box isn't consent to a paid extra.
Ready to practise?
Answer the lesson's exercises and earn 250 points the first time you finish it.
Start the exercises