Promotion wizard
At year-end, move every student into the next year with their decision (Promote / Retain / TC / Graduate).
- Settings → Academic Year → Promote Students.
- Pick From Year (the year ending). Locked years can be sources too (re-running is safe — promoted students get skipped).
- Pick To Year (must start AFTER the from year — create it first if needed).
- Wizard groups students by class. For each class:
- Three equal-weight bulk buttons: All → Promote · All → Retain · All → TC. Class 12 swaps Promote for Graduate.
- Per-student override: tap any row to flip individual decisions.
- Auto-suggested defaults: exam-failed students default to Retain; Class 12 defaults to Graduate; everyone else defaults to Promote.
- Tap Confirm. Per-student promotion log captures every decision; re-running is safe (already-promoted students are skipped).
FAQs
Can I promote before closing the year?
Yes — that's actually the normal flow. Real Indian school workflow: final exams end → results enter → promotion runs → new session starts → old year is closed later (months later) after all dues / attendance reconciliation is done.
Closed year — can I still use it as source?
Yes. The wizard's source dropdown now allows closed years too (with a "🔒 closed" label). Re-running is safe — students who already have a promotion_log entry are skipped automatically (migration 0161 added per-student idempotency).
Stream change at Class 10 → 11?
Promotion wizard shows 4 stream pills (Sci / Com / Arts / Maths) for each Class 10 student. Pick per student or use the dropdown for all.