# Student Promotion and Enrollment Management Plan

## 1. Core Rule

A student who passes the current level should not be automatically placed into the next level.

The student should first be marked as:

**Eligible for Promotion**

After that, the parent or guardian must complete enrollment for the promoted level.

Once the parent completes enrollment, the student becomes:

**Promoted and Enrolled**

No separate school approval is required.

## 2. Promotion Principle

Promotion and enrollment are separate steps.

### Promotion

Promotion confirms that the student passed the current level and qualifies for the next level.

### Enrollment

Enrollment confirms that the parent or guardian wants the student to continue at the school in the promoted level for the next school year.

Once enrollment is completed by the parent, the student should be officially assigned to the new promoted level.

## 3. Promotion Statuses

Recommended statuses:

- Not Reviewed
- Eligible for Promotion
- Awaiting Parent Enrollment
- Enrollment Started
- Promoted and Enrolled
- Conditional Promotion
- Repeated Level
- On Hold
- Withdrawn
- Graduated
- Not Enrolled for Next Year

## 4. Status Definitions

### Not Reviewed

The student has not yet been evaluated for promotion.

### Eligible for Promotion

The student passed the current level and qualifies for the next level, but the parent has not started enrollment yet.

### Awaiting Parent Enrollment

The student is eligible for the next level, and the system is waiting for the parent to complete enrollment.

### Enrollment Started

The parent has started the enrollment process but has not completed all required steps.

### Promoted and Enrolled

The parent completed enrollment for the promoted level. The student is officially placed into the next level for the new school year.

### Conditional Promotion

The student has pending academic or administrative requirements before promotion eligibility can be finalized.

Examples:

- Makeup exam required
- Missing final grade
- Attendance review
- Academic condition pending

### Repeated Level

The student did not meet the passing requirements and must repeat the same level.

### On Hold

The student cannot continue through the promotion process because of an unresolved issue.

Examples:

- Missing academic result
- Enrollment form incomplete
- Financial hold, if used by school policy
- Required documents missing

### Withdrawn

The student is no longer continuing at the school.

### Graduated

The student completed the final level and does not move to another school level.

### Not Enrolled for Next Year

The student passed and was eligible for promotion, but the parent did not complete enrollment before the deadline.

This should not be treated as failure. It means the student passed but did not continue enrollment.

## 5. Promotion Eligibility Criteria

A student may become eligible for promotion when the school confirms that the student passed the current level.

Eligibility may be based on:

- Final academic result
- Required subject completion
- Final average
- Attendance requirement, if applicable
- Makeup exam result, if applicable
- Level completion status

The school should define these rules clearly per level or program.

## 6. Updated Workflow

### Step 1: Academic Result Finalized

Teachers or academic staff submit the student’s final result for the current level.

The system records:

- Final average
- Passed or failed result
- Attendance result, if required
- Current level completion status
- Teacher comments, if needed

### Step 2: Promotion Eligibility Check

The system checks whether the student passed the current level.

If the student passed, the system marks the student as:

**Eligible for Promotion**

or

**Awaiting Parent Enrollment**

The student is not yet moved into the next level.

### Step 3: Parent Enrollment Required

The system notifies the parent or guardian that the student is eligible for the next level and must complete enrollment.

The notification should include:

- Student name
- Current level completed
- Promoted level
- Enrollment deadline
- Required documents, if any
- Required payment or deposit, if applicable
- Instructions to complete enrollment

### Step 4: Parent Starts Enrollment

When the parent begins the enrollment process, the student status becomes:

**Enrollment Started**

The enrollment process may include:

- Confirming student information
- Confirming parent or guardian information
- Confirming the promoted level
- Uploading required documents
- Accepting school policies
- Paying registration fee or deposit, if applicable
- Submitting the enrollment form

### Step 5: Parent Completes Enrollment

Once the parent submits all required enrollment information and completes required payment, if applicable, the enrollment is considered complete.

The student status becomes:

**Promoted and Enrolled**

No additional school approval is needed.

### Step 6: New School-Year Record Created

After parent enrollment is completed, the system creates the student’s new school-year enrollment record.

The new record should include:

- Student ID
- Parent ID
- New school year
- Promoted level
- Enrollment status
- Enrollment completion date
- Source promotion record

## 7. Decision Logic

```text
IF student did not pass current level:
    promotion_status = repeated_level

ELSE IF student passed current level AND parent has not started enrollment:
    promotion_status = awaiting_parent_enrollment

ELSE IF student passed current level AND parent started enrollment BUT enrollment incomplete:
    promotion_status = enrollment_started

ELSE IF student passed current level AND parent completed enrollment:
    promotion_status = promoted_and_enrolled

ELSE:
    promotion_status = on_hold
```

## 8. Enrollment Completion Rule

Enrollment should be considered complete when all required parent-side actions are finished.

Required actions may include:

- Enrollment form submitted
- Required student information confirmed
- Required parent information confirmed
- Required documents uploaded
- Required agreement accepted
- Required registration fee or deposit paid, if applicable

Once these are complete, the system should automatically finalize the promotion.

## 9. Record Update Rule

The system should not overwrite the student’s current-level record.

Instead, it should:

1. Keep the current school-year academic record unchanged.
2. Create a promotion eligibility record.
3. Wait for parent enrollment.
4. Create a new enrollment record for the next school year after parent enrollment is complete.
5. Assign the student to the promoted level only in the new school-year record.

## 10. Level Mapping

The school should maintain a clear level progression map.

Example:

| Current Level | Next Level |
|---|---|
| KG1 | KG2 |
| KG2 | Grade 1 |
| Grade 1 | Grade 2 |
| Grade 2 | Grade 3 |
| Grade 3 | Grade 4 |
| Grade 4 | Grade 5 |
| Grade 5 | Grade 6 |
| Grade 6 | Grade 7 |
| Grade 7 | Grade 8 |
| Grade 8 | Grade 9 |
| Grade 9 | Youth |
| Youth | Graduated |

The system should store this mapping in configuration or a dedicated table, not hard-code it inside controller logic.

## 11. Recommended Data Model Updates

### student_promotion_records

Recommended fields:

- promotion_id
- student_id
- parent_id
- current_school_year
- next_school_year
- current_level_id
- promoted_level_id
- promotion_status
- passed_current_level
- enrollment_required
- enrollment_status
- enrollment_id
- parent_notified_at
- enrollment_deadline
- enrollment_completed_at
- promotion_finalized_at
- created_at
- updated_at

### enrollment_applications

Recommended fields:

- enrollment_id
- student_id
- parent_id
- school_year
- requested_level_id
- source_promotion_id
- application_status
- submitted_at
- completed_at
- required_documents_status
- payment_status
- created_at
- updated_at

### promotion_conditions

Recommended condition type:

- parent_enrollment_required

Example:

- condition_type: parent_enrollment_required
- description: Parent must complete enrollment for the promoted level.
- status: pending
- deadline: enrollment deadline date

## 12. Parent Portal Requirements

The parent portal should show the parent a clear action.

Example message:

“Your child has passed the current level and is eligible for promotion to [Promoted Level]. Please complete enrollment for the new school year by [Deadline].”

The parent should be able to:

- View the promoted level
- Start enrollment
- Confirm student information
- Upload required documents
- Pay required enrollment fee, if applicable
- Submit enrollment
- View enrollment status

## 13. Admin Panel Requirements

The admin panel should allow staff to view:

- Students eligible for promotion
- Students awaiting parent enrollment
- Students with enrollment started
- Students promoted and enrolled
- Students not enrolled for next year
- Students repeating the level
- Students on hold

Admin users should also be able to:

- Set enrollment deadlines
- Send reminders
- View enrollment completion status
- Export pending enrollment lists
- View promotion history

## 14. Reminder Process

The system should send reminders to parents who have not completed enrollment.

Suggested reminders:

- First reminder after student becomes eligible
- Second reminder halfway before deadline
- Final reminder before deadline
- Expiration notice after deadline

Each reminder should be logged.

## 15. Deadline Handling

If the parent does not complete enrollment before the deadline, the student should be marked as:

**Not Enrolled for Next Year**

This means:

- The student passed the current level.
- The student was eligible for promotion.
- The parent did not complete enrollment.
- The student should not be counted as enrolled for the next school year.

## 16. Reports

The system should generate reports for:

- Students eligible for promotion
- Students awaiting parent enrollment
- Students with enrollment started
- Students promoted and enrolled
- Students not enrolled for next year
- Students repeating the level
- Students on hold
- Promotion summary by current level
- Enrollment completion summary
- Parent enrollment pending list

## 17. Permissions

Access should be controlled by role.

### Teacher

Can submit academic results and promotion recommendations.

### Academic Coordinator

Can review academic eligibility and promotion readiness.

### Parent or Guardian

Can complete enrollment for the promoted level.

### Registrar or Admin Staff

Can view promotion and enrollment status, send reminders, and export reports.

### Administrator

Can configure levels, promotion rules, deadlines, and system settings.

## 18. Audit Trail

Every promotion and enrollment action should be logged.

Audit log should track:

- User who made the action
- Date and time
- Student affected
- Old value
- New value
- Action type
- Notes, if any

Important audited actions:

- Academic result submitted
- Student marked eligible for promotion
- Parent notified
- Enrollment started
- Enrollment completed
- Student marked promoted and enrolled
- Student marked not enrolled for next year
- Manual status changes

## 19. Implementation Phases

### Phase 1: Promotion Rules and Level Mapping

- Create level progression table.
- Create promotion status rules.
- Define final levels.
- Define repeat-level behavior.

### Phase 2: Eligibility Engine

- Build academic eligibility check.
- Generate promotion eligibility records.
- Mark eligible students as awaiting parent enrollment.

### Phase 3: Parent Enrollment Flow

- Build parent enrollment action.
- Allow parent to confirm information.
- Allow parent to upload documents, if needed.
- Allow parent to pay registration fee or deposit, if applicable.
- Mark enrollment complete automatically when required steps are done.

### Phase 4: Record Update

- Create next-year enrollment record after parent enrollment completion.
- Assign promoted level only in the new school-year record.
- Preserve current-year academic history.

### Phase 5: Notifications and Reports

- Notify parents when students become eligible.
- Send reminders before deadline.
- Generate pending enrollment reports.
- Generate promoted and enrolled reports.

## 20. Final Rule

The system should follow this rule:

**Passed Current Level + Parent Completed Enrollment = Promoted and Enrolled**

Therefore:

**Passed ≠ Enrolled**

**Eligible for Promotion ≠ Promoted and Enrolled**

**Promoted and Enrolled = Student passed current level + Parent completed enrollment**
