Beeminder anti-habit-forming

While checking my list of goals and thinking how I can get my safety buffer up to a decent level is certainly a strong habit by now, most of the things that I beemind are not, even though I’ve been doing many of them for months now – and in fact some of them have been habits at one time or another but aren’t right now. I think for most of my goals, it would be a good thing if the action of starting to do them was a habit – even if the thing itself is not. That would let me do more with less mental effort.

Beeminder actually is ANTI-habit forming to some extent: I’ll go to do something automatically, then I’ll think first to check my goals, and notice that that either my target safety buffer is OK (7 days or more) or perhaps just isn’t actually about to derail, and I’ll think hey, I don’t need to do that today (in fact it may be that it happens the other way around more often: I’ll have checked early in the day where I am with goals, so I’ll know I can dismiss the prod of a habit when it crops up). That does reduce consistency and frequency, which we hear are important for habit formation. Of course in the bigger picture, for avoiding falling off the wagon entirely, or letting one crisis mess up everything else you’re trying to be consistent about, beeminder helps a lot. That’s certainly a positive thing, including for habit formation.

So, I’m thinking how to better install or reinforce habits while using beeminder. Here are some that occur to me, most of which I’m not really doing yet.

  1. Set your goal’s target to 7 per week “don’t-break-the-chain” style, or just using a conventional DBTC system for a while for that. I would say after a gentler period of acclimatisation if there’s anything remotely aversive about the habit, to avoid setting yourself up to fail.

  2. Something I’ve done accidentally that has helped a little: I start my goals with no safety buffer (or maybe a day or so’s buffer). This does force you to do the goal consistently for a little while at least, while you try to build up to a decent safety buffer. It also has the benefit of stopping you piling on too many goals too quickly.

  3. I was thinking maybe an aggday function that rewards consistency, but aggday functions have no memory of previous days. The kind of rule I have in mind is: for doing the goal today, if you also did it yesterday, you get 3 points, otherwise, you get 2. Maybe there’s another type of function in there that allows hooking this? Say a function that takes the data for the past week and returns the number for today. I guess that could run instead of the aggday function, or it could run after the aggday. Of course you could always simulate this by hand.

  4. With the trigger-action-reward model in mind: Beemind doing the action IN RESPONSE to the trigger. If you do it some other time, it doesn’t count.

Have you tried any of these? Which worked / didn’t work?

What else could I do?

1 Like

It feels to me like your premise that beeminder might be anti-habit is interesting, but your possible solutions are just to slightly change your use of beeminder. I don’t think that’s going to change things in a qualitative way.

Might I suggest the simplest dumb idea? Could you maybe try to pause one goal - possibly one that’s not hugely important to you - and try to make it a habit with traditional habit-forming techniques?

See how that goes, and you might at least gain some more insight into the problem you’re facing.

1 Like

Yeah, I think I’d phrase it, based on the trigger-action-reward model, that Beeminder replaces the trigger and the reward with “Beemurgency!” and “not getting charged,” thereby relieving the pressure to find a different trigger and reward that would work apart from Beeminder. So, yes, the fact that you’ve done great with something using Beeminder does not mean it will stick once you archive the goal, since doing so will remove that habit’s trigger and reward.

You could figure out what meta activities you need to do to build habits, and beemind the meta activities instead of the habits directly.


Check out this script which sort of turns Beeminder into a daily task list


Seems to me it’s not Beeminder that’s anti-habit-forming, it’s increasing your safety buffers that’s anti-habit-forming.

Isn’t that the whole point of increasing your safety buffers? If you want larger safety buffers for a certain task, doesn’t that mean you don’t want that task to be a daily habit?

Conversely, suppose you want a task to be a daily habit. Seems to me the rate for the associated beeminder goal should be 7/week (like you suggested in your point 1) and also set it so you can only record a max of 1 per day - in other words, make it impossible to have a safety buffer.

If your goal rate is less than the actual rate that you want to do the task, Beeminder will encourage you to do other things once you’re past the goal rate.

Some people have found encouragement in changing the colors so all the goals turn green - you could also try to motivate yourself to accumulate more and more buffer (if you’re allowing your goals to have buffer, that is)

Check out: Colors More Motivating Than Money? and Feature Request: Color-ratchet

Why do you want things to be habits? The way you’ve set it up, you’re now doing more urgent tasks instead of habitual ones, which seems better to me.

Also, there’s some debate on whether habits even exist as such: Do habits exist?


Sure, that was my first thought too, and in you’ll see from suggestions 1. and 4. that I do have in mind the sort of thing that I imagine you’re referring to as “traditional” habit forming techniques. In fact my “solution 1” does suggest not using beeminder.

But, this is the beeminder forum <0.3 wink>, and I’m interested in exploring possibilities around that too.

1 Like

Could you give an example? How do you see that compared to my option 4.? (I’m suggesting there to beemind when I do trigger + action – just trigger or action alone would not count)


My first thought would be to beemind keeping a habit design journal. Using the journal, you could:

  • Identify cues and rewards that you’ll work to tie to a desired behavior.
  • Review previous habit designs to keep them fresh in your mind while building the habit.
  • Evaluate the effectiveness of your designs and tweak cues and rewards as necessary.

If I were you I might beemind time spent with the journal (in x minute blocks), or perhaps just the number of sessions regardless of how long or short. I’ve found myself using the non-zero agg function with a slope of about .9 for routines like this I want to do (almost) daily.

1 Like

Oops, I thought I’d included this option (permanently low safety buffer) in 1. / 2., but I see I didn’t.

I don’t think so: if I were using beeminder almost as a DBTC app (which is how I’m thinking), then I still don’t think I want no safety buffer, because I think at least with goals I want to do daily, that almost guarantees derailing a bit too quickly, risking that derailing becomes “normal”. I feel like a good situation is typically one where I’m basically doing the goal every day with very few exceptions, but if I miss one every few weeks, I don’t derail.

So maybe I want “max safety buffer” set to 1 day…

In fact, right now my favourite option to try is my option 4. – beemind trigger + action – in fact I kind of have at least one goal like that already: my “first thing” goal is to do what I planned the previous day as the first thing I do after morning routine. The trigger there is finishing the usual morning routine: shower etc.

Great question why I want them to be habits: as I say, one reason is that I think I’ll do more that way, and with less “willpower”. Also, habits are just low-overhead: you don’t have to look at a screen or think at all to do them. Another is harder to express: I feel habits give me a chance to better exploit implicit knowledge about what it is I’m trying to achieve. I doubt I’ve communicated that with that terse sentence… but I think it’d take me a while to write it down in an understandable way (perhaps I should do that: maybe it’ll turn out to evaporate – but maybe it’s best for me to just try it first).

I love this! I don’t think I would have thought of it myself, and yet I have somewhat similar goals already (and finding them useful), and also have been thinking I should do more journaling.

I might have to try it.

1 Like

Here’s another example of a trigger one might beemind, albeit for breaking a habit. Let’s say you wanted to beemind “not snacking after dinner”. You could beemind that actual thing. Or you could analyse your behaviours/habit triggers and realise that cleaning your teeth within 30 mins of dinner usually results in you not snacking after dinner. So you beemind “cleaning your teeth after dinner” instead of “not snacking”.


Opportunistically using this more-than-tangentially-relevant and not-hideously-old thread to once again plug a feature I have wanted for as long as I’ve used Beeminder:

A different color to mark goals with 8 or more days of buffer.

I love how Beeminder lets me prioritize my day based on what needs attention. But I want that demarcation to come on the other side of the akrasia horizon, not at 3 days.

Variants On This Idea

  • User-settable 5th color
  • User-settable X days of buffer where color 5 kicks in
  • No 5th color, but a user-settable X days of buffer for the boundary between blue and green

Hi Grayson! We’ve missed you! What if it were just a subtly different shade of green? That could potentially be easy to sneak in.

I don’t think I want it to be user-settable. (draft of a mini-screed on that that I intend to turn into a blog post)

If “subtly different green” would be super unsatisfactory, what distinct 5th color might make sense as the “totally safe” color?


RED beemergency, derailing in <24h
ORANGE derailing tomorrow
BLUE 2 days of safety buffer
GREEN 3 or more days of safety buffer (eg, green on Friday means you’re safe till Monday)
??? 7 or more days of safety buffer means you’re immune to the akrasia horizon!

(Immunity to the akrasia horizon means that if something comes up you can just immediately flatten your road. It takes a week for the flattening to take effect but by the time you run out of safety buffer you’ll have reached the flat spot.)

I’ve argued for color-ratcheting, the ability to change the coloring scheme to make “red” mean whatever your current level of buffer is.

I don’t think @dreev’s screed applies here, for a couple reasons: first, you’ve said it doesn’t apply so much to display preferences, and setting a color is a display preference. Second, color-ratcheting is more like ratcheting than adding a new setting - we already have different colors for the different days, and color-ratcheting is just adjusting those already existing settings to your current situation.

Oooh, nice!

Much as I like the idea of being able to configure it all, the flip side is friction. More ways to fiddle with getting my goals Set Up In That Special, Perfect Way That Uniquely Captures The Unique Essence of Each And Every Goal. This is a known trap for me.

Gray. Seriously. Gray pretty universally means “here’s stuff you don’t need to consider while you’re reading this.” In Beeminder context that translates to “here’s stuff that’s completely safe from life blowing up on you in a way that means you have to drop all your goals and run put out the fire.”

(obviously, you’d still have to stop long enough to archive gray goals or schedule a break, but beyond that you could just drop them cold)

Another tack could be to add a horizontal line demarcating this transition in sorted-by-deadline view.

(Whether it’s a fifth color or a demarcating line, I’d want it in both the browser and the iOS app.)


I feel like this is ripe territory for creating a user script now that graphs are just inline SVGs. I don’t think you could do it with just CSS, but I think you definitely could do it with JS.

If Beeminder added the amount of buffer for each data point to a data attribute on the <circle> elements, it would probably make this a lot easier.


I’d also like to request a mango color :mango: :stuck_out_tongue:

1 Like

grayson, I’ve been playing around with some wireframes and I included a literal akrasia horizon divider line. +1 Good idea :slight_smile:


I also played around with colors really briefly, since I’m deep in that part of the code anyway lately. I’m kind of almost sold on this gray(son) idea. An akrasia horizon line on the dashboard sounds like a no-brainer either way. [internal gissue link]

(And eventually it could be cool to let people totally customize the colors of everything, but that’s not a quick thing.)


Oh! I just realized that what I’m asking for isn’t 100% clear from what I’ve said. I only want this extra akrasia-horizon demarcation in dashboard view. I’m fine with the individual goal pages staying the way they are. Which maybe makes this even easier to sell Danny on?