Everyday Systems : HabitCal [ log in ]

What is the HabitCal Habit Calendar?

HabitCal is a free online tool for tracking (and more importantly, building) good habits -- like diet and exercise. I came up with it specifically for my everyday systems habits, but you could use it for any habit you like.

Hey! New! There's now an experimental mobile habitcal webapp. It's not quite perfect, but far enough along to be useful, I think.

How it works

First, if you haven't already, create an account and log in. You'll then be redirected to this page except now that we know who you are there will be a personalized greeting with an edit link at the top.

On the edit page, you'll see an empty list of "habits." Click on the "add" link next to this list to add a one word (no spaces) name for the behavior you'd like to track (browse other people's habits here). Then chose the time frame you want, make sure the habit you want to track is selected (you have to choose it from the list even if it's the only item there), and hit "show." A calendar will display for each month in the selected time frame for each habit. Mark green=success/yellow=exempt/red=failure (the habit traffic light) every day until you're no longer interested in tracking the habit. At the end of a month or a year, you'll have a striking visual picture of how well you complied with your desired behavioral goal. You can track several behaviors at the same time, and the interface makes it easy to set multiple days of input at once. If the full traffic light is too much, just use negative tracking to tick off failures when they happen.

Besides your personal edit view, there is also a public view that you can share with friends and random people on the internet (NOTE: nothing here is private -- see disclaimer below). Just click "switch to public view" on the top of your edit page to see what this looks like.

What it looks like

Calendar View

This is the most basic view. It's the most familiar and it's its good for tracking relatively small numbers of habits.

Table View

This is similar to the calendar view, but more compact. It makes it easier to view and edit many habits at once. Calendar view gets cumbersome if you're dealing with more than say 5 habits at once. Table view makes it easy to get a handle on 10, 20 or more (note: it may not actually be a good idea to tackle this many habits at once, so be careful and don't go nuts just because the technology makes it easy). In edit mode, you can use the "batch input" arrows to color in all the blank squares in a row or column.

Statistics View

This gives you a statistical overview of your compliance over the selected period of time, the percentage of which you marked as success, exempt, or failure. "Special" (non-weekend or NWS) days are reported in a separate column to give you a quick overview as to whether you're abusing them. There's also a pie chart, a summary compliance score, and a personal olympics medal (if you deserve one!).

The summary compliance score is calculated by the following crude formula:

green / ( green + red ) - ( special percent exceeding 7%)

I realize that this isn't a perfect scoring system for all people and all habits, and version 3 will let you choose between several scoring systems for each habit. I already hacked something for "weekendluddite" so that special days aren't penalized there.

The personal olympics medals are given as follows:

>= 98% Gold
>= 96% Silver
>= 92% Bronze

This is more or less in line with what I've previously recommended for personal olympics (an average 0,1,2 failures per month, respectively).

Timeline View

This is another way to get a concise overview of a large period of time (like a year). Every day shows up as a pixel, so unlike stats view it's "non-lossy."

Export (TSV) mode

TSV stands for tab separated values. This option lets you download your precious data to back it up or view it in excel or something. And if you're a programmer, you can build your own visualizer for habitcal data. The format is simple, 3 tab delimited columns: date, habit, and score (reported as 1/0/-1 for success/exempt/failure, respectively).

You can see my personal public view HabitCal here.

A psychologically sound habit tracker

Why did I come up with my own habit tracking system instead of using one of the (technically) excellent ones already out there? Because none of them work quite the way I want them to. They use complicated scoring systems that encourage bad ways of thinking about habit. When you are building a habit, you want to focus on a sustainable minimum level of compliance: either you do what is required, or you don't (or you are exempt that day). Quantifying success beyond this is counterproductive. Why? Well, first off, it's more complicated, but more importantly it's bad because you'll start to want to trade points -- to think that heroic efforts yesterday can buy off the need to do anything today. Or that efforts in one area can be exchanged for efforts in another. You'll think "I did extra good yesterday, so I can take today off" or "I did extra exercise this morning, so I can ignore my diet this afternoon." Theoretically these arguments (sometimes) make sense. The problem is that you can't trade unconsciously -- and that's what habit is supposed to be. So when you trade, you're no longer tracking habits -- you're keeping a ledger of conscious decisions. There is no automation. Your behaviors will stay conscious and hard.

Ultimately, the point of a habit tracker isn't to track. Yes, it does track, but the tracking is just a means to an end -- building a new habit. When you've reached that goal, you shouldn't need a habit tracker. I like to think that the HabitCal is so good at this, its primary function, that no one will have to use it for very long. But it's also so unobtrusive, it takes so little time and energy to keep current, that I could imagine people continuing to use it even after they've built firm habits, just to play it safe, and for a continuing pat on the back for a job well done.

Why not use a paper calendar?

Go ahead. Paper works great. You can get all the primary habit building benefits of the habit traffic light that I described above just as well using a physical calendar and some colored markers. The primary advantage of the online HabitCal is that you get the motivational benefit of sharing your goals with others. It's also free, you can access it from anywhere, and the summary views make it easy to get a sense of how you're doing over longer periods of time. You'd also have to buy a lot of paper calendars if you were tracking multiple habits.

Why not just use the daily checkin on the bulletin board?

Again, by all means, go ahead. The advantage of the bulletin board is that you aren't limited to one tiny datapoint per habit per day -- you can go into all kinds of detail, ask for help, etc. But not everyone feels the need to do this. And even those who do might ALSO want to keep a more concise account here. There's no reason you can't do both: succinctly quantify your compliance with the HabitCal, then qualify (if necessary or desired) on the bulletin board. I built the HabitCal on the same underlying system as the bulletin board so one account gives you access to both. I might even put some effort into better integrating them some day if people want it, to make it so you can jump from a calendar entry to a corresponding bulletin board post.

Printing the HabitCal

Printing the habitcal is a tad annoying: by default, in most web browsers, the background color of the cells will not print. It is actually possible to get it to print out with all the colors, but you have to set your browser to "print background colors." In every browser this option is hiding in a different totally obscure place. Instructions here (thank you Neptunus!)

Questions/Suggestions/Bug Reports?

Post the the HabitCal discussion thread or email me.

Planned Enhancements

I want to keep HabitCal pretty spartan... but there are a few features I'm sure I'd like to add at some point (a bunch of pretty significant improvements were already added in version 2, so it is entirely possible I will get around to some/all of these).

1. Habit Properites Editing: a way to set things like what scoring system to use for each habit, maybe adding some descriptive text, and other options. Also the option to rename habits.

2. Add Note: a popular request, but tricky to add to the current interface unobtrusively. The main "use case" is so you can qualify/confess details about failures -- resolving to do this is a good way to keep them limited without adding systematic complexity. And you can currently kinda sorta do this by keeping a separate parallel daily check in thread on the bulletin board, but that's a little clunky. I'll probably add a "journal view" optimized for note viewing and editing and just mark notes with a hyperlinked "*" or something in the other views.

3. Track arbitrary numeric data like weight: this is tricky because except for the timeline view where it could be drawn as a graph, it's going to be hard to squeeze into the other views (what if the numbers are too big to fit in the date cell? etc).

4. More attractive "RESTful" urls: I doubt anyone cares about this except other programmers, but I'm a programmer after all... My primary concern is how to clean them up without breaking exisiting links, because aesthetics ain't worth inconvenience and cool urls never change.

5. Widgetization: some way to stick a habitcal widget into your blog and/or facebook.

6. Autocomplete/suggestion of habits (so there aren't SUCH a plethora of nosdiet spelling variants)

Browser support

It should work in recent versions of Firefox, Chrome, IE, and safari. No idea about others. I'm just one guy doing this in my spare time. I barely have time to test these.

Dislaimers/Terms of Use

#1: please do not post anything that could get you divorced/fired here. This is the web. It's public. You have to assume that your boss, your wife, googlebot and the FBI are all looking at it. If you want to track potentially embarrassing habits here, (nothing obviously illegal, please) come up with a good pseudonym.

#2: You've heard of "beta" software? Well, this is alpha software. That means it's very possible, perhaps even probable, that one fine morning I will accidentally erase all those lovely little datapoints you've been painstakingly ticking in for months. I will really try not to do this (and I do make nightly backups), but if you can't promise not to kill or sue me if it happens, PLEASE GO AWAY.

#3: I reserve the right to intentionally have the above mentioned accident if you do anything too irritating.


By Reinhard Engels

 © 2001- Everyday Systems LLC, All Rights Reserved.