Habit Stacking

Canonical
FoggWendel

Confidence

76%

Cognitive Load

Low

Evidence

production validated

Impact

feature

Ethical Guardrail

Make stacking fully opt-in and editable. Never create competing stacks for the same anchor. Let users choose their own anchors.

Design Intent

New habits stick best when they are attached to existing, automatic behaviors. Habit Stacking creates the formula 'After [current habit], I will [new habit]'. It borrows the reliability of an established routine to bootstrap a new one.

Psychology Principle

New habits stick best when attached to existing, automatic behaviors rather than floating as standalone tasks.

Description

Create the formula 'After [current habit], I will [new habit]' to bootstrap new behaviors onto existing reliable routines.

When to use

Any feature where long-term behavior change is the goal and the user has existing daily routines to anchor to.

Example

Strava Run Logging: Anchor (After I finish a run) + Tiny Action (Tap Log details) + Celebration (Instant streak update and confetti).

Autonomy Compatibility

Suggest

Behavioral Objective

Users automatically perform the new micro-habit immediately after their existing anchor habit.

  • Faster habit formation with almost zero extra effort
  • Higher long-term adherence
  • Natural chaining of multiple positive behaviors

Target Actor

role

Everyday user

environment

Predictable daily routines

emotional baseline

Busy but open to small positive changes

ai familiarity

medium

risk tolerance

low

Execution Model

1

anchor_identification

Find a rock-solid existing habit the user already performs daily.

Anchor is inconsistent or too infrequent.

2

tiny_action_definition

Define a 2-second-or-less new behavior that follows the anchor.

New action still feels like extra work.

3

stack_reinforcement

Make the connection visible and rewarding.

User performs anchor but forgets the new action.

Failure Modes

Anchor habit changes or disappears

Provide multiple stack options and let user choose

micro

Stack becomes too complex over time

Keep every layer under 30 seconds

micro

User feels the stack is forced

Make stacking fully opt-in and editable

micro

Multiple stacks compete for the same anchor

Limit to one primary stack per anchor

feature

Celebration is missing

Always include immediate positive feedback

micro

Agent Decision Protocol

Triggers

  • Goal is long-term behavior change
  • User struggles with remembering new actions
  • Current habit feature has high initial uptake but low retention

Escalation Strategy

L1: Diagnose anchor reliability and stack completion via behavioral_signals

L2: Nudge -- suggest a stronger anchor or simplify the stacked action

L3: Restructure -- redesign the stack with a different anchor and celebration

L4: Constrain -- limit to one stack per anchor to prevent overload

L5: Yield -- flag for human behavioral designer review

Example

User wants to meditate daily -> agent suggests 'After I finish my morning coffee, I will open the Calm app and take one mindful breath.'

Behavioral KPIs

Primary

  • % of users who complete the stacked action 7 days in a row
  • Time to automatic performance
  • Number of successful stacks per user

Risk

  • Stack abandonment rate after day 3
  • User reports of 'too many things to remember'

Trust

  • User-reported ease of adopting new habits
  • Autonomy Dial usage when agent suggests stacks

Behavioral Signals

anchor_missed

anchor_triggered=true AND stack_completed=false AND time_since_anchor > 60s

anchor_detected=true AND new_action_started=false

stack_effective

anchor_triggered=true AND stack_completed=true AND time_to_complete < 10s

chain_extended=true AND consecutive_days >= 7

stack_fatigue

stack_completed_rate < 30% AND days_since_start > 7

user_edited_stack=true OR user_deleted_stack=true

Decay Monitoring

Revalidate when

  • User daily routines shift significantly
  • New app features create stronger anchors
  • Product introduces competing habit features

Decay signals

  • Rising stack abandonment after week 1
  • Users editing or deleting stacks frequently
  • Feedback that 'the stack no longer fits my day'

Pattern Relationships

Related Patterns

Canonical Implementation

Strava Run Logging: Anchor (After I finish a run) + Tiny Action (Tap Log details) + Celebration (Instant streak update and confetti)

Telemetry Hooks

anchor_triggeredstack_completedchain_extended

Tags

habit-formationfogg-coreagent-ready