Beeminder Forum

I sometimes forget whether I didn't complete my goal or I just didn't log the data.

For example, this happened a few times with teeth brushing. So I did this:

But even THAT didn’t work! There was a day that didn’t have a log for teeth brushing, but I thought I must have brushed my teeth!

What do you do in these cases? Mark done because you think you probably did it? 51% sure?
80% sure? 95%?

Well I went ahead and marked it done (I went to court, presented my evidence, then I ruled in my favor).

But I also created a meta beeminder goal, to log my teeth brushing before brushing my teeth.

[EDIT: I removed the meta goal and changed/fixed my main goal after the discussion below.]


Oh! This also happens to me with brushing teeth and taking medicine habits, but since I don’t beemind those (I use a standard habit tracker:, the consequences of not putting a data are very small. So I go with “If I don’t remember, I’ll assume I didn’t do” - it’s some kind of punishment (albeit very small, in my case) for not entering the data right when the memory was fresh.

What I don’t understand is how creating this meta goal will help you. If you forgot to enter the data to the original goal, you will also forget to enter the data in this meta goal.


Thanks! Discussing this really helped me a lot! I made some changes.

First, the idea of the meta goal is that would put an extra penalty on not logging before i brush my teeth. If I brush my teeth without entering the meta goal, then I have to start all over again, enter my meta goal, and then brush my teeth. Just brushing my teeth isn’t good enough.

But that does raise a good point, that I need to put in the description or fine print, to update my teeth brushing goal as

“brush teeth immediately after logging. Brushing teeth before logging doesn’t count.”

Actually, that change should be good enough on it’s own! So that’s what I’m going to do. I have changed the goal slug to /BrushTeethAfterLog to remind me of this fact. Removed the meta goal, and now /BrushTeethAfterLog includes the additional requirement.


Brush Teeth, Floss, Waterpick. Must be done AFTER logging in beeminder

Fine print:

Logging in beeminder of teeth brushing must be done before the teeth brushing. If done after teeth brushing, then it doesn’t count. That means that if I come across an incident where I think I brushed my teeth, but there’s no data for it, then that is considered a fail by definition, and can lead to a lost data point or derailment.


This thread stuck in the back of my mind. Mostly because I didn’t like how you ended up with a solution where you have to log the thing before doing the thing.

[A Few Moments Later]

What if you started a timer before you brushed your teeth and submitted the data point only when stopping the timer? If you forget to add the data point, you will be reminded when seeing the still running timer. By the way, I’m just thinking aloud here, because if it works for you, there’s nothing wrong with it, of course. Hope you don’t mind the imposition.

This can be implemented quite neatly in emacs + beeminder.el (h/t @mbork). Create a teeth brushing task:

* TODO brush teeth
  SCHEDULED: <2021-11-05 Sat .+1d>
  :STYLE:    habit
  :beeminder: done
  :slug:     brushteeth
  :comment:  time

Clock-in on the task. Brush your teeth. Mark the task as DONE. This stops the timer, submits the data point to your graph and re-schedules the task for the next day. If you for any reason don’t stop by your laptop to stop the timer, emacs will shout at you later and you will remember that you did in fact brush your teeth. If there’s no data point and there’s no running timer, you forgot and should derail.

If you start the timer and then the doorbell rings, hopefully you would remember to cancel or restart it, so you aren’t tricked into thinking you brushed your teeth.


What if the timer was the datapoint? Either because your goal is about spending ‘enough’ time brushing, or because you’re premium and have set the aggregation method to nonzero

I believe that both the iOS and Android apps have built-in timers.