Advanced habit tracker in Notion with weekly stats. + Template

Krista Lamen
7 min readNov 29, 2020

--

Hello, Notion fans! I’ve been using this amazing tool since 2020 and eventually came up with a way to build not just a simple habit tracker (which is also ok) but a cool habit tracker with weekly statistics for every habit I stick to.

I will explain how you can do the same. This exercise is for more advanced users. If you are lazy to create this habit tracker by yourself, there is a “ready-to-use” template available (updated for 2024 with all the latest Notion features). But I believe that if you manage to get through this instruction, you will not be scared by Notion any more (if you have ever been:)

Step 1: Habit Tracker database

First of all, we need to create a database for habit trackers. This database should contain a name column, 7 columns for every day of the week (‘Checkbox’ type).

First step — database for Habit trackers with 7 days

Habit progress

Now we have to add some formula columns to do the magic:

  • a “Formula” column for the amount of “checked” days
  • a “Formula” column which calculates the percentage of checked days (= “amount of checked”/7 * 100)
  • a “Formula” column for a beautiful progress bar based on the previous column (here is an explanation of progress bars in Notion)

Thus we can see progress for every habit we track for a particular week.

Added stats columns to Habit tracker database

Step 2: Weekly Statistics database

We will collect statistics per week in a separate database. Create a database with a week name column and a “Relation” column connected to the Habit Tracker database. Week name is a matter of taste — it may be “Week 1, Week 2” or “Week 1 | 15–21 Nov, Week 2 | 22–29 Nov” etc. I suggest using sortable names to simplify sorting records by week name.

You might use existing weeks database — in this case all the habits you track will be connected to corresponding weeks in your existing planning system

Now, after we have created the Weekly Statistics database and linked one of its columns to the Habit Tracker database, a new column should appear in the Habit Tracker database backlinking to the Weekly statistics. You will find this column under the name similar to “Related to Weekly statistics (Property)”

Relation of Habit trackers with Weeks

Let's rename “Related to Weekly statistics (Property)” to “Week link”.

Habit stats for the week

Lets aggregate habit stats per week so that it is placed together in a readable way. To achieve this we need 3 columns:

  • a column in the Habit Tracker database which pulls together a habit tracker name and its progress. I name it “Habit Summary”.
  • a “Rollup” column in the Weekly Statistics database which shows all the “Habit Summary” values (Show original option)
  • an optional “Formula” column in the Weekly Statistics which takes the result of the previous column and replaces all “,” with “\n” (newline). This manipulation lets see the values in a columned way (Wrap cells should be enabled for Weekly Statistics database)
Columns for aggregating habits progress per week

Average stats for the week

Now let's add columns for average week progress to the Weekly Statistics database:

  • add a ‘Rollup’ column which calculates an average value for “% Checked” in the Habit Tracker database (I name it “T.% Avg”, ‘T’ means technical which means I need this column for calculation only and will hide it after the database is ready)
  • add a progress bar based on the previous column for a better progress visualization
Added average stats calculated over progress for all the habits tracked on a particular week

Weely Statistics view adjustments

Well, we are done with the second database. Before jumping to the last database lets hide all the columns we don’t need:

Habit Statistics database

We will collect statistics per habit in a separate database. This database will aggregate stats for a particular habit.

Create a database with a habit name column and a “Relation” column connected to the Habit Tracker database. Rename the column in the Habit Tracker database to “Habit link”

The relation between Habit Statistics and Habit Tracker databases

Weekly stats for the habit

  • add a “Formula” column for the Habit Tracker database which pulls together the name of the week linked and habit tracker progress
  • add a “Rollup” column to the Habit Statistics database for the previous column with the Show original option.
  • optionally add a “Formula” column which replaces all the “,” with “\n” (newline) symbols for the previous column

On the screen below I also added habit trackers for Week 2 to make the statistics more interesting:

Added weekly stats for habits

Max, min, average weekly progress for a habit

This one is going to be a hard one because we will need a lot of new columns but they are quite similar to each other. Add all those columns to the Habit Statistics database

  • 3 “Rollup” columns based on “% Checked” column of the Habit Tracker database — one with “Average” option, another one with “Max” option and the last one with “Min” option.
  • Add 3 “Formula” columns for the previous 3 columns to represent corresponding progress bars
  • Add a “Formula” column which pulls together progress bars for average, max and min progress values
Added avg, max, and min weekly progress bars for the habits

Day of week stats for a habit

The last piece will let us see which days of the week are the most and the least productive in terms of progressing with every habit we track. This data may help to analyze if there are some conflicts between the habits and some regular events in your life. If you do not need these stats, jump to the next part.

  • Add 7 “Rollup” columns to the Habit Statistics database with relation: habit tracker link, property: day of the week, calculate: percent checked
  • Add a “Formula” column to calculate the maximum value over the 7 columns created previously.
  • Add a “Formula” column to calculate the minimum value over the 7 columns created previously.
  • Add a “Formula” column to show which days of the week are the most productive
  • Add a “Formula” column to show which days of the week are less productive
Added stats for days of week

Habit Statistics view adjustment

We are done with the last database, lets hide unnecessary columns:

or

Habit tracker view adjustment

There is still a lot of unnecessary data showed on our first database, lets only leave columns which we need. I leave “Week link” and “Habit link” columns visible as they remind me to link a tracker record with particular habit and link.

The final result

Use filters to only show trackers for current week in the Habit Tracker database. Enjoy! And please, share your feedback

The template

A “ready-to-use” template is available here. There are two styles to choose, the one I showed above and the one with coloured progress bars:

Some final advices on how to use this template

  • Adjust views of databases to only see data that you need
  • In Habit Tracker database create a view with filtering by current week to only see trackers corresponding to current week.
  • Always connect records in Habit Tracker database to particular habit (‘Habit link’) and week (“Week link”). By the way in the template there is a special “Validation” column which checks if a tracker is connected to corresponding habit and link week alerts in case it is not.

That’s it! I will be glad to see your feedback. Enjoy!

Probably you would also like my post about 5 Ideas for Progress Bars in Notion

Notion Formulas Explained

If you are eager to dive deeper into Notion formulas 2.0, I can give you a hand here:

--

--