Loss aversion, sunk cost and regression — what it costs you
Four questions you answer about yourself rather than about a scenario, and your own answers are the finding. Then the pattern that makes praise look useless and criticism look like it works, whatever you actually do.
The first two lessons could be got wrong at arm's length. These are about you.
A coin flip, for real money
I will flip a fair coin. If it comes up heads you lose ₹10,000. If it comes up tails you win ₹X.
How large does X have to be before you would take that bet?
Keep your answer. This one comes back later.
In pure arithmetic anything above ₹10,000 is worth taking. The bet is fair at ₹10,000 and favourable at ₹10,001.
Most people want somewhere around ₹20,000. If your number was near that, you have just measured your own loss aversion without being told that was the question.
Tversky and Kahneman put the ratio at roughly two to one. A loss hurts about twice as much as the same gain pleases.
This is not a flaw to correct. It is a fact about people to plan around. It is why a customer fights harder to keep a discount than to win one of the same size.
₹40 lakh in, and it is not going to work
Eight months and ₹40 lakh into building a system, it is clear the approach does not work.
What do you do?
| Finish it | Start again | |
|---|---|---|
| Money already spent | ₹40 lakh, gone | ₹40 lakh, gone |
| Money still to spend | ₹10 lakh | ₹12 lakh |
| What you end up with | A system that does not work | A system that works |
Money already spent
- Finish it
- ₹40 lakh, gone
- Start again
- ₹40 lakh, gone
Money still to spend
- Finish it
- ₹10 lakh
- Start again
- ₹12 lakh
What you end up with
- Finish it
- A system that does not work
- Start again
- A system that works
₹2 lakh is the whole difference, and it buys a system that works instead of one that does not. Read that way it is not a close call.
The phrase people reach for is we have come too far to stop. That is a statement about the past, inside a decision about the future.
When will it be finished?
Think of the piece of work you are in the middle of right now. The real one, at work.
When will it be finished? Give a date or a number of weeks.
Keep your answer. This one comes back later.
And the last few things you estimated — how often did the first estimate hold?
Buehler, Griffin and Ross measured that gap in 1994. The estimate is built by imagining the work going well, which is the only version anybody can picture in detail.
Everything that has ever delayed you was, at the time, unforeseeable. And it happened anyway, every time.
The fix is not to think harder about the plan. It is to look up what happened last time. Your own track record is better evidence than your own reasoning, and it is the one thing nobody consults.
Are you a better than average driver?
Compared with everybody else on the road, how good a driver are you?
Keep your answer. This one comes back later.
Roughly half of any group is below average, and almost nobody puts themselves there. Svenson published the driving version in 1981 and it has been repeated on nearly every skill anyone thought to ask about.
It matters here for one reason. Every pattern in this module is one you will now recognise in other people. The evidence that you are also subject to them is the four answers you have just given.
Five more, which this module cannot catch you with
Some of the best-known findings in this field need two groups of people who cannot see each other. One group gets one wording and the other gets another, and the two groups answer differently.
There is no honest way to do that to one reader. You would spot the parallel and answer consistently, which is the right thing to do and destroys the demonstration. So here they are as findings rather than as traps.
| The effect | The two wordings | Who found it |
|---|---|---|
| Framing | 200 of 600 saved, against 400 of 600 lost | Tversky & Kahneman, 1981 |
| Mental accounting | losing a ₹500 ticket, against losing a ₹500 note | Kahneman & Tversky, 1984 |
| Relativity | ₹200 off a ₹500 kettle, against ₹200 off a ₹40,000 laptop | Tversky & Kahneman, 1981 |
| The decoy | two subscription options, against the same two plus a third nobody takes | Huber and colleagues, 1982 |
| Zero price | a ₹1 truffle against a free sweet, then ₹2 against ₹1 | Shampanier, Mazar & Ariely, 2007 |
Framing
- The two wordings
- 200 of 600 saved, against 400 of 600 lost
- Who found it
- Tversky & Kahneman, 1981
Mental accounting
- The two wordings
- losing a ₹500 ticket, against losing a ₹500 note
- Who found it
- Kahneman & Tversky, 1984
Relativity
- The two wordings
- ₹200 off a ₹500 kettle, against ₹200 off a ₹40,000 laptop
- Who found it
- Tversky & Kahneman, 1981
The decoy
- The two wordings
- two subscription options, against the same two plus a third nobody takes
- Who found it
- Huber and colleagues, 1982
Zero price
- The two wordings
- a ₹1 truffle against a free sweet, then ₹2 against ₹1
- Who found it
- Shampanier, Mazar & Ariely, 2007
In every one of them, the wording moves people and the arithmetic does not change. Ariely's Predictably Irrational is the readable version of most of this list.
And one nobody was asked
The last pattern cannot be put as a question at all, and it is the one that costs the most.
Kahneman tells it about flight instructors. They were certain that praising a cadet after a good landing made the next one worse. They were equally certain that shouting after a bad landing helped. They had watched it happen for years.
So here are 200 people whose skill never changes, over two quarters, with no praise and no criticism anywhere in the simulation.
The best 10% fell from 139 to 114, and 90% of them got worse. The worst 10% rose from 62 to 86, and 80% of them improved.
An extreme result is usually real skill plus a good run. The skill stays for the next quarter. The good run does not.
So praise looks useless and criticism looks like it works, whatever you actually do. Anybody who rewards the top and confronts the bottom will see exactly this every quarter, for their whole career. And will be certain it was them.
What these four told you about yourself
- A loss weighs about twice a gain. Your coin-flip number.
- Money already spent belongs in no column. The ₹40 lakh.
- Your estimate assumed a record you know you do not have. The two planning answers.
- You are almost certainly not below average, by your own account. The driving question.
One question from the first lesson is still open — the ordinary one, about a lead. The last lesson is about what your answer to it was.
content/notebooks/introduction-to-ai/where-judgment-fails.ipynb
Raise the churn base rate from 5% to 30% and watch a flag become worth believing. Then move the screening test's prevalence and watch the same thing happen to a 99% accurate test.
Show the code4 cells
PASSENGERS, RATE, ACC = 50_000_000, 1 / 10_000_000, 0.999
wanted = round(PASSENGERS * RATE)
ordinary = PASSENGERS - wanted
caught = round(wanted * ACC)
false_alarms = round(ordinary * (1 - ACC))
alarms = caught + false_alarms
record('air_passengers', f'{PASSENGERS:,}')
record('air_wanted', wanted)
record('air_accuracy', f'{ACC:.1%}')
record('air_caught', caught)
record('air_false', f'{false_alarms:,}')
record('air_alarms', f'{alarms:,}')
record('air_worth', f'1 in {round(alarms / caught):,}')
record('air_per_day', f'{round(false_alarms / 365):,}')
record('air_columns', ['', 'System raises an alarm', 'It does not', 'All'])
record('air_rows', [
['Actually wanted', f'{caught}', f'{wanted - caught}', f'{wanted}'],
['An ordinary passenger', f'{false_alarms:,}', f'{ordinary - false_alarms:,}', f'{ordinary:,}'],
['All', f'{alarms:,}', f'{PASSENGERS - alarms:,}', f'{PASSENGERS:,}'],
])
print(f'{caught} real of {alarms:,} alarms — about 1 in {round(alarms/caught):,}')
print(f'{round(false_alarms/365):,} innocent people stopped every day')SINGLE = 1 / 8_500 # roughly the rate the court was given
record('clark_single', '1 in 8,500')
record('clark_squared', f'1 in {round(1 / SINGLE**2):,}')
# If a first cot death makes a second more likely — as later evidence
# suggested — the honest figure moves by orders of magnitude.
record('clark_columns', ['If a first death makes a second…', 'Chance of two'])
record('clark_rows', [
['no more likely (what the court was told)', f'1 in {round(1 / SINGLE**2):,}'],
['5 times more likely', f'1 in {round(1 / (SINGLE * SINGLE * 5)):,}'],
['10 times more likely', f'1 in {round(1 / (SINGLE * SINGLE * 10)):,}'],
])
for mult in (1, 5, 10):
print(f'{mult:>3}x -> 1 in {round(1 / (SINGLE * SINGLE * mult)):,}')n = 200
skill = rng.normal(100, 12, n)
q1 = skill + rng.normal(0, 18, n)
q2 = skill + rng.normal(0, 18, n)
top, bot = np.argsort(q1)[-20:], np.argsort(q1)[:20]
record('rep_n', n)
record('top_q1', f'{q1[top].mean():.0f}')
record('top_q2', f'{q2[top].mean():.0f}')
record('top_got_worse', f'{(q2[top] < q1[top]).mean():.0%}')
record('bot_q1', f'{q1[bot].mean():.0f}')
record('bot_q2', f'{q2[bot].mean():.0f}')
record('bot_improved', f'{(q2[bot] > q1[bot]).mean():.0%}')
def plot_reps(ax):
for grp, colour, label in ((top, '#e2574c', 'best 10% of quarter one'),
(bot, '#3b6fd4', 'worst 10% of quarter one')):
for i in grp:
ax.plot([0, 1], [q1[i], q2[i]], color=colour, alpha=0.16, lw=1)
ax.plot([0, 1], [q1[grp].mean(), q2[grp].mean()], color=colour, lw=2.6, label=label)
ax.axhline(skill.mean(), color='#9aa0aa', ls='--', lw=1)
ax.annotate('everyone\'s average', (1, skill.mean()), textcoords='offset points',
xytext=(-6, 6), ha='right', fontsize=9, color='#77777f')
ax.set_xticks([0, 1]); ax.set_xticklabels(['Quarter one', 'Quarter two'])
ax.set_ylabel('% of target')
ax.legend(frameon=False, loc='upper center')
ax.grid(axis='x', visible=False)
save_fig('nobody-was-praised', plot_reps, figsize=(6.8, 4.0))
print(f'best 10%: {q1[top].mean():.0f} -> {q2[top].mean():.0f}, {(q2[top]<q1[top]).mean():.0%} got worse')
print(f'worst 10%: {q1[bot].mean():.0f} -> {q2[bot].mean():.0f}, {(q2[bot]>q1[bot]).mean():.0%} improved')HABIT, WOBBLE, M = 6.0, 11.0, 500
truth = rng.normal(50, 15, M)
judge1 = truth + HABIT + rng.normal(0, WOBBLE, M)
judge2 = truth + HABIT + rng.normal(0, WOBBLE, M)
rule = truth + HABIT
err = lambda p: float(np.sqrt(np.mean((p - truth) ** 2)))
e1, e2, er = err(judge1), err(judge2), err(rule)
disagree = float(np.mean(np.abs(judge1 - judge2)))
record('judge_habit', f'{HABIT:.0f}')
record('judge_cases', M)
record('judge1_error', f'{e1:.1f}')
record('judge2_error', f'{e2:.1f}')
record('rule_error', f'{er:.1f}')
record('judges_disagree_by', f'{disagree:.1f}')
record('wobble_share', f'{(e1 - er) / e1:.0%}')
record('judge_columns', ['', 'Habit', 'Wobble', 'Typical error'])
record('judge_rows', [
['Underwriter one', f'+{HABIT:.0f}', 'yes', f'{e1:.1f}'],
['Underwriter two', f'+{HABIT:.0f}', 'yes', f'{e2:.1f}'],
['A written-down rule', f'+{HABIT:.0f}', 'none', f'{er:.1f}'],
])
def plot_judges(ax):
ax.bar(['Underwriter\none', 'Underwriter\ntwo', 'A written-down\nrule'],
[e1, e2, er], color=['#9aa0aa', '#9aa0aa', '#e2574c'])
for i, v in enumerate([e1, e2, er]):
ax.text(i, v + 0.25, f'{v:.1f}', ha='center', fontsize=11)
ax.axhline(HABIT, color='#3b6fd4', ls='--', lw=1.2)
ax.annotate('the habit they all share', (2.4, HABIT), textcoords='offset points',
xytext=(0, 6), ha='right', fontsize=9, color='#3b6fd4')
ax.set_ylabel('Typical error')
ax.grid(axis='x', visible=False)
save_fig('habit-and-wobble', plot_judges, figsize=(6.6, 3.8))
print(f'judges {e1:.1f} and {e2:.1f}; rule {er:.1f}; they disagree by {disagree:.1f}')
print(f'{(e1-er)/e1:.0%} of the error was wobble')Related lessons
Base rates — what a piece of evidence is actually worth
A face-recognition system that is 99.9% accurate and almost entirely wrong, and a number that sent an innocent woman to prison. Both are the same arithmetic, and it is the arithmetic that decides what any piece of evidence is worth.
ReadConfirmation and survivorship — what you never looked for
Two questions about evidence you did not go looking for. One is a rule you have to discover, and one is a pattern in five famous people — and in both, the thing that would have told you the truth is the thing nobody checks.
ReadNoise and bias — why a written-down rule beats an expert
One question is still open. You scored a lead in the first lesson, and you are about to score it again — the same lead, the same facts, in a different order. What happens next is the reason machine learning exists.
Read
