Scarcity, urgency and loss aversion: the psychology of now or never

TL;DR

Difficulty: Intermediate

  • Scarcity and urgency work: true stock counts and real deadlines can lift conversion and help people stop putting off a good decision.
  • Invented limits backfire. Under section 55 of the Consumer Protection Act 2007 a false limited time claim is prohibited outright, and breaking the ban is a criminal offence.
  • The endowment and IKEA effects are real but variable, and most of the evidence in your own data is correlation, so randomise before you believe it.
  • Judge every test on returns, complaints and retention as well as conversion.

Rooms left, countdown clocks and free trials all push for a decision now. This article explains the psychology behind scarcity, urgency, the fear of missing out, the endowment effect and the IKEA effect, shows where Irish law draws the line, and measures each one on an invented business in Kilkenny, Cork, Galway or Limerick, with Python you can run.

Now or never is a design choice

Hotel booking sites tell you how many other people are looking at the same hotel and how many rooms are left. Online shops tell you to order within the next three hours for delivery tomorrow. A free trial feels much harder to cancel on day 14 than it felt to start on day one. None of this is an accident. It is behavioural psychology, applied to get a decision made now.

Used honestly, these techniques help people stop putting off a decision that is good for them. Used to deceive, they erode trust, and in Ireland some of them are now prohibited outright. This article takes each effect in turn (scarcity, urgency, the fear of missing out, the endowment effect and the IKEA effect), says what the research found, where it helps, where it backfires, and how to measure it properly. Every number in the worked examples is made up so I can show each step.

Scarcity makes things look more valuable

When something is scarce, people want it more. Robert Cialdini lists scarcity among the principles of persuasion in his work on influence ("people want more of those things they can have less of"). His list now has seven principles, after he added unity, not the six it is often quoted with.1

The everyday versions are familiar: a limited edition, "only three left in stock", invitation only access, membership that closes. They all pull on the same few mechanisms.

Three reasons scarcity works

Reactance. When a freedom to choose is threatened, people feel a pull to restore it. Psychologists have called this reactance since Jack Brehm proposed the theory in 1966.2 Something becoming unavailable is exactly such a threat, so the option you are about to lose looks more attractive.

An inference about other people. If something is running out, other people must have wanted it. Scarcity becomes an indirect signal of quality.

Loss aversion. Scarcity frames the choice as a loss. Not buying now means losing the chance. Losses weigh roughly twice as much as gains of the same size: a 2024 meta analysis of 607 estimates put the mean loss aversion coefficient at about 1.96.3 The pricing psychology article goes into how solid that figure is.

Britain's Competition and Markets Authority (CMA), the UK regulator, summarises the research the same way: there is considerable evidence that consumers react to scarcity, and numerous studies find effects of scarcity claims on click through rates, purchases and perceived value.4

Real scarcity and manufactured scarcity

This is where it matters what is true.

Real scarcity is an honest statement about a real limit. The hotel really has two rooms left. The run really is 500 pieces. The early booking price really ends on Friday.

Manufactured scarcity is a limit invented to pressure people. The "limited edition" that keeps being restocked. The "only two left" that has said "only two left" for six months.

Manufactured scarcity is not rare. A crawl of about 11,000 shopping websites found 632 low stock messages, and 17 sites whose stock counts were deceptive: 16 counted down on a fixed schedule and one generated a random number each time the page loaded.5 Some of them used ready made plugins to do it.

A message can be literally true and still mislead. The CMA's guidance on the British rules gives the example of a pop up saying "Be quick, we've sold 10 in the last 5 minutes" when that is true, but stock levels are high and there is no need to hurry.6 Irish law reaches the same place. A commercial practice is misleading if it is likely to deceive the average consumer about a product's availability and to change their decision, and where it works through information, it is no defence that the information is factually correct.7 The overall impression is false, so the message can be a misleading commercial practice.

The hotel booking stack

Travel sites are where the stacking of these signals became a regulatory case. A single listing might show rooms left, how many people are looking, how often it was booked today and that it is "in high demand". In 2019, after an investigation by the British CMA, Expedia, Booking.com, Agoda, Hotels.com, ebookers and trivago agreed to stop giving a false impression of a hotel's availability or popularity. For example, when saying that other people are looking at the same hotel, the sites agreed to make clear those people may be searching for different dates.8

The CMA's later discussion paper explains what worried it: claims about other people viewing that included people looking at different dates or room types, vague wording such as "right now", and room counts based on incomplete information.4 Compound pressure works on the conversion rate. Whether it builds trust is another question.

When scarcity helps and when it backfires

It helps when the limit is real and the reader benefits from knowing: handmade goods, small production runs, venue capacity, travel dates, seasonal products, and launch prices that genuinely end.

It backfires on products that are obviously available elsewhere, because claiming scarcity on something abundant makes you look dishonest. It backfires with repeat customers, who notice that the last chance email arrives every week. And it backfires with careful buyers, in healthcare, finance, education and business to business sales, who read pressure as a reason to look elsewhere.

Worked example: a true stock count at a Kilkenny pottery

Canal Walk Pottery (canalwalkpottery.example) is an invented Kilkenny shop that fires its mugs in batches of 40. It tests showing the true count left from the current firing ("4 left from this firing") against no stock message. Each version gets 5,000 sessions.

The control gets 160 orders, a conversion rate of 3.2%. The variant gets 205, a rate of 4.1%. The relative lift is the percentage change from control to variant:

lift=pB−pApA\text{lift} = \frac{p_B - p_A}{p_A}

Here pAp_A is the control's conversion rate and pBp_B the variant's, each the number of orders divided by the number of sessions. Foundations: percentages explains percentage change, and Foundations: ratios and rates the rates themselves.

lift=0.041−0.0320.032=0.281\text{lift} = \frac{0.041 - 0.032}{0.032} = 0.281

So the variant converts 28.1% better, 0.90.9 percentage points in absolute terms. Is that more than noise? The two proportion z test answers that:

z=pB−pAp(1−p)(1nA+1nB)z = \frac{p_B - p_A}{\sqrt{p(1-p)\left(\frac{1}{n_A} + \frac{1}{n_B}\right)}}

Here pp is the pooled conversion rate of both groups together, and nAn_A and nBn_B are the sessions in each group. The test is explained step by step in Foundations: hypothesis tests.

The pooled rate is 365/10,000=0.0365365 / 10{,}000 = 0.0365. The standard error is 0.0365×0.9635×(1/5,000+1/5,000)=0.00375\sqrt{0.0365 \times 0.9635 \times (1/5{,}000 + 1/5{,}000)} = 0.00375. So:

z=0.0090.00375=2.40z = \frac{0.009}{0.00375} = 2.40

A zz of 2.402.40 gives a two sided p value of about 0.0160.016, below the usual 5% threshold. The lift is very likely real.

Now the part most tests skip. Pressure can produce purchases people regret. Suppose, as an assumption of this example, that 8% of control orders and 11% of variant orders come back. The kept orders are 160×0.92=147.2160 \times 0.92 = 147.2 and 205×0.89=182.45205 \times 0.89 = 182.45. The net lift is 182.45/147.2−1=0.239182.45 / 147.2 - 1 = 0.239, so 23.9%, not 28.1%. Still a win here, because the count was true and useful. But always measure what happens after the click.

import numpy as np
from statsmodels.stats.proportion import proportions_ztest

# Canal Walk Pottery, invented numbers: variant first, control second
orders = np.array([205, 160])
sessions = np.array([5000, 5000])
return_rate = np.array([0.11, 0.08])  # an assumption of the example

rates = orders / sessions
z, p = proportions_ztest(orders, sessions)  # two sided, pooled
kept = orders * (1 - return_rate)

print(f"Conversion: variant {rates[0]:.2%}, control {rates[1]:.2%}")
print(f"Gross lift {rates[0] / rates[1] - 1:.1%}, z = {z:.2f}, p = {p:.3f}")
print(f"Orders kept after returns: {kept[0]:.1f} against {kept[1]:.1f}")
print(f"Net lift {kept[0] / kept[1] - 1:.1%}")

Urgency is scarcity applied to time

Urgency is the same idea with a clock. The offer ends. The countdown ticks. The sale closes at midnight.

It works partly because people discount the future: a reward now counts for more than the same reward later, and the rates at which people discount vary enormously between studies and situations.9 A deadline drags the decision into the present. The CMA adds that time pressure pushes people to rely on mental shortcuts, to look at fewer attributes and to decide out of habit.4 That is the problem. In one experiment the CMA cites, people who took timed deals instead of waiting to see wider options ended up worse off, and their behaviour did not improve with experience.4

What urgency looks like

Countdown timers. A visible deadline. Effective, which is exactly why regulators look at them. The same crawl of shopping sites found 393 countdown timers, and 157 deceptive ones on 140 sites, timers that reset or expired while the offer carried on.5

Flash sales. A short sale as an event: "24 hour sale", "weekend only".

Expiring offers. A personal deadline: "your code expires tonight".

Delivery cutoffs. "Order in the next three hours for delivery tomorrow." Real urgency, based on real logistics.

The strongest pressure combines urgency with scarcity: "Only three left at this price, and the sale ends in two hours." That is a possible loss on two fronts, and, if either half is invented, twice the exposure.

Worked example: five urgency treatments at a Cork florist

Ballinlough Stems (ballinloughstems.example) is an invented Cork florist. Over a season it shows five treatments, each to 10,000 sessions, with an average order of €50. The conversion, return and complaint rates below are the example's assumptions.

TreatmentConversionReturnsComplaints per session
No urgency2.8%7%0.2%
"Limited time"3.3%8%0.3%
24 hour timer3.9%9%0.5%
Two hour timer4.6%12%1.2%
Timer plus stock count5.2%14%1.8%

The fair comparison is net revenue per session, after returns:

RPS=norders×(1−r)×vˉnsessions\text{RPS} = \frac{n_{\text{orders}} \times (1 - r) \times \bar{v}}{n_{\text{sessions}}}

Here nordersn_{\text{orders}} is the number of orders, rr the return rate, vˉ\bar{v} the average order value and nsessionsn_{\text{sessions}} the number of sessions. It is a rate like any other, see Foundations: ratios and rates.

For no urgency: 280 orders, 280×0.93=260.4280 \times 0.93 = 260.4 kept, times €50 is €13,020, so 13,020/10,000=1.3013{,}020 / 10{,}000 = 1.30 per session. For the timer plus stock count: 520 orders, 520×0.86=447.2520 \times 0.86 = 447.2 kept, €22,360, so €2.24 per session.

On revenue alone, the most aggressive treatment wins. Now look at complaints per 100 kept orders: no urgency has 20 complaints on 260.4 kept orders, 7.7 per 100. The timer plus stock count has 180 on 447.2, 40.3 per 100.

Complaints per 100 kept orders by urgency treatmentComplaints per 100 kept orders rise from 7.7 with no urgency to 40.3 with a timer plus a stock count, in an invented example.Ballinlough Stems, invented: complaints per 100 kept orders012.52537.5507.7No urgency9.9Limitedtime14.124 hourtimer29.6Two hourtimer40.3Timer plusstockComplaints per 100 kept ordersTreatment

The horizontal axis shows the five treatments, from none to the most aggressive. The vertical axis shows complaints for every 100 orders that were kept. Revenue per session rises by about 70% across the range, but complaints per kept order rise more than fivefold. Complaints are where future customers, chargebacks and regulators come from.

And there is a harder line. The two hour timer is only acceptable if the offer really ends in two hours. If the florist's timer restarts every morning, the revenue is irrelevant, because the practice is banned.

import pandas as pd

# Ballinlough Stems, invented rates: 10,000 sessions per treatment, €50 average order
df = pd.DataFrame({
    'treatment': ['No urgency', 'Limited time', '24 hour timer',
                  'Two hour timer', 'Timer plus stock count'],
    'conversion': [0.028, 0.033, 0.039, 0.046, 0.052],
    'returns': [0.07, 0.08, 0.09, 0.12, 0.14],
    'complaints': [0.002, 0.003, 0.005, 0.012, 0.018],
})
sessions, aov = 10_000, 50

df['kept_orders'] = sessions * df['conversion'] * (1 - df['returns'])
df['net_rps'] = df['kept_orders'] * aov / sessions
df['complaints_per_100'] = sessions * df['complaints'] / df['kept_orders'] * 100

print(df[['treatment', 'kept_orders', 'net_rps', 'complaints_per_100']].round(2).to_string(index=False))

Irish law bans the false deadline

In Ireland the rules on unfair commercial practices sit in Part 3 of the Consumer Protection Act 2007, as amended by the Consumer Rights Act 2022. Section 55 lists commercial practices that are prohibited outright. One of them is making a false representation that a product, or particular terms, will only be available for a limited time, to get an immediate decision and deprive people of the time to make an informed choice.10

The British regulator's guidance on its version of the same ban gives the obvious example: a countdown clock that says the offer ends, after which the offer carries on and the clock restarts. If the offer really ends when the clock says, that is unlikely to be a problem. If a substantially similar offer appears shortly afterwards, it may still mislead.6 Its second example is a game that sells an item as "only available for 5 days" and offers it again 10 days later.6

False stock counts and "people are looking" claims are judged as misleading commercial practices, because availability is one of the matters the misleading practices rules name, as the pop up example earlier shows.7 The Competition and Consumer Protection Commission (CCPC) enforces the Act, and both a misleading and a prohibited commercial practice are criminal offences: on indictment, a fine of up to €60,000 for a first conviction and up to €100,000 for a later one.11 And a deadline on a price only works if the price is honest too. An invitation to purchase has to give the price inclusive of taxes, and any delivery charges or the fact that they will be payable.12 A sale announced as a price reduction on goods has to show the prior price, the lowest price the trader charged in the 30 days before the reduction, and leaving it out is an offence.13 The CCPC adds that any reduction has to be worked out from that prior price.14

The commercial cost comes before any fine. The CMA points out that false scarcity teaches people to ignore scarcity claims, so when a product really is scarce, the seller can no longer say so credibly.4 Every fake timer devalues every real one.

Before any scarcity or urgency message ships, it should pass a simple check:

Checking a scarcity or urgency message before it shipsA top to bottom series of four yes or no questions: the limit is real, the number comes from live data, the offer really ends, and the price is the full price. Only four yes answers lead to shipping the message. Any no means fixing or removing it.Draft the scarcity or urgency messageIs the limit or deadline real?yesDoes the number come from livestock or booking data?yesWill the offer really end, withnothing near identical straightafter?yesIs the price shown the full price,with mandatory charges included?yesShip it, and measure returns andcomplaints as well as conversion

The flow runs from the draft message at the top to shipping it at the bottom. Each question is a gate, and every arrow is a "yes". A "no" at any gate means the message is fixed or removed before it goes anywhere. Only a message that is true, built on live data, honoured and fully priced reaches the end.

FOMO is scarcity with an audience

The fear of missing out (FOMO) is scarcity applied to belonging. It is not only that the product might run out. It is that everyone else is getting it and you are being left behind. "Join 10,000 customers who switched this month." "Your competitors already use this."

How FOMO works

FOMO combines scarcity with social proof: something is limited and other people are taking it, which seems to confirm its value. It adds status (falling behind your peers, which is why business messages mention competitors) and experiences (others are having them, which is why events and travel lean on it).

Age, and what the evidence actually says

A common claim is that FOMO marketing works far better on people under 35 and may alienate people over 40. The research supports something narrower. In the study that introduced a standard FOMO scale, the fear of missing out as a personal trait was highest among young people, and among young men in particular.15 That is a finding about a feeling, measured in surveys. It does not tell you how much a booking count on your page lifts sales in each age group. That you have to test, and the test is harder than it looks.

When FOMO helps and when it backfires

It helps when the value really grows with the number of users (a network, a professional community), when missing out is genuinely irreversible (an event on a date), and in categories where being current is the point, such as fashion and entertainment.

It backfires on considered purchases, in business sales decided on return on investment rather than anxiety, and above all when the social proof is invented. "Join thousands of customers" rings hollow on a product that launched last week.

Worked example: a Galway supper club tests booking counts by age

Menlo Table (menlotable.example) is an invented Galway supper club. It tests a true message ("212 people booked this month") against none, in five age groups of 2,000 visitors per arm each.

Age groupControl bookingsMessage bookingsLiftp value
18 to 249012235.6%0.024
25 to 348410525.0%0.118
35 to 44768511.8%0.469
45 to 5464674.7%0.790
55 and over5655minus 1.8%0.923

Each p value comes from the same z test as the pottery example. Only the youngest group is below 0.05. A 25% lift in the 25 to 34 group is not significant, because 2,000 visitors per arm is too few to detect it.

There is a second trap. Five independent tests at the 5% level give more than a one in five chance (1−0.955=0.231 - 0.95^5 = 0.23) that at least one comes up "significant" by luck alone. A Holm correction for the five tests multiplies the smallest p value by five: 0.024×5=0.120.024 \times 5 = 0.12. After the correction, none of the groups is significant. The honest conclusion: the pattern is suggestive, the evidence is not there yet, and the next test needs far more visitors per group. Foundations: sample size shows how to work out how many.

from statsmodels.stats.proportion import proportions_ztest
from statsmodels.stats.multitest import multipletests

# Menlo Table, invented: 2,000 visitors per arm in each age group
groups = {
    '18 to 24': (90, 122), '25 to 34': (84, 105), '35 to 44': (76, 85),
    '45 to 54': (64, 67), '55 and over': (56, 55),
}
n = 2000
p_values = []
for name, (control, message) in groups.items():
    z, p = proportions_ztest([message, control], [n, n])
    p_values.append(p)
    print(f"{name:12} lift {message / control - 1:+.1%}  p = {p:.3f}")

reject, p_holm, _, _ = multipletests(p_values, alpha=0.05, method='holm')
print("Significant after Holm correction:", dict(zip(groups, map(bool, reject))))

The endowment effect: owning changes the price

Once people own something, they tend to value it more. This is the endowment effect, and its best known demonstration is the coffee mug experiments by Daniel Kahneman, Jack Knetsch and Richard Thaler: mugs were given at random to half the participants, the price owners asked greatly exceeded what non owners would pay, and far fewer mugs changed hands than economic theory predicted.16

How large and how general the gap is remains debated. Charles Plott and Kathryn Zeiler argued that much of the reported gap between willingness to pay and willingness to accept comes from how the experiments ask the question, and that there is no consensus on how robust the gap is.17 So treat the endowment effect as real but variable, and measure it in your own setting.

Why free trials are thought to convert

On day one of a trial the question is "should I get this?". By day 14 it can become "should I give this up?", with my data, my settings and my workflows inside. The theory is that the trial converts not only because it showed value, but because it transferred a sense of ownership, and giving something up feels like a loss. The behavioural economics article covers loss aversion in more depth. Losses weigh about twice as much as gains,3 not the exact 2.25 often quoted.

Where the feeling of ownership comes from

Free trials, test drives and home trials all put the thing in your hands first. A 30 or 60 day return window reduces the customer's risk and, if the theory holds, gives the feeling of ownership time to grow before the decision to return. Possessive wording ("your basket", "your plan") may help a little, which is an open question and an easy one to test. And customising before buying makes a version you made, which leads to the IKEA effect below.

The effect is strongest where people can try before they pay, where data and history build up over time, and where personalisation makes the product theirs. It is weak for commodity products with nothing to personalise, for one time purchases with no relationship, and when the trial experience is poor: a frustrating trial creates no attachment.

Worked example: trial length at a Limerick rota software company

Shiftly (shiftly.example) is an invented Limerick company that sells rota software to cafes at €49 a month. It wants to know whether a longer trial converts more. Its records show these trial to paid rates, which are the example's assumptions:

Engagement during the trial7 days14 days30 days
Low6%9%11%
Medium12%18%22%
High21.6%32.4%39.6%

The first month's revenue per trial start is the conversion rate times the monthly price:

R=c×mR = c \times m

Here cc is the trial to paid conversion rate and mm the monthly price in euro. Like the rates above, this is covered in Foundations: ratios and rates.

For a medium engagement trial: 0.12×49=5.880.12 \times 49 = 5.88 for seven days, 0.18×49=8.820.18 \times 49 = 8.82 for 14 days and 0.22×49=10.780.22 \times 49 = 10.78 for 30 days, in euro. Longer looks better, but the 30 day trial also delays the first payment by 16 days compared with the 14 day one, and costs more in support.

The bigger catch: these are observed records, not an experiment. Engagement was not assigned at random, and neither, probably, was trial length. Keen customers may pick longer trials and engage more. To learn whether trial length itself causes conversion, Shiftly has to assign trial lengths at random to new sign ups and compare the groups.

import pandas as pd

# Shiftly, invented trial to paid rates by trial length and engagement
base = {7: 0.12, 14: 0.18, 30: 0.22}           # medium engagement
multiplier = {'low': 0.5, 'medium': 1.0, 'high': 1.8}
monthly_price = 49

rows = [
    {'trial_days': days, 'engagement': level,
     'conversion': rate * multiplier[level],
     'revenue_per_start': rate * multiplier[level] * monthly_price}
    for days, rate in base.items() for level in multiplier
]
df = pd.DataFrame(rows)
print(df.pivot(index='engagement', columns='trial_days', values='conversion')
        .reindex(['low', 'medium', 'high']).apply(lambda col: col.map('{:.1%}'.format)))
print(df[df['engagement'] == 'medium'][['trial_days', 'revenue_per_start']].round(2))

The IKEA effect: effort makes things feel worth more

Michael Norton, Daniel Mochon and Dan Ariely named the IKEA effect: people value things more when they have made them themselves. In their first study, participants who assembled a plain IKEA storage box bid on average 78 US cents for it, against 48 cents from participants who were handed an identical box already built. The same pattern appeared with origami and Lego. Crucially, the effect disappeared when participants built something and then destroyed it, or failed to finish it.18 Effort raises value only when it ends in success.

What it means for digital products

Choosing preferences, building a first dashboard or importing your own data is effort that can raise the value people see in a product. Onboarding that asks people to do something, not just watch, can create stronger attachment than a passive tour. A version you configured is worth more to you than a generic one.

The sunk cost trap

The IKEA effect sits close to the sunk cost fallacy: continuing with something because of what you already put in. Hal Arkes and Catherine Blumer showed it with theatre season tickets: people who had paid full price went to more plays in the first half of the season than people who had been given a discount at random.19 Users who have invested effort are reluctant to walk away from it, even when something better exists.

That is good for retention and raises a fair question. Are customers staying because the product is valuable, or because they feel trapped by what they put in? The sustainable version creates value that justifies the effort. The exploitative version creates switching costs and nothing else.

It helps with complex products that benefit from configuration, creative tools, and professional software where setup and integrations are real work. It backfires when configuration is frustrating (people link the product with the pain, not the pride), when the effort is busy work that adds nothing, and when some users cannot complete the setup at all, because the study's own finding is that an unfinished build adds no value.

Worked example: onboarding steps and retention at Shiftly

Shiftly's onboarding has five steps: profile, preferences, first rota, invite the team, connect the till. Its records, invented for this example, show 90 day retention rising with the number of steps completed.

Retention after 90 days by onboarding steps completedIn an invented example, 90 day retention rises from 42% for customers who completed one onboarding step to 90% for those who completed all five.Shiftly, invented: retention after 90 days0%25%50%75%100%1 step2 steps3 steps4 steps5 stepsRetained after 90 daysRetained after 90 daysOnboarding steps completed

The horizontal axis shows how many of the five onboarding steps a customer completed. The vertical axis shows the share still paying after 90 days. Each step is associated with 12 more points of retention. At €49 a month, a year of revenue is worth €588, so a retained share of 42% is worth about €247 per customer and 90% about €529.

It is tempting to read this as "every onboarding step adds €71 of value". It does not. Customers who complete all five steps were probably more committed before they started. The correlation mixes the IKEA effect with who these customers already were (Foundations: correlation covers why). The test that answers the question: give half of new customers a sample rota already filled in, ask the other half to build their own first rota, and compare retention.

import numpy as np
import pandas as pd
from scipy import stats

# Shiftly, simulated: 1,000 customers, retention rises with steps completed
rng = np.random.default_rng(42)
steps = rng.choice([1, 2, 3, 4, 5], size=1000, p=[0.2, 0.25, 0.25, 0.2, 0.1])
retention_prob = np.minimum(0.30 + 0.12 * steps, 0.95)
retained = rng.random(1000) < retention_prob

df = pd.DataFrame({'steps': steps, 'retained_90d': retained})
print(df.groupby('steps')['retained_90d'].mean().round(2))

rho, p = stats.spearmanr(df['steps'], df['retained_90d'])
print(f"Spearman rho {rho:.3f}, p {p:.2g}  (an association, not proof of cause)")

Stacking the effects multiplies the risk as well

The strongest conversion journeys combine several effects. Two examples, written so that every part is true:

"Your 14 day trial ends in three days. Your rotas and staff list stay saved if you continue." That combines the endowment effect (they have been using it), urgency (the trial really ends) and loss aversion (what they would give up).

"Your custom rota is ready. 212 cafes in Limerick use Shiftly. Finish your setup to start your first week." That combines the IKEA effect (they built it), social proof (others use it) and ownership wording ("your" rota).

A common version of that first message adds "only two places remain in the Pro tier before enrolment closes". Software does not run out. Unless there truly is a cap, that line is manufactured scarcity, and a false limited time claim is banned.

Worked example: a toy model of stacking

The code below models stacking five tactics. Every lift and every "trust cost" in it is an assumption, not a measurement. Each tactic adds conversion, with diminishing returns (each further tactic is assumed to work at 80% of the one before), and each subtracts from a trust index that scales long term value.

from itertools import combinations

# Assumed numbers for illustration only, not measurements
tactics = {
    'scarcity':    {'lift': 0.25, 'trust_cost': 0.05},
    'urgency':     {'lift': 0.30, 'trust_cost': 0.08},
    'social':      {'lift': 0.15, 'trust_cost': 0.03},
    'endowment':   {'lift': 0.40, 'trust_cost': 0.01},
    'ikea_effect': {'lift': 0.20, 'trust_cost': 0.02},
}
baseline_conversion = 0.03
baseline_trust = 0.85

def stack_impact(stack):
    # Strongest tactic first, each further one at 80% of the effect of the one before
    ordered = sorted(stack, key=lambda t: tactics[t]['lift'], reverse=True)
    lift = sum(tactics[t]['lift'] * 0.8 ** i for i, t in enumerate(ordered))
    trust = baseline_trust - sum(tactics[t]['trust_cost'] for t in stack)
    conversion = baseline_conversion * (1 + lift)
    return conversion, trust, conversion * trust / baseline_trust

rows = []
for r in range(1, len(tactics) + 1):
    for combo in combinations(tactics, r):
        conv, trust, adjusted = stack_impact(combo)
        rows.append((' + '.join(combo), len(combo), conv, trust, adjusted))

rows.sort(key=lambda row: row[4], reverse=True)
print(f"{'Stack':45} | Conv   | Trust | Adjusted")
for stack, n, conv, trust, adjusted in rows[:5]:
    print(f"{stack:45} | {conv:.2%} | {trust:.2f}  | {adjusted:.2%}")
everything = [row for row in rows if row[1] == len(tactics)][0]
print(f"\nAll five: {everything[2]:.2%} raw, {everything[4]:.2%} adjusted")

With these assumptions, stacking all five gives the highest raw conversion, 5.89%, but after the trust adjustment it falls to 4.57%. The best adjusted stack is scarcity, social proof, endowment and the IKEA effect, at 4.71%, and it leaves out urgency, the tactic with the highest assumed trust cost.

The lesson is not that stack. A model like this only returns the assumptions you fed it: change the trust costs and the winner changes. Its use is to make you write down what you believe each tactic costs, and then measure it.

Persuasion is honest when the claim is true

Every technique here can be used to help or to exploit.

Honest useExploitative use
Real scarcity, stated plainlyInvented limits to create pressure
Real deadlines that are honouredTimers that reset, sales that never end
True customer counts and genuine reviewsInflated numbers and fake reviews
Trials that help people judge fitTrials built to lock people in
Customisation that adds valueBusy work that exists to create sunk costs

Beyond the moral case, the commercial case is strong. The law now carries real penalties: in Ireland these practices are criminal offences, with fines of up to €100,000 on a later conviction on indictment.11 False claims teach customers to ignore your true ones.4 Manipulative tactics erode trust, and eroded trust shows up in fewer repeat purchases, fewer referrals and lower lifetime value. And manipulative practices get called out in public, where the damage can exceed any short term gain.

Measure the whole journey, not the click

These effects describe how people actually decide. Ignoring them does not make you ethical. It makes you less effective. The manipulation does not come from using psychology. It comes from lying about reality to exploit it.

So apply them honestly, and measure past the conversion: returns, complaints, retention and repeat purchases. The best conversion rate means nothing if customers feel tricked and never come back. The statistical significance article covers how to tell a real lift from noise.

I have been applying behavioural psychology to conversion optimisation for over a decade, across eCommerce, SaaS and business to business companies. The code in this article runs as it stands and is built on invented numbers, so adapt it to your own data before you trust any result.

Footnotes

  1. Robert Cialdini, The science of persuasion: seven principles of persuasion, Influence at Work, https://www.influenceatwork.com/7-principles-of-persuasion/

  2. Christina Steindl, Eva Jonas, Sandra Sittenthaler, Eva Traut-Mattausch and Jeff Greenberg, Understanding psychological reactance: new developments and findings, Zeitschrift für Psychologie 223(4), 205 to 214, 2015, https://pmc.ncbi.nlm.nih.gov/articles/PMC4675534/

  3. Alexander L. Brown, Taisuke Imai, Ferdinand M. Vieider and Colin F. Camerer, Meta analysis of empirical estimates of loss aversion, Journal of Economic Literature 62(2), 485 to 516, 2024, https://www.aeaweb.org/articles?id=10.1257/jel.20221698

  4. Competition and Markets Authority (United Kingdom), Online choice architecture: how digital design can harm competition and consumers, discussion paper CMA155, April 2022, paragraphs 4.6 to 4.12, https://assets.publishing.service.gov.uk/media/624c27c68fa8f527710aaf58/Online_choice_architecture_discussion_paper.pdf

  5. Arunesh Mathur, Gunes Acar, Michael J. Friedman, Elena Lucherini, Jonathan Mayer, Marshini Chetty and Arvind Narayanan, Dark patterns at scale: findings from a crawl of 11K shopping websites, Proceedings of the ACM on Human Computer Interaction (CSCW), 2019, https://arxiv.org/abs/1907.07032

  6. Competition and Markets Authority (United Kingdom), Unfair commercial practices (CMA207), banned practice 7 and the examples of misleading actions, GOV.UK, 18 November 2025, https://assets.publishing.service.gov.uk/media/691b9bd821ef5aaa6543ee6f/Unfair_commercial_practices_CMA207_18_Nov_2025__2_.pdf

  7. Law Reform Commission, Consumer Protection Act 2007, revised, section 43 (Misleading: false, misleading or deceptive information), subsections (2), (3)(b)(ii) and (4), updated to 24 November 2025, Revised Acts, https://revisedacts.lawreform.ie/eli/2007/act/19/revised/en/html

  8. Competition and Markets Authority (United Kingdom), Hotel booking sites to make major changes after CMA probe, GOV.UK, 6 February 2019, https://www.gov.uk/government/news/hotel-booking-sites-to-make-major-changes-after-cma-probe

  9. Shane Frederick, George Loewenstein and Ted O'Donoghue, Time discounting and time preference: a critical review, Journal of Economic Literature 40(2), 351 to 401, 2002, https://www.aeaweb.org/articles?id=10.1257/002205102320161311

  10. Law Reform Commission, Consumer Protection Act 2007, revised, section 55 (Prohibited commercial practices), subsection (1)(n), updated to 24 November 2025, Revised Acts, https://revisedacts.lawreform.ie/eli/2007/act/19/revised/en/html

  11. Law Reform Commission, Consumer Protection Act 2007, revised, sections 47 (Offence: misleading commercial practices), 56 (Offence: prohibited commercial practices) and 79 (Fines and penalties), updated to 24 November 2025, Revised Acts, https://revisedacts.lawreform.ie/eli/2007/act/19/revised/en/html

  12. Law Reform Commission, Consumer Protection Act 2007, revised, section 46 (Misleading: withholding, omitting or concealing material information), subsection (3)(c) and (d), updated to 24 November 2025, Revised Acts, https://revisedacts.lawreform.ie/eli/2007/act/19/revised/en/html

  13. Government of Ireland, S.I. No. 597 of 2022, European Union (Requirements to Indicate Product Prices) (Amendment) Regulations 2022, regulation 4 (new Regulation 5A, prior price), Irish Statute Book, 2022, https://www.irishstatutebook.ie/eli/2022/si/597/made/en/html

  14. Competition and Consumer Protection Commission, Price reductions, CCPC, accessed November 2026, https://www.ccpc.ie/information-for-businesses/selling-goods-and-services/pricing-and-price-reductions/price-reductions

  15. Andrew K. Przybylski, Kou Murayama, Cody R. DeHaan and Valerie Gladwell, Motivational, emotional, and behavioural correlates of fear of missing out, Computers in Human Behavior 29(4), 1841 to 1848, 2013, https://doi.org/10.1016/j.chb.2013.02.014

  16. Daniel Kahneman, Jack L. Knetsch and Richard H. Thaler, Experimental tests of the endowment effect and the Coase theorem, Journal of Political Economy 98(6), 1325 to 1348, 1990, https://econpapers.repec.org/article/ucpjpolec/v_3a98_3ay_3a1990_3ai_3a6_3ap_3a1325-48.htm

  17. Charles R. Plott and Kathryn Zeiler, The willingness to pay, willingness to accept gap, the "endowment effect", subject misconceptions, and experimental procedures for eliciting valuations, American Economic Review 95(3), 530 to 545, 2005, https://www.aeaweb.org/articles?id=10.1257/0002828054201387

  18. Michael I. Norton, Daniel Mochon and Dan Ariely, The "IKEA effect": when labor leads to love, Harvard Business School working paper 11-091, 2011 (published in the Journal of Consumer Psychology, 2012), https://www.hbs.edu/ris/Publication%20Files/11-091.pdf

  19. Hal R. Arkes and Catherine Blumer, The psychology of sunk cost, Organizational Behavior and Human Decision Processes 35(1), 124 to 140, 1985, https://econpapers.repec.org/article/eeejobhdp/v_3a35_3ay_3a1985_3ai_3a1_3ap_3a124-140.htm

If you want to know whether your stock counts, deadlines or trial actually help your customers, bring one to the free workshop and I will help you design a test that measures the whole journey, not just the click. The first two weeks of work are on me.