Notion Habit Tracker Template: 5 Free Setups + Formulas
A Notion habit tracker is a database with one page per day and one checkbox per habit. Notion's own template is free. To build one, add a day score formula, a text progress bar, a daily repeating template and a streak formula. On the Free plan you get one chart, and a chart shows at most 200 groups.
Search for a Notion habit tracker and you get lists of 20 or 25 templates, most of them screenshots of pastel dashboards with a graph in the corner. What the lists leave out is that Notion's Free plan lets you see one chart, that a chart stops at 200 groups, and that a streak formula can quietly count a day you never logged. So instead of a twenty-sixth list, here are five setups you build yourself, with every formula written out and every limit taken from Notion's own help pages.
What is the best free Notion habit tracker template?
If you want zero setup, start with Notion's own Habit Tracker template: it is free, published by Notion, and rated 4.6 out of 5 from 1,823 ratings in the Notion Marketplace on 10 October 2026. The Habit Tracking category of the same marketplace listed 2,964 templates that day, free and paid, and most are variations on the same database. If you want to know what every property does, and change it without breaking anything, build one of the five setups below. Each adds one thing to the previous one.
| Setup | What it adds | Notion features used | Free plan |
|---|---|---|---|
| 1. Daily log | A page per day, a checkbox per habit, a day score | Checkbox, Formula | Yes |
| 2. Progress bar | ●●○ 67% in every row, no chart needed | Formula with repeat() | Yes |
| 3. Auto-created days | A new day page every morning, no gaps | Repeating database template | No limit listed in the help page |
| 4. Streak counter | Current and best streak for each habit | Relation, list formulas | No limit listed in the help page |
| 5. Monthly chart | Check-ins per month as a bar chart | Chart view | One chart only |
Notion habit tracker. A Notion database in which each page is a day and each checkbox property is a habit. Formula properties turn the ticks into a daily score, a progress bar or a streak, and database views such as tables, calendars and charts show the record over time.
How do you make a habit tracker in Notion from scratch?
Create a database called Days, give it a Date property and one Checkbox property per habit, then add two formulas: Done, which adds the ticks, and Score, which turns them into a percentage. That is setup 1, the daily log, and everything else on this page is built on top of it. Every function below appears in Notion's formula reference, read on 10 October 2026. Rename the habits to yours.
- Type
/databaseon an empty page and choose a full-page database. Rename it Days and rename its title property to Day. - Add a Date property, then one Checkbox property per habit, here Read, Workout and Water. Each habit should be something you can answer yes or no to: "20 pages" is tickable, "read more" is not. Our 150 habit tracker ideas written as yes or no conditions help if this is where you get stuck.
- Add a Formula property called Done. Notion's reference states that
toNumber(true)returns 1, so a ticked box counts as one:
toNumber(prop("Read")) + toNumber(prop("Workout")) + toNumber(prop("Water"))- Add a second Formula property called Score, the share of habits done that day. Change the 3 if you track a different number of habits:
round(prop("Done") / 3 * 100)Sort the table view by Date, newest first, so today is always the top row. That is a working habit tracker. The next four setups fix the things it does badly.
How do you add a progress bar to a Notion habit tracker?
With a text formula that repeats a filled character once per habit done and an empty character for the rest, which shows a bar in every row on every plan, including Free. This is setup 2. Notion's repeat() function repeats a piece of text a given number of times, and lets() names the values so the formula stays readable:
lets(
done, prop("Done"),
total, 3,
repeat("●", done) + repeat("○", total - done) + " " + format(round(done / total * 100)) + "%"
)On a day where you read and drank water but skipped the workout, the cell reads ●●○ 67%. Notion can also display a Number property as a progress bar, but a number you type does not change when you tick a box. A formula recalculates by itself, which is the whole point in a habit tracker.
How do you make Notion create a new day automatically?
Turn your day page into a database template and set it to repeat daily: Notion then creates a new copy at the time you choose, so you open the database and tick instead of creating a page first. This is setup 3. Open the dropdown next to New, create a template with your checkboxes empty, then open the menu next to that template and choose Repeat. Notion's help page lists daily, weekly, monthly and yearly repeats, with a start date and a time.
A template copy does not fill the Date for you. Add a Created time property called Created, which Notion describes as auto-generated and not editable, then a formula called Day date that uses the Date if you typed one and the creation time otherwise. You keep the automatic date on normal days and can still backfill a forgotten one by hand:
if(empty(prop("Date")), prop("Created"), prop("Date"))Can Notion track habit streaks?
Yes: link every day page to one Stats page through a relation, and a formula on the Stats page can sort those days, turn each tick into a 1 or a 0, and measure the runs of ones. This is setup 4. Create a second database called Stats with a single page, add a Relation property called Days pointing to your Days database, and set that relation inside your repeating template so every new day is linked automatically. Then add one formula per habit on the Stats page:
lets(
log, prop("Days")
.sort(current.prop("Day date"))
.reverse()
.map(current.prop("Read")),
history, if(log.first(), log, log.slice(1)),
runs, history.map(current.toNumber()).join("").split("0").map(current.length()),
"Current: " + format(runs.first()) + " days, best: " + format(runs.max()) + " days"
)Read it from the top. The days are sorted newest first, each one becomes true or false for the habit, and the ticks are joined into a text such as 1110111. Splitting on 0 gives the runs, so the first run is the current streak and the longest is the best one. The history line skips today when it is not ticked yet, so at 9 in the morning your streak does not read zero for a day that is not over. Thomas Frank's tutorial, the most complete page we read, uses the same join and split method.
One honest caution before you build it: a streak resets to zero after a single missed day, which is a poor picture of a habit that held 27 days out of 30. We made that case in streaks versus consistency. Keep the Score from setup 1 next to the streak, and look at both.
Can a Notion habit tracker show a graph on the Free plan?
Yes, but only one: Notion's help center says Free plan members can create one chart while paid plans get unlimited charts, and that a template containing several charts will show a Free user only one of them. That matters because "notion habit tracker template with graph" is one of Google's own suggestions for this search. Duplicate a template with a weekly graph, a monthly graph and a habit breakdown on the Free plan and you will see one.
The same help page sets a second limit nobody repeats: a chart displays at most 200 groups, and Notion's own example is 200 days on the X axis. Start a daily chart on 1 January and it runs out on 19 July. The fix is to chart a coarser unit. A year has 12 months and at most 53 weeks, both far under the cap.
So setup 5 adds one formula to the Days database, called Month, and charts it:
formatDate(prop("Day date"), "YYYY-MM")Add a Chart view, choose a vertical bar chart, put Month on the X axis sorted ascending, and Done on the Y axis as a sum. Each bar is the number of check-ins that month. Chart a formula that returns a number, not a rollup: the help page states that chart axes cannot show rollups, so a template whose progress lives in a rollup cannot be graphed without rebuilding it.
Duplicate a template with three graphs on the Free plan and you will see one of them.
What do the popular Notion habit tracker guides leave out?
We read five of the pages that rank for this search on 10 October 2026, and none of them mentions the one-chart limit of the Free plan or the 200-group cap, though three of them talk about charts. Counts are from the text of each page. A sixth page, on heyswitch.co, renders its text in JavaScript and could not be read, so this is a sample, not a census.
| Page | Words | Formulas shown | Mentions charts | Free plan chart limit |
|---|---|---|---|---|
| Thomas Frank, 5 ways to build a habit tracker | 3,402 | Yes, including streaks | Yes | No |
| PathPages, 25 templates | 3,074 | Yes, a progress bar | Yes | No |
| ClickUp, 20 templates | 6,991 | No | Yes | No |
| Bullet, 11 templates | 1,690 | No | No | No |
| Thomas Frank, template page | 838 | No | No | No |
Thomas Frank's tutorial is the strongest of the five and the only one to cover repeating templates. If you prefer a spreadsheet, the same logic exists in our Google Sheets habit tracker template and our habit tracker Excel template, where there is no chart limit to work around.
What can a Notion habit tracker not do?
It records well, but it stays private, and private records are the weakest form of tracking in the research. Harkin and colleagues pooled 138 experiments in a 2016 meta-analysis in Psychological Bulletin. Monitoring progress helped overall, but progress kept private and reported to no one had the smallest effect (d = 0.19), while progress reported to at least one other person had more than twice the effect (d = 0.47). We go through those figures in what a habit tracker is and whether it works.
A Notion workspace delivers the recording and none of the reporting. It also waits for you to open it: on the evening you are tired, nothing in the database notices that the Workout column has been empty for three days. Sharing a page with a friend is possible, but a shared page is a document they have to visit, not a signal that reaches them.
Where StellarHabit fits, and where it does not
StellarHabit is a habit tracker built around the part a Notion database leaves out: your habits are visible to the friends you choose, and progress is shown as a consistency percentage rather than only a streak, so one missed day does not erase a good month. It runs in any browser, so there is nothing to install and no formula to maintain.
It is not for everyone. If you want your habits inside the same workspace as your notes and projects, want to design your own formulas, or prefer to keep everything to yourself, the Notion setups on this page are the better tool and you should keep using them. StellarHabit suits a few habits you have already failed to hold on your own, where the missing piece is someone noticing. If that is you, start with how to find an accountability partner.
Frequently asked questions
Does Notion have a built-in habit tracker?
Not as a feature, but Notion publishes its own free Habit Tracker template in its template gallery, rated 4.6 out of 5 from 1,823 ratings when we checked on 10 October 2026. Under the hood it is an ordinary Notion database, the same thing you would build yourself: one page per day, one checkbox property per habit, and formulas that turn the ticks into a score. Duplicate it if you want zero setup, or build your own when you want to understand and change every formula.
How do I make a habit tracker in Notion from scratch?
Create a full-page database called Days. Rename the title property to Day, add a Date property, and add one Checkbox property per habit, such as Read, Workout and Water. Add a Formula property called Done that adds the checkboxes with toNumber, which turns a ticked box into 1 and an empty one into 0, and a Score formula that divides Done by the number of habits. Then add a daily repeating database template so a new page appears every morning, and a table view sorted by Date, newest first.
How do I add a progress bar to a Notion habit tracker?
Use a formula that repeats a filled character once per completed habit and an empty character for the rest, for example repeat with a filled circle, then repeat with an empty circle, followed by the percentage. It works on every plan, including Free, and it shows directly in a table cell. Notion also lets you format a Number property as a progress bar, but a typed number does not update itself when you tick a box, which is why a formula is the better fit for a daily habit tracker.
Can a Notion habit tracker show a graph on the Free plan?
Yes, one. Notion's help center says Free plan members can create one chart, while paid plans get unlimited charts, and that a template containing several charts will only show one of them on a Free plan. A chart also displays at most 200 groups, so a daily chart covers about six and a half months, not a full year. Chart a week number or a month instead of the raw date, and chart a number formula rather than a rollup, because Notion does not allow rollups on chart axes.
Can Notion track habit streaks?
Yes, with formulas that read a list of related pages, which Notion's formula language can sort, map and join like any other list. Link every day page to a single Stats page through a relation, then sort the related days by date, turn each tick into a 1 or a 0, join them into a text, and measure the first run of ones. The catch is that the formula counts pages, not calendar days: a day with no page at all is invisible to it, so a missing day never breaks the streak. A daily repeating template closes that gap.
Sources
- Notion Help Center. Charts. Free plan: one chart; paid plans: unlimited charts; charts display up to 200 groups and 50 subgroups; X and Y axes cannot show rollups. Read on 10 October 2026.
- Notion Help Center. Database templates, section Repeating database templates (daily, weekly, monthly or yearly repeats). Read on 10 October 2026.
- Notion Help Center. Formula syntax and functions reference (toNumber, repeat, format, round, lets, map, filter, first, join, split, length). Read on 10 October 2026.
- Notion Help Center. Database properties (Number formatting as progress bar, Created time). Read on 10 October 2026.
- Notion Marketplace. Habit Tracker template by Notion, price 0, rating 4.59 from 1,823 ratings; Habit Tracking category, 2,964 templates. Read on 10 October 2026.
- Harkin, B., Webb, T. L., Chang, B. P. I., Prestwich, A., Conner, M., Kellar, I., Benn, Y., & Sheeran, P. (2016). Does monitoring goal progress promote goal attainment? A meta-analysis of the experimental evidence. Psychological Bulletin, 142(2), 198-229. 138 studies; moderator figures taken from the accepted manuscript, White Rose Research Online.
- Pages audited on 10 October 2026: Thomas Frank, 5 Ways to Build a Habit Tracker in Notion; Thomas Frank, Habit Tracker Template for Notion; PathPages, 25 Best & Free Notion Habit Tracker Templates; Bullet, 11 Best Notion Habit Tracking Templates; ClickUp, 20 Free Notion Habit Tracker Templates.