Get AI summaries of any video or article — Sign up free
How To Make A Habit Tracker In Notion (w/ Skip Habit Option) thumbnail

How To Make A Habit Tracker In Notion (w/ Skip Habit Option)

Red Gregory·
4 min read

Based on Red Gregory's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

Use unary plus on checkbox properties to convert checked habits into numeric values for progress calculations.

Briefing

A Notion habit tracker can be upgraded to support “skip habits” on specific days—then those skips flow through to a monthly analytics dashboard that shows real-time average progress. The key move is building a progress formula that counts only the habits marked as required for a given date, so weekend (or any) exceptions don’t drag down completion rates.

The setup starts with a classic checkbox database: six habits stored as checkbox properties, plus a weekday formula that derives the day name from each entry’s date. A star-based progress bar is then created from the checkboxes by using Notion’s unary plus to convert each checkbox into a numeric value, summing them, dividing by the total number of habits, and converting the result into a percentage. Visually, the tracker uses white stars for partial completion and golden stars for full completion.

The “skip” upgrade adds a separate Skip property that lists which habits should be ignored on that day (for example, skipping habits 1 and 3 on weekends). A new Progress property recalculates completion by subtracting the skipped habits from the denominator. To do that, the formula measures how many items exist inside the Skip tags: it uses replace to strip out non-comma content, then counts commas and adds one to estimate the number of skipped habits. An if condition prevents the formula from misbehaving when Skip is empty. The result is that if only habits 2, 4, 5, and 6 are checked, progress becomes 100% instead of being diluted by habits that were intentionally skipped.

To make the skip behavior apply broadly, the tracker uses a filter approach: for every Saturday and Sunday, the Skip property is populated for the relevant habits (e.g., habits 1 and 3). This avoids manually editing each day. The Skip column can then be hidden once the logic is working.

Finally, the tracker feeds into an analytics database. A relation connects daily habit entries to a monthly analytics table, and a rollup computes the average progress across all days in that month. Because percentage rollups can get awkward, the workflow converts daily progress into a number before rolling it up. The monthly star rating is rebuilt from the rollup average: white stars show partial progress, while golden stars appear when the monthly average hits 1 (100%). The dashboard is organized by quarter and updates as new daily entries roll in, giving a running view of habit performance that respects planned exceptions.

Cornell Notes

The tracker upgrade introduces a Skip system so weekends (or any chosen days) can ignore specific habits without lowering completion scores. Daily progress is computed by summing checked habits (via unary plus) and dividing by a denominator reduced by the number of skipped habits. The number of skipped habits is derived from the Skip tags by counting commas and handling empty Skip values with an if statement. A monthly analytics database then relates to daily entries and rollups the numeric progress to compute average monthly completion. Star ratings are rendered from progress: white stars for partial completion and golden stars when progress equals 1 (100%).

How does the tracker calculate daily completion when some habits are intentionally skipped?

It sums the checkbox values for all habits using unary plus (so checked boxes become 1 and unchecked become 0), then divides by an adjusted denominator. The denominator starts as the total number of habits (e.g., 6) and subtracts the number of habits listed in the Skip property. If Skip contains habits 1 and 3, the denominator becomes 4, so checking only habits 2, 4, 5, and 6 yields 100% progress for that day.

What’s the purpose of converting progress from a percentage into a number?

The workflow converts daily progress into a number so it behaves cleanly in rollups. Percentages can be tricky when aggregating in Notion, so the daily progress is kept as a numeric value (with later formatting for display). The monthly rollup then averages those numeric progress values to determine monthly completion and star ratings.

How does the formula determine how many habits are in the Skip property?

Skip is treated like a comma-separated list (e.g., “habit 1, habit 3”). The formula uses replace to isolate comma structure, then counts commas and adds 1 to estimate the number of skipped items. An if condition ensures the logic returns 0 (or an empty/zero equivalent) when Skip is empty, preventing incorrect subtraction.

How are weekend skips applied without editing every day manually?

A filter is used to target entries where the weekday formula contains Saturday or Sunday. The Skip values for the chosen habits are then copied down across those filtered days. After the bulk paste, the filter can be removed, leaving the skip settings in place across the weekend entries.

How are monthly star ratings generated from daily data?

The monthly analytics database uses a relation to link to the daily habit tracker entries, then a rollup averages the numeric daily progress. A star-rating formula multiplies the rollup progress by 10 and uses slice to build the star icons. A conditional swaps in golden stars when the rollup average equals 1 (100%), otherwise it shows the white-star version.

Review Questions

  1. If Skip is empty for a day, what should the progress formula do to avoid changing the denominator incorrectly?
  2. Why does the monthly analytics rollup rely on numeric progress rather than a percentage value?
  3. How would the daily denominator change if a tracker has 8 habits and Skip lists 3 habits for a given day?

Key Points

  1. 1

    Use unary plus on checkbox properties to convert checked habits into numeric values for progress calculations.

  2. 2

    Create a Skip property that lists which habits should be ignored on specific dates, then subtract those habits from the progress denominator.

  3. 3

    Count skipped habits by deriving the number of comma-separated items in Skip, and guard against empty Skip values with an if condition.

  4. 4

    Apply skip rules at scale by filtering on weekday (e.g., Saturday/Sunday) and bulk-filling the Skip property.

  5. 5

    Convert daily progress into a number before rollups to avoid percentage aggregation issues in Notion.

  6. 6

    Build star ratings from progress by mapping progress (0–1) to 0–10 star icons, and switch to golden stars when progress equals 1.

  7. 7

    Use a relation + rollup from daily entries into a monthly analytics database to show running average progress as the month progresses.

Highlights

Skip-aware progress fixes the common habit-tracker problem where planned exceptions (like weekends) unfairly reduce completion rates.
The formula estimates how many habits are skipped by counting commas inside the Skip tags, then subtracts that count from the total habit denominator.
Monthly analytics updates automatically through a relation and rollup, producing star ratings based on the average of numeric daily progress values.

Topics

Mentioned