DEV Community

Financely Templates
Financely Templates

Posted on

Build a Habit Tracker in Google Sheets With Checkboxes, Streaks, and a Progress Bar

Habit apps are great until they want a subscription. A spreadsheet does the same job for free, and you can see the whole month at once. Here's how to build one in about 15 minutes.

1. Lay out the grid

  • Column A: habit names (A3:A10), e.g. "Drink water", "Read 20 min", "Walk".
  • Row 2: the days of the month. In B2 put =DATE(2026,11,1) and in C2 put =B2+1, then drag right to AF2. Format as d so each column header just shows the day number.
  • Select B3:AF10 and choose Insert > Checkbox.

2. Count completions per habit

In AG3:

=COUNTIF(B3:AF3, TRUE)
Enter fullscreen mode Exit fullscreen mode

Drag down. That's how many days you did each habit.

3. Completion rate

In AH3:

=AG3 / COUNTA($B$2:$AF$2)
Enter fullscreen mode Exit fullscreen mode

Format as a percentage.

4. Current streak

This counts consecutive checked days ending today (it ignores future days). In AI3:

=LET(days, FILTER(B3:AF3, $B$2:$AF$2<=TODAY()),
     n, COLUMNS(days),
     last_miss, IFERROR(MAX(FILTER(SEQUENCE(1,n), NOT(days))), 0),
     n - last_miss)
Enter fullscreen mode Exit fullscreen mode

If you've missed nothing so far, the streak equals the number of days elapsed.

5. A progress bar without charts

In AJ3:

=SPARKLINE(AH3, {"charttype","bar"; "max",1; "color1","#34a853"})
Enter fullscreen mode Exit fullscreen mode

6. Color the checked days

Select B3:AF10, then Format > Conditional formatting > Custom formula: =B3=TRUE, fill green. Add a second rule =AND(B$2<TODAY(), B3=FALSE) with light red so missed days stand out.

That's it

Duplicate the tab each month and change the date in B2.

If you'd rather not build it yourself, I make spreadsheet templates under the name Financely Templates (disclosure: these are my products):

Questions about the formulas? Drop them in the comments.

Top comments (0)