fix invoice and enrollment fees
This commit is contained in:
@@ -0,0 +1,241 @@
|
||||
# Balanced Student Section Distribution Plan
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This plan describes how already-promoted students will be distributed into sections for the next academic year.
|
||||
|
||||
Promotion, deliberation, passing decisions, and student eligibility have already been completed and are outside the scope of this process.
|
||||
|
||||
The distribution process must ensure that:
|
||||
|
||||
* Students are divided as equally as possible among sections.
|
||||
* Each section contains a balanced number of students from every score range.
|
||||
* Section average scores are reasonably close.
|
||||
* User-defined minimum and maximum section sizes are respected.
|
||||
|
||||
## 2. Required User Inputs
|
||||
|
||||
Before starting the distribution, the user must enter:
|
||||
|
||||
| Input | Description |
|
||||
| ---------------------------- | --------------------------------------------- |
|
||||
| Number of Sections | Number of sections to be created |
|
||||
| Minimum Students per Section | Minimum permitted section size |
|
||||
| Maximum Students per Section | Maximum permitted section size, if applicable |
|
||||
|
||||
The student list must already include each student’s final score from the previous academic year.
|
||||
|
||||
## 3. Score Range Classification
|
||||
|
||||
Students must be classified using their previous-year final scores:
|
||||
|
||||
| Score Group | Score Range |
|
||||
| ----------- | -----------: |
|
||||
| Group 1 | 90–100 |
|
||||
| Group 2 | 80–89 |
|
||||
| Group 3 | 70–79 |
|
||||
| Group 4 | 69 and below |
|
||||
|
||||
Each student must belong to exactly one score group.
|
||||
|
||||
## 4. Validate the Number of Sections
|
||||
|
||||
Let:
|
||||
|
||||
* **N** = Total number of students to distribute.
|
||||
* **S** = Number of sections entered by the user.
|
||||
* **M** = Minimum number of students per section.
|
||||
* **X** = Maximum number of students per section.
|
||||
|
||||
The requested section count is valid only when:
|
||||
|
||||
**S × M ≤ N**
|
||||
|
||||
When a maximum section size is used, the following condition must also be satisfied:
|
||||
|
||||
**N ≤ S × X**
|
||||
|
||||
Therefore, the complete validation rule is:
|
||||
|
||||
**S × M ≤ N ≤ S × X**
|
||||
|
||||
If no maximum section size is used, only the minimum condition applies.
|
||||
|
||||
## 5. Validation Results
|
||||
|
||||
The system should return one of the following results:
|
||||
|
||||
### Insufficient Students
|
||||
|
||||
The requested number of sections cannot be created because the total number of students is below the required minimum.
|
||||
|
||||
### Capacity Exceeded
|
||||
|
||||
The requested sections cannot contain all students without exceeding the maximum section size.
|
||||
|
||||
### Valid Setup
|
||||
|
||||
The entered number of sections and section-size limits are valid, and distribution may proceed.
|
||||
|
||||
The system must not automatically change the number of sections entered by the user.
|
||||
|
||||
## 6. Determine the Target Section Sizes
|
||||
|
||||
Divide the total number of students by the number of sections.
|
||||
|
||||
Each section should receive:
|
||||
|
||||
**Base section size = N divided by S**
|
||||
|
||||
Any remaining students should be assigned one at a time to different sections.
|
||||
|
||||
The difference between the largest and smallest section should not exceed one student.
|
||||
|
||||
Example:
|
||||
|
||||
* Total students: 61
|
||||
* Number of sections: 2
|
||||
|
||||
Result:
|
||||
|
||||
* Section 1: 31 students
|
||||
* Section 2: 30 students
|
||||
|
||||
## 7. Calculate the Score-Group Allocation
|
||||
|
||||
For each score group:
|
||||
|
||||
1. Count the number of students in that group.
|
||||
2. Divide the group total by the number of sections.
|
||||
3. Assign the base number to every section.
|
||||
4. Distribute any remaining students across different sections.
|
||||
|
||||
For a score group containing **G** students:
|
||||
|
||||
**Base allocation = G divided by S**
|
||||
|
||||
**Remaining students = G modulo S**
|
||||
|
||||
Example:
|
||||
|
||||
* Students scoring 90–100: 11
|
||||
* Sections: 2
|
||||
|
||||
Result:
|
||||
|
||||
* Section 1: 6 students
|
||||
* Section 2: 5 students
|
||||
|
||||
The difference between sections within the same score group should not exceed one student.
|
||||
|
||||
## 8. Mathematical Limitation
|
||||
|
||||
Exact equality is not always possible.
|
||||
|
||||
For example, nine students from one score group cannot be divided equally between two sections. One section must receive five students and the other must receive four.
|
||||
|
||||
Therefore, the required rule is:
|
||||
|
||||
* Equal distribution when mathematically possible.
|
||||
* A maximum difference of one student when exact equality is impossible.
|
||||
|
||||
## 9. Student Assignment Method
|
||||
|
||||
Within each score group:
|
||||
|
||||
1. Sort students from highest score to lowest score.
|
||||
2. Assign them using a snake-distribution method.
|
||||
3. Reverse the assignment direction after each round.
|
||||
|
||||
For two sections, use:
|
||||
|
||||
* First round: Section 1, Section 2
|
||||
* Second round: Section 2, Section 1
|
||||
* Third round: Section 1, Section 2
|
||||
|
||||
For three sections, use:
|
||||
|
||||
* First round: Section 1, Section 2, Section 3
|
||||
* Second round: Section 3, Section 2, Section 1
|
||||
|
||||
This prevents one section from repeatedly receiving the highest-scoring students.
|
||||
|
||||
## 10. Rotate Remaining Students
|
||||
|
||||
Additional students caused by uneven division should not always be assigned to the first section.
|
||||
|
||||
The section receiving the extra student should rotate between score groups.
|
||||
|
||||
Example with two sections:
|
||||
|
||||
| Score Range | Section Receiving the Extra Student |
|
||||
| ------------ | ----------------------------------- |
|
||||
| 90–100 | Section 1 |
|
||||
| 80–89 | Section 2 |
|
||||
| 70–79 | Section 1 |
|
||||
| 69 and below | Section 2 |
|
||||
|
||||
This helps maintain equal total section sizes.
|
||||
|
||||
## 11. Balance the Average Scores
|
||||
|
||||
After the initial distribution, calculate the average previous-year score for every section.
|
||||
|
||||
The difference between the highest and lowest section averages should preferably not exceed one percentage point.
|
||||
|
||||
If the difference is too large, students may be exchanged between sections when:
|
||||
|
||||
* They belong to the same score range.
|
||||
* The exchange improves the average-score balance.
|
||||
* Section sizes remain valid.
|
||||
* Minimum and maximum limits are still satisfied.
|
||||
|
||||
## 12. Additional Distribution Considerations
|
||||
|
||||
After academic balancing, the distribution may also be reviewed for:
|
||||
|
||||
* Gender balance, where applicable.
|
||||
* Special educational needs.
|
||||
* Language-support requirements.
|
||||
* Behavioral considerations.
|
||||
* Documented student-separation requirements.
|
||||
* Medical or accessibility needs.
|
||||
|
||||
Any adjustment should preserve the score-range and section-size balance as much as possible.
|
||||
|
||||
## 13. Final Distribution Summary
|
||||
|
||||
The final result should include:
|
||||
|
||||
| Section | Total Students | 90–100 | 80–89 | 70–79 | 69 and Below | Average Score |
|
||||
| --------- | -------------: | -----: | ----: | ----: | -----------: | ------------: |
|
||||
| Section 1 | 30 | 5 | 8 | 9 | 8 | 78.4 |
|
||||
| Section 2 | 30 | 5 | 7 | 9 | 9 | 78.2 |
|
||||
|
||||
## 14. Final Validation Checklist
|
||||
|
||||
Before confirming the distribution, verify that:
|
||||
|
||||
* The number of sections was entered by the user.
|
||||
* The minimum section size was entered by the user.
|
||||
* The maximum section size was entered, when applicable.
|
||||
* All students have been assigned exactly once.
|
||||
* No section is below the minimum size.
|
||||
* No section exceeds the maximum size.
|
||||
* Total section sizes differ by no more than one student.
|
||||
* Score-group counts differ by no more than one student.
|
||||
* Average scores are reasonably balanced.
|
||||
* No student is missing or duplicated.
|
||||
|
||||
## 15. Final Rule
|
||||
|
||||
The system distributes students only after promotion and deliberation are complete.
|
||||
|
||||
The user determines the number of sections and the section-size limits.
|
||||
|
||||
The system validates those values and creates the most balanced possible distribution based on:
|
||||
|
||||
* Total student count.
|
||||
* Score-range counts.
|
||||
* Section-size limits.
|
||||
* Average section scores.
|
||||
Reference in New Issue
Block a user