---
title: 'The Power of Defaults'
source: 'https://academia.sh/en/courses/user-experience/power-of-defaults'
course: 'User Experience and Behavior Design'
language: en
updated: '2026-08-19T05:19:57+00:00'
license: 'CC BY-SA 4.0'
---

# The Power of Defaults

Computing choice architecture's effect on participation rate across two settings, defining regret rate as a legitimacy criterion, and how switch cost turns a default into a trap.

The previous two lessons showed that lowering the routine's cost strengthens the loop.
The most powerful tool for lowering cost appeared in the Cognitive Load lesson but was
not measured: binding decision points to a default. That was what reduced the
thirteen-point borrowing flow to six.

A **default** is the value in effect when the user does nothing. Most users do not
change this value — not changing it is not deciding, and not deciding is always
cheaper. This is the most powerful and the most contested tool in the designer's
hands: setting a checkbox's starting state determines the outcome for the majority of
users.

This lesson measures that power across two settings and ties the criterion that makes
a default legitimate to a number.

## Choice Architecture and Three Layouts

**Choice architecture** is the way options are presented to the user: which one is
pre-checked, in what order they appear, how many steps changing one takes. Choice
architecture cannot be neutral — a checkbox is either checked or not, and either state
makes one outcome more likely than the other.

The catalog interface's borrow confirmation screen has two settings. The first is the
**due date reminder**: should a notification be sent to the user as the due date
approaches? The second is the **weekly recommendations newsletter**: should a list of
recommendations be sent to the user once a week?

Three layouts will be compared:

- **Opt-in default**: the setting starts off; whoever wants it turns it on.
- **Opt-out default**: the setting starts on; whoever does not want it turns it off.
- **Active choice**: there is no default; the user must pick one to continue the flow.

Two quantities will be measured. **Participation rate** is the share of users for whom
the setting ends up on. **Regret rate** is the share of users who end up in a state
different from what they would choose if nothing stood in their way. The second
quantity is this lesson's real criterion.

## The Result of Two Settings Across Three Layouts

The simulation builds a population of four thousand users. Each user has a preference
strength: positive means they want the setting, negative means they do not, and its
absolute value gives how much. Switching the default requires a cost; the user
switches the default only if their preference strength exceeds that cost.

```js
// default.mjs — effect of the default on participation rate and regret rate

function generator(seed) {
  let s = seed >>> 0;
  return () => { s = (s * 1664525 + 1013904223) >>> 0; return s / 4294967296; };
}

// Deterministic normal distribution (Box-Muller), for generating preference strength.
function normalGenerator(seed) {
  const rnd = generator(seed);
  return () => {
    const u1 = Math.max(rnd(), 1e-12), u2 = rnd();
    return Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
  };
}

const PEOPLE = 4000;
const SWITCH_COST = 0.55;  // preference strength required to switch the default

// Two settings. mu: center of the preference distribution; positive means the majority wants it.
const SETTINGS = [
  { name: "due date reminder", mu: 0.78 },
  { name: "weekly recommendations newsletter", mu: -0.78 },
];

function population(mu, seed) {
  const n = normalGenerator(seed);
  const prefs = [];
  for (let i = 0; i < PEOPLE; i++) prefs.push(mu + n());
  return prefs;
}

// Three layouts: opt-out default, opt-in default, active choice.
function outcome(pref, layout, cost) {
  if (layout === "active choice") return pref > 0;          // the user chooses directly
  const defaultOn = layout === "opt-out default";
  const switches = defaultOn ? (pref < 0 && -pref > cost) : (pref > 0 && pref > cost);
  return defaultOn ? !switches : switches;
}

const LAYOUTS = ["opt-in default", "opt-out default", "active choice"];

console.log("setting                             informed pref.  layout          participation  regret");
for (const s of SETTINGS) {
  const u = population(s.mu, 20260318);
  const informed = u.filter((x) => x > 0).length / PEOPLE;
  for (const layout of LAYOUTS) {
    let on = 0, regret = 0;
    for (const x of u) {
      const o = outcome(x, layout, SWITCH_COST);
      if (o) on++;
      if (o !== x > 0) regret++;
    }
    console.log(
      `${s.name.padEnd(36)} ${((informed * 100).toFixed(1) + " %").padStart(14)}  ${layout.padEnd(15)}` +
      ` ${((on / PEOPLE * 100).toFixed(1) + " %").padStart(7)} ${((regret / PEOPLE * 100).toFixed(1) + " %").padStart(10)}`
    );
  }
}

// How regret changes as switch cost grows
console.log("\nswitch cost  due date reminder (opt-out default)  newsletter (opt-out default)");
console.log("             participation  regret                   participation  regret");
const uA = population(SETTINGS[0].mu, 20260318);
const uB = population(SETTINGS[1].mu, 20260318);
for (const m of [0.0, 0.25, 0.55, 1.0, 1.5, 2.5]) {
  const measure = (u) => {
    let on = 0, regret = 0;
    for (const x of u) {
      const o = outcome(x, "opt-out default", m);
      if (o) on++;
      if (o !== x > 0) regret++;
    }
    return [(on / PEOPLE * 100).toFixed(1), (regret / PEOPLE * 100).toFixed(1)];
  };
  const [onA, regretA] = measure(uA), [onB, regretB] = measure(uB);
  console.log(`${m.toFixed(2).padStart(11)}  ${(onA + " %").padStart(7)} ${(regretA + " %").padStart(10)}                   ${(onB + " %").padStart(7)} ${(regretB + " %").padStart(10)}`);
}

// Active choice zeroes out regret but adds a decision point.
// lesson 02: every decision point lengthens the flow; in a longer flow some users drop out.
console.log("\nthe cost of active choice (newsletter setting)");
const EXTRA_DECISION_TIME = 0.44;  // lesson 02: A + B*log2(4) for a three-option field
for (const dropout of [0.0, 0.03, 0.06, 0.10]) {
  const completing = 1 - dropout;
  let informedOn = 0;
  for (const x of uB) if (x > 0) informedOn++;
  const activeOn = (informedOn / PEOPLE) * completing;
  const defaultOn = uB.filter((x) => outcome(x, "opt-out default", SWITCH_COST)).length / PEOPLE;
  const defaultRegret = uB.filter((x) => outcome(x, "opt-out default", SWITCH_COST) !== x > 0).length / PEOPLE;
  console.log(
    `dropout ${(dropout * 100).toFixed(0).padStart(2)} %  flow completion ${(completing * 100).toFixed(0)} %  ` +
    `active choice participation ${(activeOn * 100).toFixed(1)} % / regret 0.0 %  ` +
    `opt-out default ${(defaultOn * 100).toFixed(1)} % / ${(defaultRegret * 100).toFixed(1)} %`
  );
}
console.log(`time active choice adds to the flow: ${EXTRA_DECISION_TIME.toFixed(2)} s`);
```

```
setting                             informed pref.  layout          participation  regret
due date reminder                            78.0 %  opt-in default   58.7 %     19.4 %
due date reminder                            78.0 %  opt-out default  90.8 %     12.8 %
due date reminder                            78.0 %  active choice    78.0 %      0.0 %
weekly recommendations newsletter            22.1 %  opt-in default    9.0 %     13.1 %
weekly recommendations newsletter            22.1 %  opt-out default  40.9 %     18.8 %
weekly recommendations newsletter            22.1 %  active choice    22.1 %      0.0 %

switch cost  due date reminder (opt-out default)  newsletter (opt-out default)
             participation  regret                   participation  regret
       0.00   78.0 %      0.0 %                    22.1 %      0.0 %
       0.25   84.8 %      6.7 %                    29.9 %      7.8 %
       0.55   90.8 %     12.8 %                    40.9 %     18.8 %
       1.00   96.2 %     18.1 %                    58.2 %     36.1 %
       1.50   98.8 %     20.7 %                    76.3 %     54.2 %
       2.50   99.9 %     21.9 %                    95.8 %     73.7 %

the cost of active choice (newsletter setting)
dropout  0 %  flow completion 100 %  active choice participation 22.1 % / regret 0.0 %  opt-out default 40.9 % / 18.8 %
dropout  3 %  flow completion 97 %  active choice participation 21.4 % / regret 0.0 %  opt-out default 40.9 % / 18.8 %
dropout  6 %  flow completion 94 %  active choice participation 20.8 % / regret 0.0 %  opt-out default 40.9 % / 18.8 %
dropout 10 %  flow completion 90 %  active choice participation 19.9 % / regret 0.0 %  opt-out default 40.9 % / 18.8 %
time active choice adds to the flow: 0.44 s
```

## The Same Layout, Two Different Things in Two Settings

The first table's participation column measures the power of the default. The due date
reminder gets 58.7 percent with the opt-in default, 90.8 percent with the opt-out
default. The newsletter gets 9.0 percent with the opt-in default, 40.9 percent with the
opt-out default. For both settings, flipping the default changes participation by
roughly a factor of four, or thirty points. The only thing that changed is a
checkbox's starting state.

Anyone looking only at the participation column reaches the same conclusion for both
settings: the opt-out default is better. The regret column refutes that.

For the due date reminder, the opt-out default's regret rate is 12.8 percent, the
opt-in default's is 19.4 percent. The opt-out default **moves users closer** to their
informed preference. The opt-in default leaves a 19.4 percent group who want the
reminder but do not bother turning it on without it.

For the newsletter, the signs flip. The opt-out default's regret rate is 18.8 percent,
the opt-in default's is 13.1 percent. The opt-out default **moves users away** from
their informed preference: some of the 3116 users who do not want the newsletter keep
receiving it.

This yields the lesson's rule. **The default is chosen to minimize the regret rate.**
This is the measurable form of saying "the default follows whichever direction the
majority's informed preference points." For the due date reminder, the majority wants
it, so the default is on. For the newsletter, the majority does not want it, so the
default is off.

The rule pays no attention to participation rate at all. It is possible to raise
newsletter participation from 9 percent to 40.9 percent, and the entirety of that
increase comes from users who do not want the setting.

## Switch Cost Turns the Default into a Trap

The second table shows where the default's power comes from: switch cost.

When cost is zero, regret is zero for both settings. Everyone moves to the state they
want; the default has no effect at all. As cost rises, both participation and regret
rise.

The rates of increase differ between the two settings. For the due date reminder, as
cost rises from 0 to 2.5, participation rises from 78 percent to 99.9 percent and
regret from 0 percent to 21.9 percent. For the newsletter, participation rises from
22.1 percent to 95.8 percent, while regret rises from 0 percent to **73.7 percent**. At
a cost of 2.5, three out of every four users receiving the newsletter do not want it.

This number is the quantitative definition of the "hard to cancel" pattern. When
turning off a setting is made difficult, participation rate rises; the entirety of the
rise comes from regret. On a dashboard that reports only participation rate, the two
situations are indistinguishable: 95.8 percent participation shows up as 95.8 percent
whether the setting is one users want or one they do not.

The only quantity that makes the distinction is the regret rate, and the regret rate
cannot be read from interface logs. It requires knowing the user's informed preference,
which is the question of the measurement topic.

## The Cost and Place of Active Choice

Active choice zeroes out regret for both settings: because the user chooses directly,
they never end up in a state they did not want. Its cost is in the third table.

Active choice adds one decision point to the flow; by the computation in the Cognitive
Load lesson, that is 0.44 seconds. More important than the time is dropout: in a longer
flow, some users do not complete the borrow. At a 10 percent dropout rate, the share of
users who want the newsletter drops from 22.1 percent to 19.9 percent — what is lost is
not the newsletter itself but the borrowing transaction.

This means active choice cannot be used everywhere. The decision of when to leave the
choice to the user is made with three criteria:

**Is the outcome reversible?** A newsletter subscription can be turned off at any time;
a book ordered to the wrong branch cannot be corrected after the fact. For irreversible
decisions, active choice is worth the dropout cost.

**Are preferences split?** If the informed preference shows a distribution like 78 to
22 percent, the default serves the majority. If the distribution is close to 50
percent, no default can lower regret, and active choice is the only correct layout.

**Whose interest does the decision serve?** If the setting being on serves the
interface's interest and not the user's, choosing the default is a choice the designer
makes under a conflict of interest. In that case the decision is left to the user.

## The Rules for Setting a Default

**The default is set in the direction of the informed majority's preference.** Knowing
this requires measurement; a default based on guessing is not an assumption, it is an
imposition.

**Switch cost is lowered as much as possible.** A default's legitimacy is directly
proportional to how easy it is to change. Every step that makes changing it harder
raises the regret rate.

**The default is written visibly.** A setting whose current value the user cannot see
is not a default but a hidden decision. Writing "delivery branch: main" on the borrow
confirmation screen lets the user know that decision has been made.

**Participation rate and regret rate are reported together.** When only participation
is reported, every change that raises regret looks like an improvement.

## Summary

- A default is the value in effect when the user does nothing; in the simulation,
  flipping the default changed the participation rate by more than thirty points.
- Participation rate does not show whether a default is correct; the same layout
  lowers regret for one setting (from 19.4 percent to 12.8 percent) while raising it
  for another (from 13.1 percent to 18.8 percent).
- The legitimacy criterion is the regret rate: the default is set in the direction that
  minimizes the share of users who end up in a state different from their informed
  preference.
- The default's power comes from switch cost; at zero cost, the default has no effect,
  and as cost grows, the entirety of the participation increase comes from regret — in
  the computation, 95.8 percent participation against 73.7 percent regret.
- Active choice zeroes out regret but adds a decision point and produces dropout; it is
  chosen for irreversible decisions, split preferences, and settings with a conflict of
  interest.
- When participation rate is reported alone, a hard-to-cancel setting and a
  well-chosen default look the same.

## Next Step

A default silently steers the user's decision. The interface also has a tool that
speaks openly: showing what others have done. Information in the catalog like "users
who borrowed this record also borrowed" or "most borrowed this month" changes the
user's decision. The next lesson builds the mechanism of that change, computes whether
the displayed number creates a self-reinforcing loop, and addresses the point at which
social proof stops being information and turns into steering.
