Behavioral effect

Default effect

People tend to stick with whatever option is preselected, so the default often decides the outcome for most users.

Default effect The same organ donor question shown two ways. When the box starts empty, 42% agree to donate. When the box starts ticked, 82% agree. Doing nothing decides the outcome. Same question, two defaults Agreed to be a donor Box starts empty I want to be an organ donor Do nothing and the answer is no Box starts ticked I want to be an organ donor Do nothing and the answer is yes 42% 82% Nearly double, same question Johnson and Goldstein, 161 people asked online
Johnson and Goldstein (2004): asked the same question, 42% agreed to be an organ donor when the box started empty and 82% when it started ticked.

A default is the option that takes effect if the user does nothing: a pre-ticked box, a preselected plan, a toggle that starts on. Because changing it takes a decision, a little effort and sometimes a feeling of going against advice, most people leave it as it is.

Johnson and Goldstein asked 161 people online whether they would be organ donors; 42% agreed when they had to opt in and 82% when being a donor was the default, about twice as many. Madrian and Shea found that 401(k) participation at a US firm jumped after automatic enrollment, and employees also stuck with the default contribution rate and fund. A 2019 meta-analysis of 58 datasets (Jachimowicz and colleagues) confirmed a reliable average effect but with very large variation between studies; defaults worked best when they read as a recommendation or felt like something people already had.

On onboarding screens and paywalls the preselected option is the one most people will end up with: the selected plan, the trial length, the notification setting, the newsletter box. That makes the default a product decision, not a layout detail. A default that serves the user (reminders on for a habit app, the lowest spend cap) reduces effort; one that serves only the business (a pre-ticked newsletter, the priciest weekly plan) gets accepted now and resented later.

How to use it

  • Preselect the option you would recommend to a typical new user, and be able to say why in one line.
  • Pair a preselected plan with its comparison (price per week or month, savings) so the default is not the only option that is easy to read.
  • Keep defaults for anything that costs money, shares data or sends marketing in the off position until the user turns them on.

Watch out

  • Preselecting the most expensive plan or a pre-ticked marketing box: it converts, but users feel tricked and churn or complain.
  • Assuming a default is neutral. If you have to pick one, own it as a recommendation and test it like one.

Related

Default effect in real products 29 working · 7 not

Slack: Free trial as the safe default Slack (working) Free trial as the safe default The green primary CTA is the low-risk path, so no one bounces. Math Zen: Reminders on by default Math Zen (working) Reminders on by default The habit loop is opt-out, and "gentle" softens the ask. Cursor: Lowest preset selected Cursor (working) Lowest preset selected $50 is preselected, the safest default for a first-time overage. Cursor: Upgrade is the Enter key Cursor (working) Upgrade is the Enter key "Upgrade to Pro+" is highlighted with the Enter hint, while spend limit takes Cmd+Enter. OpenAI API: Small default amount OpenAI API (working) Small default amount $10 is prefilled, low enough to try without thinking twice. OpenAI API: Alerts set up already OpenAI API (working) Alerts set up already "80% usage alert" and "100% usage alert" are there by default. Supabase: Paid and free fix together Supabase (working) Paid and free fix together "IPv4 add-on" sits next to "Pooler settings", so users choose instead of being pushed. Snowflake: One-click Connect Snowflake (working) One-click Connect A single primary button replaces a full partner signup and warehouse setup. Databricks: Email prefilled Databricks (working) Email prefilled Your Databricks email carries over, so the partner account starts with known identity. Databricks: Email prefilled Databricks (working) Email prefilled Same as the dbt flow, the Fivetran account starts from your Databricks identity. Count: Access URL prefilled Count (working) Access URL prefilled "cloud.getdbt.com" is filled in, so most users only need the token. Peliqan: Name prefilled Peliqan (working) Name prefilled Connection name defaults to "BigQuery", one less decision. Peliqan: Default port filled Peliqan (working) Default port filled 5432 is already in the Port field. Peliqan: Connector-specific default Peliqan (working) Connector-specific default Port is 5439 here, not the Postgres 5432, so the template adapts per database. Peliqan: Port 1433 prefilled Peliqan (working) Port 1433 prefilled The SQL Server default port is filled in. Peliqan: Secure default Peliqan (working) Secure default "Enforce ssl" is on, so the safe option needs no action. Slack: One-click Tidy Up Slack (working) One-click Tidy Up The green primary button makes the clean-up the obvious next step. Linear: Join first, create second Linear (working) Join first, create second The default tab is joining existing teams, which avoids duplicates. Linear: Already added to Engineering Linear (working) Already added to Engineering A check and "Leave" show you were placed in the biggest team for you. Linear: Pre-filled status rules Linear (working) Pre-filled status rules Each PR event already maps to In Progress, In Review or Done, so nothing needs configuring. Synthesia: Annual on by default Synthesia (working) Annual on by default The toggle starts on "Annual Discount", so the lower per-month prices show first. Podcastle: Keep as primary Podcastle (working) Keep as primary "Keep Essentials plan" is the filled, coloured button. Nibble: Middle plan preselected Nibble (working) Middle plan preselected "Most popular" 3 months is ticked by default, so most people never compare. Tinybird: Region filled in Tinybird (working) Region filled in europe-west3 is preselected, so there's nothing to research. Tinybird: Auto-detect by default Tinybird (working) Auto-detect by default Schema guessing on and delimiter "Auto", so most files just work. Tinybird: Recommended badge Tinybird (working) Recommended badge The yellow badge and green border point to Professional. Holistics: Type and port pre-filled Holistics (working) Type and port pre-filled PostgreSQL carried over and port "5432" already set. Holistics: Sharing on by default Holistics (working) Sharing on by default Pre-checked so analysts can build reports right away. Peaka: Annual by default Peaka (working) Annual by default "Annually" is pre-selected. Dazzle AI: Newsletter pre-ticked Dazzle AI (not working) Newsletter pre-ticked The "Daily Dazzle" box is checked by default, so most people sign up without choosing to. Printer app: Weekly default, no comparison Printer app (not working) Weekly default, no comparison $9.99/week is preselected while Quarterly ($44.99, about $3.46/week) shows no savings, so the cheaper plan looks more expensive. Photo editor app: Weekly trial by default Photo editor app (not working) Weekly trial by default "3 Days free then $5.99/week" is preselected, which is about $311 a year. OpenAI API: Empty means no cap OpenAI API (not working) Empty means no cap "Leave this field empty for no recharge limit" makes unlimited the default. Count: Off by default Count (not working) Off by default The load-saving DuckDB option ships switched off, so most users never get the benefit. Peliqan: Required port, no default Peliqan (not working) Required port, no default Unlike Postgres and Redshift, Port is required and empty. Retool: Domain joining off by default Retool (not working) Domain joining off by default "Allow teammates in the metabase.com domain to join" is a small unchecked box, which creates the next one-person org.