Habit tracker: monthly grid, streaks and completion rate
Tick off your habits day by day on a monthly grid and see your current streak, best streak and monthly rate, with JSON backup and no account needed.
How the streak, best streak and monthly rate are calculated
The current streak counts the days ticked in a row up to today; while today is still empty, yesterday's streak holds. The best streak is the longest run of consecutive days, and the monthly rate divides ticked days by the days elapsed in the month.
Rules
- Current streak: count back from today, or from yesterday if today is not ticked yet, as long as days are ticked.
- Best streak: the longest run of consecutive ticked days, across all months.
- Monthly rate: ticked days ÷ days elapsed in the month, today included; a past month counts all its days.
Example
On 29 October, a habit is ticked from the 1st to the 10th, from the 15th to the 26th, then on the 28th and 29th. Current streak: 2 days (the 27th is missing). Best streak: 12 days, the 15th to the 26th. Monthly rate: 24 days out of 29, or 82.8%, shown as 83%.
Dates and storage
Each box is a local date in YYYY-MM-DD format, taken from your device. Converting to UTC, as toISOString() does, would have shifted a box ticked late in the evening in the Americas by one day. Days follow the calendar rather than 24-hour blocks, so clock changes cause no jumps. Data stays in this browser; JSON export works as a backup, and import merges habits with the same name without deleting anything.
Sources and dates: MDN Web Docs, Date.prototype.toISOString(), time zone always UTC (checked on 29/10/2026)
Frequently Asked Questions
How is a habit streak calculated?
It counts the days ticked in a row, going back from today. If today's box is still empty, the streak that ended yesterday stays on screen until midnight: a habit ticked on the 27th and 28th shows 2 days on the morning of the 29th.
What happens if I miss a day?
The current streak starts again from zero, but the best streak keeps your longest run. You can tick a past day afterwards, and the streak and monthly rate are recalculated at once.
How do I move my habits to another device?
Export the JSON file and import it on the other device. The import adds ticked days to habits with the same name and creates the others, without deleting anything.
Is this tool really free?
Yes, all tools on Kristools are 100% free and accessible without registration.
Is my data protected?
Yes. All processing is performed directly and securely inside your browser. No personal data is sent to our servers.