Beeminder


Lately I’ve gotten very addicted (in a good way) to Beeminder. It’s a site that allows you to set quantifiable goals, then it tracks your progress on them. If you fall behind on your goal (called “de-railing” in Beeminder parlance), then you can pledge money to stay on track. If you de-rail again, the money you pledged goes to the lovely people at Beeminder to keep the site running, and you can optionally re-commit and pledge a higher amount to try to stay on track the next time.

Both the goal-tracking features and the potential loss of money are highly motivating. You’re allowed seven free goals before you have to start pledging (which seems to be more than most Beeminders track anyway). As I said, I’m a bit addicted, so I’m currently tracking twenty-seven goals. I have a total of $110 pledged, but since May when I discovered Beeminder, I have not paid on a single pledge, because the site has been sufficiently motivating that I have stuck to my goals so far. I did, however, choose to pay for the completely optional “premium” account for a year, because I wanted to support the site even though I’m meeting my goals. If you stay on track with any number of goals, the service is completely free. If you want to track more than seven goals, you do have to pledge money for them, but again, if you stay on track you will never be charged.

If this sort of motivation appeals to you, you may be interested in some of the things I’m tracking. Some are obvious and even built into the site, but others less obvious, since you can track literally anything that’s quantifiable. In the interest of keeping it interesting, I’ll show my progress on most of the goals I discuss.

I/O

Beeminder works best when you have to do the least work to input data. Part of the reason it works so well is that it’s really painless (quite fun actually) to track things in it. There are several ways to do this:

  • Integrated apps: Beeminder integrates seamlessly with Fitbit, Withings scales, Duolingo, RescueTime, and other sites, with more on the way.
  • Website: You can manually punch data in using any web browser.
  • Email: By default, you get a daily reminder about each goal, and you can respond to this to input data. The email reminders are highly configurable and I generally set them to only warn me when I’m in danger of de-railing.
  • API: Because Beeminder has an easy-to-use API, it’s trivial to write code to update your Beeminder data. For example I’ve made a Python script called bmndr which allows you to quickly input data from the commandline.

In my opinion, the ultimate goal is passive monitoring, and in many cases Beeminder achieves this out of the box. For example, you carry a Fitbit. Your Fitbit automatically syncs data to the Fitbit site. Beeminder fetches this data using the Fitbit API. You get a pretty graph and a warning if you’re falling behind on your targets. I try to keep my Beeminder goals as close to this automatic ideal as possible.

The obvious ones

Weight

Tracking weight is the reason that Beeminder was created and the site is a great motivator for losing (or gaining) weight.

My weight since the end of May 2013. The dots are the actual data, green for great, blue for good, orange for risky, and red for over. You can see that I de-railed on the free goal in June, then recommitted pledging $5 which (as of this writing) I’ve not lost. The purple line is the Hacker’s Diet style weighted average, the pink line is the “rosy” view of my weight. The yellow band is the “yellow-brick road” that I’m trying to stay on. The big numbers over the graph show the number of safe days if I stay at the same weight, and also how much I have pledged on this goal.

One of Beeminder’s first integrations was with the Withings scale, and now it also integrates with the Fitbit Aria. I don’t have either, but I do have a Fitbit One which I love, so I just manually input my weight into the Fitbit app on my phone and Beeminder grabs it through the Fitbit API. I may write a script that updates Fitbit and The Hacker’s Diet Online (HDO) simultaneously, or I may just get one of the wifi scales. The HDO partially inspired the original incarnation of Beeminder, and I’ve been using it for a few years. The Beeminder graphs are excellent and at this point have surpassed the HDO for me in terms of usefulness, but I still use the HDO site mainly because of its useful Trend page. I’ve come close to de-railing on weight recently, but have barely managed to stay inside the wrong lane, and as of today, have lost 4.79 pounds with a goal of 4.4 more in the next month or so.

Inbox

I’ve used Mailstrom since it was featured on Lifehacker, and while it’s great for seeing trends in the number of emails in your inbox, I did not find its grade rating particularly useful or motivating. Beeminder has both an “Inbox Zero” goal as well as direct integration with Gmail, both of which are great for getting to the holy grail of being fully caught up with email. The GmailZero goal only tracks read messages, so you can’t lose just from receiving email. You have to read it and let it sit there. Rather than setting zero as a goal, I’ve left it at 25. I really do stay under this limit. I find that the main advantage of having less than a screenful of emails is that it makes it much harder to forgett about important emails.

With Beeminder I can keep my emails at a sensible level without having to do massive clearouts when I reach several hundred, which was how I habitually operated before.

Exercise

Quantified-selfers will probably familiar with various ways of tracking their activity. Fitbit is an obvious use case as you can use Beeminder to motivate yourself to hit your step goals, which I do with my  Fitbit One:

My goal of 10,000 steps (roughly 5 miles) per day.

I also track pullups per day, and the number of times I’ve lifted per week.

Writing

Writing can be tracked in a number of ways. Some people track their daily completion of 750 Words. I’m currently tracking posts on this blog using an IFTTT recipe which tracks this blog via RSS and sends an update to Beeminder when I post something. So the below graph is fully automatic. My goal is to write a post a week which I’ve currently managed (and this post counts as one!).

One blog post per week.

I’m also tracking how often I physically write in a journal. When I was a student, I used to fill notebooks, sometimes in less than a week. Now that I’m working, it takes me several months to fill the exact same notebooks, often with many weeks between entries. I want to write more, so I’ve committed to a very achievable goal of writing anything three times per week. I count it even if I just write a sentence, but often when I think I have nothing to write, the act of writing causes thoughts to flow, so this goal is working well for me.

Pen to paper three times per week.

Reading

I’m tracking reading in a number of different ways. One is a total books read, which I’ve done successfully using Goodreads for the past few years. You can see my results here. I read 17 books in 2011, 30 books in 2012, and I’m on track to finish 36 books in 2013. I made an IFTTT recipe which automatically updates my Beeminder goal when I mark a book as read on Goodreads.

My goal to read 36 books in 2013.

Although Beeminder is good at keeping me on track for this goal, I’m thinking about reassessing it next year, since the number-of-books metric creates an incentive to pick short books. I’m not going to start 2666 or Cryptonomicon this year, and that’s partly because I know their length would cause me to de-rail unless I also threw in short books.

I also run a book club, so I’ve just started tracking my progress  on individual books to ensure I finish them by the meeting. To this end I’ve created a “bookclub” odometer goal which uses Kindle locations. The way this works is that I set the goal date with the location length of the Kindle book. Then Beeminder calculates a road for me to finish on time. I then update Beeminder each day with my current location. Once I finish the book, I’ll report a 0 and this counts as an “odometer” reset, which means I can start from on my next book and report the page numbers or locations from that. As you can see I tend to cut it pretty close:

This goal shows my progress in pages (really Amazon Kindle location) for finishing my book in time for my monthly book club.

Since discovering this “odometer” mode for Beeminder, I’m going to set my Goodreads goal to a more modest 24 books next year, and probably also track my overall progress using Kindle locations and page numbers, to encourage reading longer books.

I’ve also set a few other reading goals that are not related to books. Since (if you can’t tell) I’m a big fan of Beeminder, I set myself a goal to read every post on their fantastic blog. This shows how Beeminder can be useful even for small, short-term goals.

An achievable goal: read all the blog posts on the Beeminder blog in a week.

I have used the great app Pocket since it was called Read It Later to save articles I come across. It saves a list of web articles you want to read, syncs the list seamlessly across devices (allowing offline reading), and strips distracting formatting and content. Since it has an API, it can also be integrated into Beeminder using this IFTTT recipe, although Beeminder also plans to eventually integrate Pocket goals. This means that when you read an article on Pocket, whether on your computer, phone, or tablet, your Beeminder graph will get updated automatically in the next fifteen minutes or so. Here’s my graph:

My goal of reading five articles I’ve saved to Pocket per week.

This goal is going very well and it actually motivates me to read articles that would otherwise languish in my list.

Language

This one has become obvious since Beeminder integrated with Duolingo, so you can target a number of points per day. I’ve done this with French and Spanish and found it more motivating than just the Duolingo day streak feature.

My progress on French in Duolingo.

Other possibilities are to use Anki for memorization, or RescueTime to track your time studying the language. At the moment, with all my other goals going on, I’ve temporarily halted my progress on French, though I’ve continued in Spanish.

The less obvious goals

These are possibly less obvious than the ones above. I’m going to address them in order of most to least successful.

Watch movies

For years I’ve been trying to complete the 1001 Movies You Must See Before You Die, and tracking my own progress on this. I sometimes feel guilty when I watch films that aren’t on the list, so now I can easily make sure I’m on track by deciding a number to watch each year and stick to it using Beeminder:

Watch 1001 films. Ideally before I die.

Must-do task

This is not my idea, but it has worked very well for me. Basically, each day you decide one thing you’re going to do tomorrow, no matter what happens. I’ve found this highly motivational both for starting dauntingly large and important tasks, as well as for eliminating minor tasks that I’ve been putting off for ages.

I may extend my 30 day experiment with a “mustdo” task per day since it has worked quite well for me. Not the most interesting graph though.

Diskspace

It’s not the most exciting goal ever, but the point of Beeminder to motivate you to do things you want to do but don’t get around to, isn’t it? I have a lot of data on my computers, and I’d like to clear things out. I’m not likely to put much of a dent in my 3.2 terabytes of junk in a single sitting, but with a Beeminder goal, at least I can keep an eye on it to make sure it doesn’t increase. In the future I will probably set a goal of reducing it.

Above I mentioned my simple Python tool that allows you to post data to Beeminder goals from the commandline. Using this, I can update my diskspace goal automatically using cron. For example:

0 9 * * * bmndr disk $(df  | awk '{s+=$3} END {print s/1024/1024}}') automatic import from df
My attempt at keeping my digital mess in check.

Todo list

I use Taskwarrior, a command-line todo list. I could create a Beeminder goal that tracks my total number of tasks, but I thought that this would dissuade me from creating new tasks. I therefore declared a backlog. Basically, this means a list of tasks created before a specific date in the past. Since any new tasks are not included in this, it means that the list can only ever shrink, which is a psychological win. I use my script above to track this automatically. First create a weight loss goal with the current number of your tasks in. Then put something like this into cron

0 9 * * * bmndr backlog $(task status:pending entry.before:2013-07-17 count) automatic import from taskwarrior

This will upload your daily total tasks created before 2013-07-17 to Beeminder. So far this is working well for me, and I’m ahead of schedule for eliminating every action by the end of the year.

My Taskwarrior backlog.

Lastpass

If you use Lastpass, one of the great features is its “security challenge.” Basically this is a score which reflects how secure each of your passwords is individually, and how frequently you’ve re-used passwords. The former protects you against brute-forcing, the latter protects you if a site gets hacked and it hasn’t encrypted your data. Not that it’s really a security risk but I’m keeping this particular goal private (which, lest you think public goals are required, is quite easily done in Beeminder). You can track your Lastpass score using a “Odometer” goal which will encourage you to raise your security challenge score over time. If your Lastpass vault is anything like mine, it’s going to take you a while to get your score up to maximum.

Wake up early

I have trouble even just waking up on time, but on those rare days that I do wake up an extra hour or two before work, I often accomplish a lot. I’ve therefore set myself a goal to get up at least an hour before I need to on three days each week. It’s not been going brilliantly but I’m hoping it will get better.

Wake up an hour before my usual time.

Cleaning

My mother always told my brothers and me that if we would just clean for a few minutes each day, it wouldn’t become such an insurmountable and awful burden when we finally got around to it. Of course we never listened, but Beeminder is perfect for these sorts of goals, so I thought I’d try to get myself to clean my flat for ten minutes a day.

Clean for ten minutes a day, six days a week.

I had allowed myself to hope that once I ran out of easy cleaning jobs my flat would gradually become spotless, but what’s happened is that it mainly encourages me to improve the baseline cleanliness of my flat. So not a total win, but still better than what I started with.

My goal to rid myself of objects, on the other hand, is working very well. I’ve set a goal of getting rid of one hundred objects, which I call “minimize”. I initially set the goal to one per day, but I then relented and made it slightly easier with a target of five per week, so the goal of 100 objects will be complete in 120 days. I’ve so far recycled/sold/given away/thrown away 32 items. I only count things that I’d intentionally been keeping for some reason, and not stuff that should obviously have been discarded. This goal has been really helpful in fighting the hoarder in me. Depending on how hard it gets to hit the target of one hundred items, I may extend the goal, or perhaps instate a one-in-one-out policy whereby I have to get rid of something in order to acquire a new thing.

Get rid of 100 objects.

Glucose

I’m a Type I diabetic. As with weight, blood sugar levels are massively important for health and longevity. I’ve therefore set up a goal to get my blood sugar average below 7.0 mmol/L. At the moment I’ve got two glucometers so I haven’t been tracking this as well as I was, but I did manage to get the average down to 7.0, which is better than I’ve had in years. Unfortunately this does not get updated automatically, so I’m still thinking about how to track this.

The rest

You can see all my public goals here. I track eating breakfast, Github commits, and a few other things, but most of the interesting ones are above. I’m always interested in what other people are Beeminding, so if you have a goal you’re tracking or an idea of what to track, I’d love to hear about it in the comments.


Loading Facebook Comments …

No Trackbacks.