Skip to main content

3. Create Student Term Records

Function Objectives

  • Make a new set of student term records for a new student until the end of the grade span.
  • Make a new set of student terms when a student progresses into a new grade span.
  • Make one student term record for every term the student is planning to attend in the associated grade span.

Information Required for this Function

From the student table, we know the following fields:

  • Student's school start term  - the school term the student starts in
  • Grade level - the students current grade level
  • Grade span - the planning horizon for that student based on their grade level
  • Grade span end grade - the end grade field from the associated grade span record

From the school term we know the following fields:

  • Ordinate - the sequence of school terms, adding 1 to the ordinate finds the next record in the sequence
  • Flag field - official end term is referenced from the associated term label record
  • Academic year records until the end of the grade span
  • School Term Records until the end of the grade span

Grade Spans

The student terms records are created from the point the student enters the school until the end of the student's assigned grade span. Grade spans are automatically updated when the student's grade level increased to land in a new grade span. When the student enters a new grade span, this function is run again.

For example,  If the student is promoted from grade 5 to grade 6, and grade 6 is in a different grade span (like US middle school) then this change will trigger that all the student term records will be created until the student has completed 8th grade.  The student terms for the next grade span (high school) will not be created until the student is promoted into the next grade span.


Student Term's Student Sequence

The student term student sequence stores the sequence of the records in the order the student will take them.  Student Sequence is a continuously increasing integer value from 1, the first term at the school, until the student has graduated from all available grade levels. 

For example, a student enters the fall term of kindergarten, the school has defined two required school terms. 13 years later, the student's last term (13x2 = 26) will have a student sequence of 26. 


Student Term at_grade

The student term must store the predicted grade level of the student for that specific term in the at_grade field. At first, the at_grade is the starting grade level of the student, after the end of the academic year, the student's at_grade will increase.

The at_grade is NOT the same information as the student's current grade level. Only in for the current term will the at_grade be the current grade level.


Optional and Required School terms

Schools may configure optional terms, for example a summer term that students may or may not take.  Student terms are made for both optional and required terms.

Student Term Name

The student term name captures the most relevant information, the school term label, the student information, and the grade the student was at during that term. Student Term name is default field value the user may not change.

Set the student term name to concatenate: Associated Term Name, Associated student initials, Student Code, “GL” grade level number (use at_grade value), example from Kassidy’s Record: Spring 2023 KKB14 GL3


Discussion

Trigger to increase the at_grade

When a student term is created, the record is associated to a school term, which has been linked to the term label record. If that term label record is flagged (flag field) as the official end term of the school year, the student's grade level will increase by one. At the end of the school year, students increase in grade level,  so the at_grade value increases for the next student term. 

Determining the end of the grade span

A student is at the end of a grade span when their grade level is promoted to the next grade level that falls into the next grade span. The predicted grade level is stored in the student term at_grade field.  When the (at_grade field value + 1) is greater that the end grade level in the grade span, then the function ends and no new student terms are created.

So if the student's predicted at_grade is greater than the end grade of the associated grade_span, then the student's predicted grade level exceeds the grade span, student term records do not need to be created for the next span.

3. Create Student Term Records Not started

3.1 Automatically Create Student Term Records for New Students


Purpose After a new student has been added, create student term records until the end of the grade span. Students can not be enrolled in classes unless there are student term records.

Trigger Managed by the New Student Intake Work flow.

Conditions No required fields are empty.

Sequence This function follows 2.0 functions during student intake work flow
Start with the school start term associated to the student in function 2 Step 1 Find the ordinate of the student record school start term ("previous ordinate")

Step 2 Create a new student term record

Step 3 Associate new  student term record to student record school start term

Step 4 Associate new student term record to the student 

Step 5 Set the student term record at_grade field = student record current grade_level

Step 6 Set student term record student sequence = 1
Check if the term is the last term in year Step 7

If the student record school start term flag = official end term, then

if last term, then increase grade level Step 8 at_grade = previous at_grade + 1
Check if new grade level exceeds grade span Step 9

If at_grade is greater than student record grade span end grade, then STOP

Else

increase the ordinate to find the next school term Step 10 New ordinate = previous ordinate + 1
Find the next school term Step 11 Find the school term record with the new ordinate from above - the next term record
repeat Step 12 Create a new student term record

Step 13 Associate new  student term record to school term record with the new ordinate (step 10)

Step 14 Associate new student term record to the student 

Step 15 Set the student term record at_grade field =  new at_grade (step 8)

Step 16 Set student term record student sequence = previous student sequence +1
check in the new school term is the end of the year Step 17

If the school term record with the new ordinate flag = official end grade then STOP

Else 

  Step 18 Go to Step 8
END

3. Create Student Term Records Not started

3.2 Automatically Create Student Term Records for recurring students


Purpose When a student has advanced to a new grade span, create student term records until the end of the grade span. Students can not be enrolled in classes unless there are student term records.

Trigger Managed by the advancement workflow

Conditions No required fields are empty. There must be at least one student term record already created - from function 3.1

Sequence After a student has been advanced to a new grade level, this is part of the advancement workflow
Check grade level matches associated grade span. Step 1

If student record current grade level is not equal to student record grade span start grade then STOP

Provide user an error that student terms can not be made for this grade span.

Else

Find the  last student term. Step 2 Find the last student term record, the student term record with the maximum student sequence field value.
Check the at_grade Step 3

If the at_grade field in the last student term record is greater than or equal to the student grade span start grade then STOP 

Provide user an error note that terms can not be made for this grade span.

Else



Step 4 set at_grade = student current grade level
Find the ordinate of the associated school term Step 5 Find the ordinate of the school term record associated to the last student term record found above.

Step 6 Create a new student term record

Step 7 Associate new  student term record to school term record

Step 8 Associate new student term record to the student 

Step 9 Set the student term record at_grade field to at_grade

Step 10 Set student term record student sequence = sequence
Check if the term is the last term in year Step 11

If the student record school start term flag = official end term, then

if last term, then increase grade level Step 12 at_grade = previous at_grade + 1
Check if new grade level exceeds grade span Step 13

If at_grade is greater than student record grade span end grade, then STOP

Else

increase the ordinate to find the next school term Step 14 New ordinate = previous ordinate + 1
increase the sequence for the next student term record Step 15 New sequence = sequence + 1
  Step 16 Find the School term record with the new ordinate

Step 17 Go to Step 6
END