# Year-end rollover

Preview new-session student placement and apply or revert a recorded promotion batch.

Category: School office
Guide: https://avkul.in/docs/guides/module-promotion/
Guided sample demo: https://avkul.in/docs/demo/module-promotion/
Snapshot: 11 October 2026

## Features

- Rollover preview
- Structure clone
- Promotion commit
- Batch history
- Revert
- Enrollment history

## Access and setup

Intended access: Assigned account with the required permissions
- An assigned school account with the required permissions.
- The academic, student or staff setup used by this workflow.

Permission keys: promotion:view, promotion:create, promotion:manage, promotion:delete, student:view

## Workflow

1. Choose the source and target academic sessions.
2. Clone or prepare the target class structure.
3. Review the dry-run placement and exceptions.
4. Commit only the reviewed batch and keep its reversal reference.

## Fields and controls

- fromSessionId (string, declared required)
- toSessionId (string, declared required)
- criteria (PromotionCriteriaDto, optional)
- includeTimetables (boolean, optional)
- decisions (StudentDecisionDto[], declared required)
- activateTargetSession (boolean, optional)
- notes (string, optional)
- graduationYear (number, optional)

## Current limits

- Preview writes nothing; commit changes enrollment. Locked sessions and school ownership checks still apply.

## Actual application access

- https://avkul.in/en/school/promotion

## API reference

- POST /api/v1/promotions/preview — Dry-run a rollover — writes nothing; promotion:view
- POST /api/v1/promotions/clone-structure — Copy classes/sections/subjects into the new session; promotion:create
- POST /api/v1/promotions/commit — Apply the rollover (transactional); promotion:manage
- POST /api/v1/promotions/batches/:id/revert — Revert; promotion:delete
- GET /api/v1/promotions/batches — Batches; promotion:view
- GET /api/v1/promotions/enrollments — Per-session placement history for a student; student:view

## Demo access

No login is required for the guided sample demo. Its fictional records and actions stay in this browser tab; they do not modify ERP records or send messages/payments. An assigned account is required for the actual ERP links.

Source inventory checked on 11 October 2026. This source inventory is not a certification of every external provider or device flow.
