The best kittens, technology, and video games blog in the world.

Thursday, August 14, 2014

Beeminder resolution problem

Cute squirrel monkey by **Mirm** from flickr (CC-NC-SA)
Beeminder tries to be two distinct things at once:
  • quantified-self system - helping you tracking relevant information about yourself
  • self-improvement system - nudging you towards better behaviour
These two tasks are highly entwined - you can't nudge yourself meaningfully without tracking your progress; and things you want to track tend to be things you care about improving, or at least maintaining at certain level, so it ought to make sense to have one tool for both.

The primary reason it doesn't work all that well in practice is that optimal resolution for tracking is drastically different from optimal resolution for commitment.

You generally want to track things at high resolution, but commit at low resolution. What you want to commit to is "getting enough exercise". What you want to record are things like "10 km on a bike", "30 minutes on a treadmill", or "10 sets x 10 reps with dumbbells". It's common to make the mistake of setting each such activity as a separate goal, enforced every week, which inevitably leads to mass derailing pretty quickly, even if you are getting decent amounts of exercise.

Instead, what you need do is throwing these data points all together into a single "exercise" commitment goal. They don't come in the same units, so you need to convert them somehow - to hours, intensity-adjusted hours, some kind of per-exercise point system, daily did/didn't exercise points, or something more creative. Whichever way to aggregate them you pick, what you want to commit to is low-resolution aggregate of high resolution tracking data.

This kind of aggregation is not supported too well by beeminder. What if you want to change from one way to aggregate data to another? Editing data for current goal is not only tedious manual process, it will most likely retroactively derail you. Or you could archive current goal and start a new one, eventually ending with "exercise-17" goal. There are ways within the system, but it's not helping you.

This might not be a huge deal if all you want from beeminder is some help with akrasia - for this past data is not a huge deal since it's already done its job nudging you. If you care about long term data, your choice is messiness of manual aggregation, or huge number of microgoals with frequent derailing.

I used "exercise" as an example, but that's actually one the easiest goals to aggregate. What if you wanted to commit to "work", "education", "doing new fun things" or some other difficult to measure goal? Hours of effort, which work tolerably for exercise, are really bad measure for most other goals, and point systems will require frequent tweaking. (I wonder how many programmers have "lines of code written" as beeminder goal - it might still be less crazy than "hours spent coding").

Resolution is not the only case where what you want to track is not what you want to commit to. For just about any area of life you'd like to improve, you want to commit to effort, and track outcomes. It's a miserable experience if you commit to an outcome like weight loss, school grades, earnings, or whatever else you're concerned with, put serious effort into it, and derail anyway because of one unlucky week.

On the other hand what good is committing to certain number of hours of effort, if you're not getting results you want even long term?

Beeminder is trying to do something new, and even in its imperfect state it's still highly useful. It still has very long way to go.

No comments: