habitsbehavior change

Habit Stacking

Habit stacking is a behavior change technique where you link a new habit to an existing one, using the old behavior as a trigger for the new.

SamuelSamuel

Habit stacking is a technique for building new habits by attaching them to behaviors you already do automatically. The formula is: "After I [current habit], I will [new habit]."

The point of the formula is not the sentence — it is the anchor. A stack works when the anchor behavior is so reliable that it functions as an alarm you never have to set. Everything else about the technique follows from how good that anchor is.

Why borrowing a cue works

A new behavior normally has no trigger. You have to remember it, which means it competes with everything else in your head at 07:00. Stacking removes that competition by hanging the new behavior off a trigger that already fires on its own — the completed anchor habit becomes the cue in the cue-routine-reward loop.

That also explains the technique's ceiling. Stacking is excellent at solving when and terrible at solving hard. If the new behavior takes 40 minutes of effort, no anchor will save it.

Where the term comes from

The phrase "habit stacking" comes from S.J. Scott's 2014 book of the same name. The underlying mechanic is older: BJ Fogg taught it as anchoring in his Tiny Habits work at Stanford, and James Clear's chapter in Atomic Habits is what made the "After I…, I will…" wording ubiquitous. Academically it is a special case of an implementation intention — an if-then plan where the "if" happens to be a behavior rather than a time or place.

Two misuses are worth naming:

  • Aspirational anchors. "After my morning workout, I will meditate" is not a stack if the workout itself is still shaky. You cannot anchor to something that floats.
  • Renamed to-do lists. Writing six behaviors in a row and calling it a stack does not make them automatic. A stack is one link at a time.

A stack that held, and the one that didn't

Priya, a nurse working three 12-hour shifts a week, wanted to start a Spanish habit. Her first attempt was "After I get home from work, I will do 15 minutes of Duolingo." It lasted nine days. Coming home was not one moment — some shifts ended at 19:30, some at 21:00, and the behavior after it was always different.

Her second attempt used a fixed, physical anchor: after she fills her water bottle at the kitchen sink and screws the lid on, she does one Duolingo lesson at the counter before sitting down. She fills the bottle every morning at roughly 06:40, shift or no shift. The lesson takes about four minutes. She left the phone on the counter charger overnight so it was already in reach.

Six weeks later she was logging the lesson on 38 of 42 days, including two days she did it at 22:00 because she had slept through the morning. The behavior did not change between attempt one and attempt two. Only the anchor did.

Note the two design choices that carried it: the anchor is a single discrete action with a lid-click at the end of it, and the new habit is small enough to satisfy the two-minute rule.

Testing an anchor before you commit

Run a candidate anchor through four questions:

  1. Did it happen every day last week? If you cannot say yes from memory, it is not an anchor yet.
  2. Does it have a clear end? "Making coffee" ends when you set the cup down. "Working" does not end.
  3. Does it leave you in the right place? Guitar practice cannot anchor to brushing your teeth if the guitar is downstairs.
  4. Does it leave you in the right state? Do not stack anything reflective onto a moment you are already rushing.

For the full build process, worked examples by category, and how to chain several stacks into a routine, see the habit stacking guide. This page is the definition; that page is the method.

Setting up a stack in Keel

Keel has no "stack" object, and it does not need one — you encode the anchor in the habit itself.

  • Put the anchor in the habit name. Name it "After water bottle — 1 Spanish lesson," not "Spanish." The name is what you read on the Today screen, so it should tell you where the behavior belongs, not just what it is.
  • Schedule it to the anchor's clock, not your ambitions. Set the time of day to when the anchor actually happens. If the anchor drifts across the day, use a part-of-day slot instead of a fixed reminder so a late anchor still counts as on time.
  • Keep the target at one. Set the daily target to the smallest version. Expand the behavior later; do not expand it while the link is still forming.
  • Read the misses, not the total. When a stack fails, the log usually shows clustered misses on particular days — that is an anchor problem, not a motivation problem. Scattered single misses that you recover from the next day are fine, which is what bounce-back rate is there to show you.

If a stack breaks twice in the same way, change the anchor rather than trying harder against the same one.

  • Habit chaining — several stacks run back to back to form a routine. Stacking is one link; chaining is the sequence.
  • Implementation intention — the broader if-then form, where the cue can be any situation. Stacking is the subset whose cue is an existing habit.
  • Cue — in the habit loop, the trigger itself. In a stack, the completed anchor habit is the cue.
  • Habit pairing / bundling — used loosely for the same mechanic, though "temptation bundling" specifically means pairing a habit with something you enjoy, which is a reward tactic, not a cue tactic.
Related

Related Terms

Put these concepts into practice

Keel tracks your bounce-back rate instead of streaks, helping you build resilient habits backed by science.