Skip to content
academia.sh

Lesson 17 / 24

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.

Contents

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.

// 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.

To keep your progress and take notes, Log in

My notes

Log in to take notes.

Start typing to search.

↑↓ Esc navigate · open · close