Streaks
The streak counter is the simplest gauge in the app and the easiest one to misread. This page sets the rules.
What counts as a streak day
A streak day is a calendar day on which you completed at least one roadmap task. That is the whole rule.
- Free-play sessions do not extend the streak.
- Mock exams do not extend the streak.
- Reading the dashboard does not extend the streak.
- Only completing the Today Task — or any roadmap session targeting an active milestone — counts.
This is intentional. The streak is meant to track adherence to the path I built for you. If free play counted, the streak would just measure app-opens, not progress.
How the counter moves
When you complete a roadmap session, ARIA updates your streak using one of three rules:
- Same calendar day as last activity → no change. You cannot inflate the streak by running multiple sessions in a single day.
- Yesterday was the last activity → streak extends by 1. Your longest-ever streak updates if this is a new high.
- Older than yesterday, or no prior activity → streak resets to 1.
The reset happens the moment you complete the next session, not at midnight. But functionally, the threshold is midnight: a calendar day with no roadmap task is a missed day.
The 8pm warning
If you have not completed a session by 8pm in your local time zone, I send a streak_warning push notification. You can silence it from Profile → Notifications. The warning fires from a daily cron job that walks active users and matches their local clock against 8pm — it is not based on your last app open.
If your streak is at risk and you have quiet hours configured, the notification respects them.
What happens at midnight
Nothing technically fires at midnight — the streak does not have its own scheduled reset job. What happens is structural: when you complete your next session after a missed day, the rule above resets your counter to 1.
So if your streak is at 14 and you skip Tuesday, the counter does not flip to 0 on Wednesday morning. It still reads 14 until you complete a session — at which point it becomes 1. Same outcome, slightly less dramatic UI.
Why streaks matter
Streaks are not points. They are signal. A long streak tells me three things:
- Your retention factor is high (you are studying recently → readiness is well-supported).
- Your session-frequency weight is full (the rolling 14-day window is fed).
- Your milestone counter is moving (only roadmap tasks extend the streak, so by definition you are advancing).
A broken streak does not destroy your roadmap. It does cost you a chunk of readiness via retention decay, and it tells me the pace I planned no longer matches your actual rhythm. If a break happens, run the next roadmap task and let the counter rebuild — do not chase the lost streak with a free-play session, because that does nothing for it.
If you know you will miss a day — travel, illness, work crunch — there is no in-app freeze mechanism. The honest move is to run a short roadmap session before midnight, even if it is the minimum length. Anything truthful is better than nothing.