End of session is quietly one of the most error-prone moments in a school's year. Hundreds of students need to move up a class, some need to repeat, leavers need to graduate, and it all tends to happen in a rush after results are out and everyone is tired. Do it by hand and a child ends up in the wrong class, or a name gets missed, and you're untangling it in week two of the new term.
Here is how to promote and graduate students without the mess.
Make promotion a reviewed decision, not a bulk button
The safe way to promote is to decide, then apply, with a person in between. A section head builds a draft for each class, the system suggesting a recommendation per student based on their term average, attendance and subject results, and a head reviews it. Any borderline case gets a note. Then an admin approves the draft and runs it. Nobody is promoted by an anonymous bulk action, and the students who need a second look actually get one.
The system also watches for one specific trap: if the underlying data changed after the draft was saved, it won't quietly apply a stale decision. It stops and asks, so a mark corrected at the last minute doesn't get ignored.
Send each student to the right next class
Working out where a student goes next is fiddlier than it sounds, especially with named arms. If your classes point at the class above them, the system follows that pointer, so a cohort stays together even when the level names change. Otherwise it matches on level and keeps the arm where it can. When a setup is genuinely ambiguous, it stops rather than guessing and scattering students into the wrong groups. Where a rule says to spread a class across several arms, it distributes them evenly instead of dumping everyone in one.
Promote the whole school in the right order
For a whole-school promotion, the run happens in the background and processes classes in a sensible order, clearing the top classes first so the ones below promote into freed-up seats. It guards against two runs happening at once, and records the policy it used, so year-end promotion is something you set going and check, not a marathon you babysit.
Graduate leavers into alumni cleanly
Graduation is its own decision. When a student graduates, they move out of their class and into your alumni records automatically, and if your school has a leaving-certificate template set up, a certificate is generated for them. If you want to hold graduation until a student has cleared fees or returned library items, you can require that, so nobody graduates with loose ends.
Handle mid-year exits separately
Not every departure happens at year-end. A student who withdraws, transfers or is suspended mid-term is handled on its own path. Withdrawing or transferring removes their class places and signs them out, while a suspension keeps their place because they're expected back. Fees and arrears are deliberately left for the bursar to decide, not wiped automatically. A suspended student can be brought back; a withdrawn one returns through admissions, so re-entry is a proper decision rather than a quiet toggle.
Sign off before the new year starts
Because year-end touches both academics and money, moving into the new session can require two sign-offs: a director approving the promotion outcome once the old session is properly closed, and the banking signatory approving fees for the new session before they go out. Only then does the new year begin. It's a deliberate pair of gates so a whole school doesn't roll into a new session on an unchecked decision.
The result
Promotion and graduation done this way means students land in the right classes, leavers become alumni cleanly, and the new session starts on a foundation someone actually signed off. The rush is still a rush, but it's no longer a source of errors you'll be fixing for weeks.
This closes the year that setting up a new academic session began, and depends on results being finalised first. Promotion is part of UnifyLearn. To see it, start a free trial or view pricing.