Daily Habit Tracker for Notion

Updated 28-Jun-2024

Daily habit tracking is something useful, but can clutter up a calendar view. Also, not every day is each habit necessarily completed, for example if the target is 5 workouts per week, then missing two days per week is not terrible, but expected. Therefore it can be useful to have a separate widget that helps provide the overview of habits and to quickly check off the habit completion.

There are many other folks' habit trackers, but we walked through all the various approaches and settled on one that is efficient and provides a decent UI. Some trackers get a bit crazy with many features that may or may not be helpful.

Red Gregory has a color coding system to show success rates per given weekday. Interesting but not so important. If that was needed in ours it would be a matter of creating a derived field of weekday per a given day, and then creating a new gallery view with the colors. She also has summation of number of habits completed per day, but that is not useful when some habits do not have to be completed every day, but the goal is some number of days per week.

Zoe Chew includes a column for hour of the day, and mixes up disparate things like exercise, working for clients, time spent reading.

The standard habit tracker template from Notion HQ is a 31 day table. This is a bit cumbersome to work with and it ends up in a proliferation of tables, and many edits to make each new month.

Murali Balaraman has a nice work around with recurring tasks (video starts at 5:14) showing how to add a log within the task form, though that requires one opening up the task page for each task (or daily habit) on each day.

Daily tasks tracking in a table

If there are many daily tasks or habits which one wants to track, then using a calendar (with the month view) is not a great approach. Other calendar views are possible, but not with the native calendar view in Notion. One such option is to use a board and have columns for each day of the week. Another is to simply use the table view and have days of the week be the columns or the rows.

Archiving of daily tasks is supported by either archiving the tasks themselves, or adding to a log of task activity (this could be done as a table of subtasks tied to the task). To support tracking while also having an aggregated count of habits tracked, one can assign the habits to a larger project and do rollups on the columns. This would mean having the columns be habits rather than days of the week.

However, only one table can be used for the rollups as it is based on a relation to a specific table. Therefore doing rollups when the idea is to create multiple tables of a weekly grid of habits), rather than one table (with multiple instances of habits), won't work. Also, there is the problem of not being able to embed a linked database, since that database (table) is changing every week or month.

This indicates how daily habits tracked in a table and having the tables regularly recreated has too many disadvantages:

  • Cannot link higher-level project to more than one table for a rollup field
  • Cannot embed in a dashboard without having to redo this on every new table creation

The best approach would be either:

  • restricting each recurring task to either a single task and resetting the due date, or
  • creating a single task for each instance of the recurring task (or possibly having one task include multiple items in that task, say different kinds of exercise)

Daily task (habit) tracking dashboard and UX

From a dashboard perspective, having a single task that had within it checkboxes for each of the daily habits would be easy to see and easy to check off. The tasks created each week, to be dragged and dropped on the the calendar, will be labelled Monday, Tuesday, etc. The main display is the Gallery view, with a filter to only see yesterday and today. This can be toggled into the Calendar view, when creating the next week's habits to track, via the Generate New Week template button.

A is for archiving

PARA has a great reminder in its very name (Projects, Areas, Resources, and Archives), that we need to be able to archive, and retrieve from archives. For simple tasks, it is a matter of keeping them in their own table and then copying the table every quarter or so to preserve the information. Some systems use a checkbox for archiving, or dragging into an archive. For simple habits and task tracking it is usually enough to only see what is due currently. If too many items continually clog up the view, then having an archive or a status of frozen available as a part of the filter is enough.

Video of Daily Habit Tracker Widget