Skip to main content

Carry-over and recovery

Missed a day? The roadmap doesn't break. I carry the task forward and adjust.

How carry-over works

If today's task ends the day in pending status, the next time you open the app I do three things:

  1. Mark yesterday's task as carried_over.
  2. Re-surface that same task as today's task — same title, same subtitle, same context.
  3. Stamp it with triggered_by: 'behind_schedule' and a carried_over_from reference back to yesterday.

The card shows a small amber Carried over pill in the action row so you know this is a leftover, not a fresh assignment. The Start button still works the same way.

You don't lose anything by carrying over. But you don't gain anything either — the schedule clock keeps ticking.

How the schedule status moves

After every completed task, I recompute your schedule status:

StatusBehind schedule by
on_track0 days
slightly_behind1–2 days
at_risk3–6 days
off_track7+ days

The number is expected_tasks − completed_roadmap_tasks, where expected is the number of days since I generated your roadmap. Free-play sessions don't count — only tasks marked is_roadmap_required.

When ARIA rewrites the roadmap

Once you cross 7 days behind, I don't just keep accumulating debt. I trigger a recalculation:

  • estimated_completion_date is recomputed based on your actual session cadence over the last 7 days.
  • recalculation_reason is set to behind_schedule_auto.
  • The roadmap status flips from active to recalculated.
  • recalculated_at is timestamped.

Your completed milestones are preserved. The remaining work is rescheduled against your real velocity, not the optimistic plan from day one.

warning

Recalculation is a real shift, not a cosmetic one. Your new completion date may move significantly. If you've enrolled with a real exam date in mind, this is the moment to either pick up the pace or push the exam.

The recovery message

When you've been behind for 3+ days and you open the app, I generate a recovery message — a short streamed note in my voice that does three things:

  1. Acknowledges where you are without pretending it's fine.
  2. Tells you what changed in your plan (new completion date, milestones remaining).
  3. States whether the pass guarantee is still achievable from here.

The message streams in token-by-token. It costs 2 credits to generate and it's saved to your roadmap so I can reference it in future sessions.

You won't get a new recovery message every day you're behind. I generate one when the situation changes — when you cross from slightly_behind into at_risk, when the recalculation fires, or when you return after a long gap.

What the recovery_session task does

If your behind-count is 3+ on the morning I pick today's task, the priority engine assigns recovery_session over a normal focus session. It's a longer session (40 min) with one job: close the gap. The session targets your weakest open errors and the topics on the active milestone you've made the least progress on.

A single recovery session won't catch you up if you're 7 days down. It will, however, stop the slide and feed the next day's priority engine with fresh data so I can pick a smarter task tomorrow.

What you control

  • Finish the task. That's the only input that updates the schedule.
  • Open the app at midnight-ish in your timezone. That's when the carry-over runs.
  • Don't game the streak with free-play. Free sessions are useful, but they don't move the schedule. Only roadmap-required tasks do.

If you need to take a planned break — vacation, exam crunch in another subject, life — pause the roadmap from the profile screen instead of letting carry-overs stack. A pause doesn't trigger recalculation; it just stops the clock.