1. Create a new database for the habit tracker.
2. Set up the following properties. These are the basic properties that everything else is built on.

| Property type | Property name | Property details | Explanation |
|---|---|---|---|
| Date | Date | ||
| Formula | Is today? | formatDate(now(), "DD") == formatDate(prop("Date"), "DD") | Used for daily progress calculations. Shows checked box if date is the current day. |
| Formula | Is this week? | formatDate(now(), "W") == formatDate(prop("Date"), "W") | Used for weekly progress calculations. Shows checked box if date is the current week. |
| Checkbox | Habit 1 | ||
| Formula | Habit 1 complete? | and(prop("Is this week?"), prop("Habit 1")) | Used for weekly and total progress calculations. Shows checked box if the habit is marked complete and the date is in the current week. |
| Formula | Habit 1 icon | if(prop("Habit 1")==true, "●", "○") | Shows first icon in formula if box is checked and second if it is not. All icons will be rolled up together for the display with the circles. |
| Repeat | Habit 2, Habit 3, etc. | Repeat those 3 steps for as many habits as you want to add. | Note that the formulas I give are for only 2 habits. The “Daily total #” property below will need slight edits if you add more habits. |
| Formula | Daily total # | toNumber(prop("Habit 1")) + toNumber(prop("Habit 2")) | Used for daily progress calculations. Converts checkboxes into number- 1 if checked, 0 if not. |
3. Set up the following properties in the habit tracker database. These will be used for the daily tracker and daily progress displays.

| Property type | Property name | Property details | Explanation |
|---|---|---|---|
| Formula | Today’s habits title | style("Today's Habits", "u", "b") | |
| Formula | Today’s progress title | style("Today's Progress", "u","b") | |
| Formula | Progress message | prop("Daily total #") + |
if(prop("Daily total #")==1, " habit completed ", " habits completed ") +
if(prop("Is today?")==true, "(" + (2-prop("Daily total #")) + " remaining)", "(" + (2-prop("Daily total #")) + " incomplete") | Shows number of habits completed that day. On the current day it will show how many are remaining, and on past days the wording will automatically change to “incomplete” instead of “remaining.” | | Formula | Progress bar | style((((substring("——————————", 0, floor((10 * prop("Daily total #")) / 2)) + "●") + substring("——————————", 0, 10 - floor((10 * prop("Daily total #")) / 2))) + " ")) + style(format(floor((100 * prop("Daily total #")) / 2)) + "%") | Shows percentage completed that day. This formula will need to be edited if you add more habits. Currently, there are 3 places where it says “prop("Daily total #")) / 2)).” The 2 needs to be changed to your total number of habits. |
1. Wherever you would like to display your daily tracker, add a database gallery view, select the habit tracker database, select “none” under card preview, then show the following properties:

2. Set a filter with the date property to only show today.
3. Set up a daily recurring template
In the top right of the database, click the arrow next to “New” on the blue button.
Click “+ New template” and the template page will open.
In the date property, select “Today- date when duplicated.”
Set the title to what you’d like. I like to set it to “@Today- date when duplicated”

Click out of the template, and click the arrow next to “New” on the blue button again. You should see your template in the list now.
Click the 3 dots next to the template.
At the top of the pop-up menu, click “Repeat,” then click “Every day,” then click save. Now a new daily tracker page will automatically be created each day.
