A "Gradual Commitment" Productivity System


For years I’ve hopped from one productivity system to another:

  • Seinfeld Chains
  • GTD
  • Autofocus
  • Final Version
  • Mini-habits
  • Unscheduling
  • The One Thing
  • Weighted random sampling
  • HabitBull
  • Beeminder
  • and many, many more

I even designed my own productivity software. “HabitShaper”, which is now abandonded. And “Stride”, a task manager based on how CPU’s juggle and complete tasks, which *ahem* I never completed.

All this leap-frogging has just been perfectionism, of course. I know that more important than which system I choose is whether I stick to any system long enough to see the benefits. Seneca said it best:

“Nothing hinders a cure so much as frequent changes of treatment; a wound will not heal over if it is being made the subject of experiments with different ointments; a plant which is frequently moved never grows strong. Nothing is so useful that it can be of any service in the mere passing.”
Seneca, Letter II, “Letters from a Stoic” (c. 65 AD)

But how bad has it been for me, really?
Well, I recently found my New Year’s resolutions from when I turned 15:

There was a lot for me to parse in this list, including my atrocious handwriting. But one thing was clear to me:

Writing short stories regularly has been a goal of mine for decades. Yet in all that time my longest streak has been around 3 months.

It wasn’t until 2017 that I finally created a system I could stick to. I’ve now been using it for the last 18 months, which is 6 times longer than any other I’ve used or designed. And it has worked despite living through one of the most difficult times we’ve had as a family.

How did I finally manage to achieve consistency?
The key was realizing that I over all these years, I was focusing on exactly the wrong thing

The Complement to Consistency

“Although people deeply involved in a system often know intuitively where to find leverage points, more often than not they push the change in the wrong direction.”
Donella H. Meadows, “Thinking in Systems : A Primer” (2015) 1 .

In my constant quest for consistency, I was definitely pushing too hard in the wrong direction. What I needed wasn’t more consistency, it was less of it!

In other words, what I needed was more flexibility.

In every other system I’d tried, the only way to change my mind was by admitting defeat and starting over, or by abandoning the system altogether. In other words, to change you have to go through a system failure : either break a streak or give up on the habit.

Doing that lowered my confidence in that particular system, and in myself. Worse, I’d been in this cycle so many times that I eventually became afraid of even starting a committment (for fear of failing yet again).

Perfectionism aside, it’s also entirely rational to want a system to be flexible. I’ve been through a great number of life changes, and I know that sticking to old behaviors and goals isn’t always sensible. Otherwise we might get stuck in “foolish consistencies”:

“A foolish consistency is the hobgoblin of little minds… Speak what you think now in hard words, and tomorrow speak what tomorrow thinks in hard words again, though it contradict every thing you said today.”
Ralph Waldo Emerson, “Self-Reliance” (1841)

But isn’t a habit-forming system that allows you to change your mind at will a total contradiction?
Not necessarily. With the right design, we can have both.

Design for Change

To have both flexibility and consistency, simply introduce a delay between the decision to change and the act of changing.

In the old mode, I would make a lot of impulsive changes based on “shiny object syndrome”. Introducing a delay between decision and action removes the instant gratification of changing.

For example, say that I’ve been chugging along in my writing, and suddenly I discover a new programming language. I try it out and feel immensely powerful. I begin to doubt my identity as a writer:

“Do I really want to keep writing every day? It’s clear to me now… I’m a programmer at heart!”

The system has an answer for me:

“Sure, you are free to quit your writing habit and start a programming one instead. But only if you wait 24 days.”

So now, in order to drop my writing habit, I’d have to believe for 24 days in a row that I’m deriving no value from my daily writing. This neatly resolves the tension : I can change, but I must wait. If the desire to change is a result of “shiny object syndrome” rather than any inherent issues with my current habit, I end up keeping the habit. If it turns out that it actually is a foolish consistency, then I just wait the prescribed number of days and I’m off the hook guilt-free.

As we’ll see later, this Delay Date can be designed to start out small and grow slowly, allowing you to commit gradually.

For more ideas on “change delays”, I encourage you to check out Beeminder’s posts on what they call the “Akrasia Horizon”, which is where I first learned this technique.

Design for Failure

To handle failure, allow a fixed number of failures within a given timeframe.

Before having Allowed Failures, any slip-up would feel like a total system failure. The longer your perfect streak of success is, the harder you’ll fall once it ends. With allowed failures, slip-ups are expected and handled gracefully.

By pairing this with the “Change Delay” idea above, we can also grow the timeframe slowly. That means your habits and rules are lenient at first, but become more strict as time goes on.

An important element of this, as we’ll see, is to design it so that once you recover from a failure, there is no record of it going forward.

Why This System Works

I’ve included a complete description of the system below. But before getting into the specifics of How the system works, I’d like to explain Why.

  1. Allows you to Commit Gradually. The Change Delay Date is pushed forward every day, which is designed to keep you committed to your habit for as long as you’ve already committed to it. If you’ve been committed for six days, then you’re on the hook for the next six days. If you’ve stuck with a habit for 45 days, you’re stuck with it for the next 45 days. To preserve some long-term flexibility, I cap this at 3 months 2 .
  2. Add new habits easily. Related to the above, there’s no fear of commitment to prevent you from experimenting with new habits. Habits start out with a very short committment time, so you can try new things without sacrificing the consistency of the habits and rules that are working well for you.
  3. Capped Failure Rate. Regenerating the “Allowed Failures” gives you the benefit of streaks (you can’t fail too often in a row), without the main drawback (all-or-nothing thinking).
  4. Present-focused. Each day, your habit work only depends on looking at the previous day’s data. This keeps your focus on what matters (i.e. what you need to do today), and not on irrelevant and discouraging information such as how long the streak you just broke was.
  5. Learn from Mistakes. Because failures are both allowed and expected, you can use your mistakes as learning opportunities. Whenever I fail one of my habits, I try to figure out why, and take steps to prevent that same type of failure in the future.
  6. Handwritten. This makes it simple, portable, device-independent, and reliable. It’s also flexible, so you can add important daily reminders/affirmations/quotes, as I do. Finally, it’s limited in size, so you are forced to keep your list small and manageable.
  7. Meta-system. It’s simple enough that it can serve as the scaffolding for anything else you want to try. I’ve named the system after the Kernel of an operating system, but in fact a “bootloader” might be a better metaphor, since it’s a simple system that can boot up more complex ones.

It’s not perfect, of course. But I have no reason to switch to a different system anymore, because this one can contain any other system within it. The goal, after all, is to stick to something long enough to start getting benefits from it.

So far I’ve been calling this a “productivity system”. But it’s more than just getting things done. It’s a way to believe in the promises you make to yourself. It’s about trusting yourself.

With self-trust you can stop worrying about how to keep your promises, and focus instead on deciding what promises you want to make.



  1. For example, economic growth is important, but we should aim for less of it. This book is great for thinking more broadly about the systems we live in, and for gaining some humility about how to change them. Leverage points to improve systems do exist, but they can take a great deal of effort to find, and often require us to do the opposite of what we’d expect.
  2. Capping the Delay Date to 3 months means that if I decide a habit or rule isn’t working for me at all, then the longest I have to bear with it is 3 months. It’s been exceedingly rare for this to happen, because habits that reach the cap of 3 months have proved their value for at least that long.

The “Kernel Card” System


The Kernel Card system is the core of my productivity operating system. It’s simple, uses only pen and paper, and takes me around 5 minutes a day to maintain.

Every morning:

  1. I take yesterday’s card as reference…
  2. and copy the habits over to a blank card…
  3. along with any changes that I’m allowed to make.

Here’s an example of my card from 2019-07-05:

The key to this, and what makes it so much more than a daily habit checklist, is the “metadata” that each habit carries with it:

[ ] 10 pushups or more  (8-6,   2/3   :   7-30)
   |------------------| |---|  |---|     |----|
    Habit Name          Delay  Allowed   Failure
                        Date   Failures  Recovery

Habit Name : A short but unambiguous description of what constitutes success for this habit. It should be binary: “Did I do it, or not?”

Delay Date : This is the earliest date at which you can change the habit, or drop it. This date is pushed further into the future every day, as described in “Continuing a Habit” below.

Allowed Failures : The number of allowed failures you have left. This decreases any time you fail, and increases when you are allowed a “failure recovery”.

Failure Recovery : This is the date when you get an allowed failure back. The date is set as the Delay Date of the day when you failed, as described in “Recovering from Failure” below.

System Rules

1. Adding a New Habit

Adding a new habit is as simple as writing it out, and setting the Delay Date to be today + 2, and the allowed failures at 3/3 (or whatever your chosen default is):

2. Continuing a Habit

Every day, copy over the habits that you have, and add 2 to the Delay Date:

That’s +1 because you’ve moved forward a day, and another +1 to push the Delay Date forward.

Once you reach a predetermined maximum (I use 3 months), you can stop increasing the Delay Date, and optionally stop writing it out each day. When I see a long-standing habit with no Delay Date, I know it’s simply “3 months from today”.

3. Allowed Failure

When you slip up with your habit, you mark it with an X, and on the following day copy it over with one fewer Allowed Failure. You also copy over the Delay Date from the day you failed. This becomes the date that you will “recover” from this failure:

4. Recovering from Failure

If you’re copying a habit over from yesterday, and see that one of the Allowed Failure recovery dates is equal to today, then you increase the Allowed Failure count, and remove that recovery date:

5. Dropping a Habit

If you decide to drop a habit, simply copy it over and add drop (current Delay Date) to it:

If a drop date arrives, and the drop note is still there, you can drop the habit:

At any point up to and including the drop date, you can decide to keep the habit. If you do, simply cross off the drop date, and don’t copy it over the next day.

Getting Started

The rules may seem complicated, but they’re easy to internalize and to follow in practice. The core of it simply involves copying the previous day’s card with some minor changes.

It shouldn’t take you more than a minute a day to get started.

If you’re someone who’s hopped from system to system, give it a try:

  1. Grab an index card (or folded sheet of paper), and write the date at top right.
  2. Write [ ] Kernel card by noon (date_in_2_days, 3/3)
  3. Add one other small habit or action you might want to do regularly.
  4. Do the same the next day, but update the dates.

And remember, it’s flexible, so you can always change your mind later :).