Catalog / free printables
A bullet journal habit tracker on one printable page: a horizontal weekly spread with six write-in habit rows across seven day columns, one small circle per cell, a month line at the top, and a three-symbol key. Fill the circle when the habit happens, slash it for a partial day, dot it for a skip. Print below, or keep reading for how we run the spread, including four opinions about habit lists. The full 90-day habit tracker spreadsheet is linked at the bottom.
Bullet journal habit trackers run horizontal for a reason we care about: the day reads as one column. Write the month on the line at the top and the weekday or date above each of the seven columns, then write up to six habits on the rows, phrased so a stranger could judge them ("walk 20 minutes" instead of "move more"). Each cell holds one small circle. Each evening, run your finger down today's column and mark it. At the end of the week, the finished page shows all seven columns side by side.
Weekly habit spread · bullet journal style · one page
Key · write your own over the gray words
Fits A4 and US Letter at 100%. Print one page per week; the month line and day headers are write-in, so the same sheet covers every week of the year. Keep finished pages stacked in date order and the stack becomes the record.
Our opinions from keeping these pages, no research behind them, take or leave:
This page is the paper half. The full Habit Tracker Pack moves the same marks into a 90-day spreadsheet for Google Sheets and Excel: 12 habit rows x 90 day columns with live Streak and "Done of 90" formulas, plus an 8-week review sheet (wins, misses, one adjustment per week). The CSVs ship generated by a build script (build.py), which also re-implements the formula logic in Python to verify it. From the pack's README, verbatim:
Mark x = done, m = missed, blank = day not reached yet. The Streak column finds your last mark in the row: if it's an x, it counts back to your last miss and shows the run; if it's an m, it shows 0. The Done column counts all x's across 90 days. Standard functions only (IF, SUMPRODUCT, MAX, COLUMN, COUNTIF) — works in Google Sheets and Excel, no array entry needed.
Sample marks in days 1–12 of the first three rows show the formulas working. Clear cells F2:Q4 before you start. The tracker counts days; it doesn't remind you. No notifications, no app sync. Formulas verified by Python logic re-check and syntax inspection, not by opening in Excel/LibreOffice (no spreadsheet app on the build machine). Import steps are standard Sheets/Excel behavior.
Setup takes about two minutes: File → Import → Upload in Google Sheets, or open the CSVs directly in Excel. The three marks on this page map onto it: filled circle becomes x, dot becomes m, and a slashed circle is a partial you record in the weekly review. License: personal and commercial use, no reselling the pack as-is or with minor changes. If you track by month instead of week, the monthly habit tracker printable covers 31 days per page, and the 66-day habit tracker runs three habits for about two months per page.
Full Habit Tracker Pack, 90-day spreadsheet →one-time · Google Sheets + Excel · instant download · personal and commercial use