2. Student Fields - Updated!
Remaining Years
The remaining years field indicates how many years the student has left before leaving the school's highest grade level. This information is useful for financial forecasting. Remaining years is continually updated everytime the student completes a year.
PEMS find the maximum value of grade level in the system = highest_grade_level. Note: the calculation below does not include the academic year in progress.
remaining_years = highest_grade_level - current_grade_level
Graduation Date
The graduation date is the end date of the last academic year the student will attend the school
remaining_years = highest_grade_level - current_grade_level (same as above)
sequence of last academic year = sequence of current academic year + remaining_years
graduation date = end date of last academic year (as found by the sequence above)
Note: In subsequent versions, there will be a manual override on remaining year and graduation date.
Student First Term
The student first term is a field in the student table that has the name of the school term the student first attended the school. There is no parent/child relationship between terms and students because students are linked to student terms, which are linked to school terms. So this field is just a text field.
Based on the student's start date, PEMS finds corresponding school term, and enters the name of the term in the Student First Term field.
- The start date of the school term is equal to or before the student start date
- AND the end date of the term is equal to or after the start_date
student's first term: find the school term such that: school term start date >/= student start date AND school term end date is =/> student start date
Note: The start term is constantly recacluated untill the student start date passes.
Enrollment Year Terms
Students transfer in and out of schools at various times and frequently in the middle of school terms. Many student's do not complete all the terms in their first year enrolled in the term. Based on the student's start date, PEMS calculates how many terms the student attends in their first year attending the school.
Based on student's start date, PEMS finds the corresponding school term, this is the described above.
There is a term label record associated to this first school term, we will use the sequence of the related term label record. The seuqence of the term label record tells us if the student joined in the first, second or third, etc. term
Find the student's first school term based on student start date (same step as above)
Find the sequence of the term label record associated to the school term found above, this will be called "sequence of term label of start term"
Count the total number of term label records that are marked "required", this will be called "required terms"
enrollment year terms = "required terms" - "sequence of term label of start term" + 1
Note: The enrollment year terms are constantly recacluated untill the student start date passes.
Total Remaining Terms
The total remaining terms can not be caculated unless the number of terms in the enrollment year has been calculated.
Total remaining terms = (enrollment year terms) + (remaining academic years) x (required terms)
The calculation above give us the inital remaning terms, but it would only update when a full academic year is completed and the remaining academic years is re-calculated. So the expression above will not show that the student completed a fall term in the middle of the year.
When a student has completed a required term, a term should be subtracted from the value of total remaining terms. We know when a student has completed a term by the school calendar. This is purely a calendar function since students complete terms even if they fail all their classes.
When current date is > the current school term end date, then Total remaining terms (for all students) = Total remaining terms (for all students) - 1
Note: Apply this calculation only for reuqired terms, we do not want to subtract one term for options terms.
The user should be able to override the values at any time.