Habit streak calculator
Paste your check-in dates to get the current streak, the longest streak, the 30-day completion rate and a week or month text view.
Runs in your browserEvery computation happens in your browser — your data never leaves this device.
Check-in log
Calendar view
✅ done ❌ missed ⬜ upcoming
Statistics
Enter your check-in dates to see the streak and completion rate.
Everything runs locally: the tool only turns the date strings you provide into day numbers. It never reads the clock (you confirm “today”) and never uploads anything.
What this tool does
- Paste the dates from your habit app or paper log and see the current streak at a glance instead of guessing whether you broke it.
- Review the past: set “today” to any date and check what your longest streak looked like back then.
- Replace “I think I kept up” with a real number — 3 out of 30 days is a 10% completion rate, and numbers do not flatter.
- Copy the month view into your notes: ✅ and ❌ make it obvious which days were missed.
Example
Input
Check-in dates: 2026-10-08 / 2026-10-09 / 2026-10-10, today 2026-10-10, window 30 days
Output
Current streak: 3 days, longest streak: 3 days, total check-ins: 3 days, checked in today: Yes, streak starts: 2026-10-08, window completion (last 30 days): 10.0%
The window rate divides by the window length (30) and counts deduplicated check-ins inside the window (3), hence 10.0%.
Frequently asked questions
Will my streak reset to zero if I have not checked in today?
No. When today has no check-in, the tool counts backwards from yesterday, so the streak survives until the day is over. Only when yesterday is also missing does the current streak drop to zero.
How do the current and longest streaks differ?
The current streak is the run that is still alive up to today (or yesterday). The longest streak is the biggest run anywhere in the history, so it keeps the length of an earlier run even after the streak breaks.
Can I change the denominator of the completion rate?
Yes — pick a 7, 30 or 90 day window. The denominator is the window length and the numerator counts deduplicated check-ins inside it. The window starts N−1 days before today, and today counts as part of it.
Why must dates be written as 2026-10-10?
Internally the tool converts each date to a day number since 1970-01-01, and a strict format stops values such as 2026/10/10 or 10-10-2026 from being read as a different day. Lines that fail are named in the error message.
Does it read my system clock or upload anything?
The statistics never read the clock: the page fills in the local date once at startup and you are free to change it. All computation happens in your browser and the page makes no requests.
Keywords:habit trackerstreakcompletion ratecheck inconsistency习惯打卡连续天数最长连续完成率打卡日历