SSP v2.3.0 MAP Plan Status Calculation

Applicable version: 2.3 or later

Description

  • Prior to SSP v2.3, the Plan status was calculated externally to SSP with the results being stored with external data.   The external data option, external_person_planning_status, remains available for implementers that choose to calculate the status externally.  New functionality in SSP will calculate the status internally based on transcript data in the external table containing transcript information and plans saved in SSP.  The new logic will calculate a Plan status for each active student with an active plan.  Only the active Plan will be examined for a status calculation.

Process Description

  • For each student with an active plan (map_plan.object_status = 1), SSP will compare the courses in external_student_transcript_course (formatted_course) for each term (term_code) with the planned courses (map_plan_course.formatted_course) for equivalent terms (map_plan_course.term_code) starting with the oldest Plan term through the calculation cutoff term.  If no cutoff term is defined, the current term will be used.  A match will have matching criteria (configurable) for both the Plan and transcripted courses.  By default the formatted_course and term_code are used for matching.  Additionally, the course title, course code and course hours can be used to provide a more precise match.  The result of the calculation is a database update to store the Plan status and reasons for being off plan (if they exist).  Each time the calculation is performed, the previous status calculation is removed so that only the most current calculation is stored in the database.  The external_person_planning_status table will remain for implementers choosing to provide the calculation through the data integration.

Process Diagram

Database Tables

Features added in 2.4.0

MAP Status Calculation

Feature Additions

Feature DescriptionFeature Definition

Ratio to On Plan Status for the entire Plan 

To further define the Plan Status, a ratio of overall matched transcripted to planned courses will demonstrate how close to On Plan the student is.  For students who are Off Plan, the following questions are answered.  What percentage of the matched transcripted courses satisfy the plan? 

During the calculation, the calculation process will identify courses on the plan and match the courses to transcripted courses but ignore the term.  The calculation process is the same as phase 1 (course identifiers, term handling, etc).  The ratio calculation is simply the number of matched courses divided by the number of planned courses. 

Planned Courses = 24

Transcript Courses = 27

Matched Courses = 21

Ratio = 87.5%

Labels (names) can be assigned to ratio ranges.  A label could be defined for a ratio range. IE 0-19 Way Off, 20-39 Kinda Off, 40-59 Halfway There, 60-79 Not Bad, 80-99 Pretty Good


On Track (Substitution): On Plan but with substitutable courses.

Phase 1 implementation used a strict definition of Plan Status.  In order to be On Plan, the student has to take and pass every course on the plan in the same term.  Students can still accomplish the overall goal of the plan by taking courses that still meet the course requirements, elective list, etc.  For example: Psychology 101 is on the plan, but the student registers for Philosophy 101 because the Psychology was full.  Philosophy meets the program requirements the same as Psychology.

When the calculation logic attempts to find a transcripted course to match, the search will include the substitutable courses from an external database table populated with the associations for substitutable courses.  Each course could have more than one substitutable course.

On Track (Sequence): On Plan but a different order of courses.

Phase 1 implementation used a strict definition of Plan Status.  In order to be On Plan, the student has to take and pass every course on the plan in the same term.  Students can still accomplish the overall goal of the plan by taking courses in a different order.  As long as all the planned courses are passed, the plan would be satisfied. 

The matching logic from the ratio feature could be used to determine the matching courses (term exclusion).  This concept adds a distinction in the overall progress of completing a plan.  Students may not follow the exact order of courses specified in the plan but remain On Track if all the courses are taken to date.  The student took each course on the planned regardless of the term before the cutoff calculation term.  All planned courses have been completed, just not in the order and term defined on the plan.

 

Email service for calculation results

  • Add an email service for the status calculation to support notification for events

    • Daily Overall Status

      • On Plan and Off Plan totals from the calculation each time it is run.  The email would include a total number of students calculated along with the total for each Plan status

      • Error message for a system level failure for the calculation process.
      • Reminder to change the cutoff term when the cutoff term end date is earlier than the current date
      • A configuration item to turn the daily overall status email on or off
      • A new message template(s) for notifications would support the communication
    • Notification to coach/advisor of all off plan students
      • For each plan owner with a student in the plan status calculation results, send a list of students sorted by last name, first name only that were calculated as off plan to the plan owner.  If the plan owner is not the coach, a cc to the assigned coach will be sent
      • A configuration item to turn the plan owner summary notification
Manual execution of the plan calculation per student The purpose is to allow for a new status calculation to be run for a single student outside of the calculation schedule.  This may accommodate major plan changes, current calculation after removing an override, new student with a new plan or too much time before the next scheduled calculation. Coaches/advisors would  start the calculation via a button in the MAP UI.

Ratio to On Plan status by term

 To further define the Plan Status, a ratio per term of transcripted to planned courses will demonstrate how close to On Plan the student is.  A ratio would exist for each term.  For students who are Off Plan, the following questions are answered.  What percentage of the transcripted courses satisfy the plan term? 

 

During the calculation, the calculation process will identify the courses for each term on the plan and match the courses to transcripted courses for the same term.  The calculation process is the same as phase 1 (course identifiers, term handling, etc).  The ratio calculation is simply the number of matched courses divided by the number of planned courses for each term. 

 

Term 1

  • Planned Courses = 5
  • Transcript Courses = 5
  • Matched Courses = 4 
  • Ratio = 80%

Term 2

  • Planned Courses = 5
  • Transcript Courses = 5
  • Matched Courses = 5 
  • Ratio = 100%
Display for Plan Status Details and Configuration to control display of new calculation logic/results

The new matching logic will be included in the calculation process, and the results will be saved.  Configurations will be added to control the display of calculation variations (2106, 2107, 2108, 2110)

A new configuration entry will be used to determine what is displayed:

  • Plan ratio
  • Term ratio(s)
  • On Track status instead of basic On and Off Plan

Extend the external_term table definition to include columns for registration start and registration end dates.

 

The registration dates could be used for SSP to automatically calculate the cutoff term.  A concern of using a manually configured cutoff term is that implementers may forget to update the cutoff term value that could negatively affect the status calculation for a large number of students.  If the registration dates were defined for terms, SSP could set the cutoff term to be the term from external_term with the most recent registration end date. 

Examples of extending the external_term table to include registration dates when the current Term is SP 2014

On 2/24/2014, the calculated current term is SP 2014

TermStart DateEnd DateReg Start DateReg End Date
SP 20141/6/20145/2/201410/13/201311/2/2013
SU 20145/5/20147/3/20143/12/20143/26/2014
FA 20148/24/201412/2/20143/19/20144/18/2014

 

On 3/30/2014, the calculated current term is SU 2014

TermStart DateEnd DateReg Start DateReg End Date
SP 20141/6/20145/2/201410/13/201311/2/2013
SU 20145/5/20147/3/20143/12/20143/26/2014
FA 20148/24/201412/2/20143/19/20144/18/2014

 

On 4/21/2014, the calculated current term is SU 2014

TermStart DateEnd DateReg Start DateReg End Date
SP 20141/6/20145/2/201410/13/201311/2/2013
SU 20145/5/20147/3/20143/12/20143/26/2014
FA 20148/24/201412/2/20143/19/20144/18/2014
Add the course_code to the transcript_course to increase the matching accuracy

Add a course_code column to the external_student_transcript_course to match the external_course definition.  Since implementers may be defining multiple versions of courses in external_course and defining uniqueness by the course_code, the course_code on external_student_transcript_course would ensure a 100% match during the calculation process.  If this is added, a new matching criteria (course_code) should be added to the configuration item.

IMPORTANT- to begin using the course_code criteria, the map_plan_course.course_code table also needs to be updated so that previously planned courses will match the external_student_transcript_course.course_code values

Adjustments to Main Tool, MAP, Student Search and Reports for new statuses

Adjustments to displays and reports for new features added to the plan status calculation logic and results

Plan Status Report (applicable to 2.4.0 and later)

The plan status report will identify the results of the calculation for each planned course.  Per the calculations described above, the report shows overall, term and course based matches and anomalies.  Example Report:

Anomaly Codes

  • MULTIPLE_ANOMALIES_IN_TERM: multiple course anomalies in the term

  • NO_ANOMALY: not anomalies existed in the term

  • CURR_OR_FUT_COURSE_NO_GRADE: a missing or failed grade in a current or future term

  • COURSE_NOT_PASSED: a missing or failed grade in a past term
  • COURSE_NOT_REGISTERED: a missing course in a current or future term

  • COURSE_NOT_TAKEN: a missing course in a past term

Queries (applicable to 2.3.0)

  • The 2.3.0 version of the Plan status calculation does not produce any reports for the calculation process.  The student's current status and high level explanation of an off plan status will display in the Main Tool, MAP Tool and MAP Plan Status report.  For details of most recent calculation, example query are described below
  • Identify Term Anomalies

select p.school_id, p.first_name, p.last_name, mr.plan_id, mr.plan_status, mr.plan_note, mct.term_code, mct.anomaly_code
from person p, map_status_report mr,  map_status_report_Term_details mct
where p.id = mr.person_id and
mr.id = mct.report_id
order by p.school_id
  • Identify Course Anomalies
select p.school_id, p.first_name, p.last_name, mr.plan_id, mr.plan_status, mr.plan_note, mcd.formatted_course, mcd.anomaly_code
from person p, map_status_report mr, map_status_report_course_details mcd
where p.id = mr.person_id and
mr.id = mcd.report_id
order by p.school_id

Definitions

  • Past Term: any term with a start date before the current term's start date
  • Current Term: same definition that we are using for the MAP plan/template term grid.
  • Future Term: any term with a start date on or after the current term’s start date
  • Cutoff Term: the last term to consider for plan to transcript term matching.  The cutoff term is configurable while the current term is used if the configuration item does not exist or if the configured value is in the past.
  • Passing Grade: any grade determined to be a passing grade and fulfill completion of a planned course
  • Anomaly: for each instance where a planned course or term does not match the transcript data, an anomaly code describes the reason for
  • On Plan: there is an exact match of courses for each transcripted term with the terms and courses on the active plan.  For planned terms after the current term including the calculation cutoff term without a matching transcript term, the Plan is considered on plan until the transcript data diverges from the plan.
  • Off Plan: at least one term has a planned course that does not exist in the matching transcripted term or a transcripted course matching a planned courses was not passed.
  • On Track (Sequence): at least one term has a planned course that does not exist in the matching transcripted term but the course(s) that did not match was completed in a different transcripted term with a passing grade
  • On Track (Substitutions): at least one term has a planned course that does not exist in the matching transcripted term but the course(s) that did not match fulfill the planned course requirement based on a substitutable course the student completed with a passing grade

Configuration items

NamePossible ValuesDescription
calculate_map_plan_statustrue, falseturns on/off cron job that will drive the calculation
map_plan_status_passing_gradesschool specific but something like (A,B,C)In cases where a plan course and taken course line up, the student must have passed the class in order to not cause a anomaly
map_plan_status_cutoff_term_codeterm_code (EXTERNAL_TERM.CODE)

The calculation cutoff term is the latest future term to be included in the matching logic.  The term range for a given calculation will start with the oldest term for the student transcripted courses up to the cutoff term.  The term must be a valid term from external_term.  

  • If no term is configured, current term is used
  • If the configured term is a past term (user forgot to update),current term is used
task_scheduler_map_plan_status_calculation_triggercron expression (i.e., 0 0 1 * * *)drives the frequency of the cron job that will calculate status
map_plan_status_addition_course_matching_criteriaavailable options are (COURSE_TITLE,CREDIT_HOURS, COURSE_CODE) or blank

In addition to the static matching criteria (term_code and formatted_course), implementers have the option to add additional criteria.

  • COURSE_TITLE will match PLAN_COURSE.COURSE_TITLE to EXTERNAL_STUDENT_TRANSCRIPT_COURSE.TITLE
  • CREDIT_HOURS will match PLAN_COURSE.CREDIT_HOURS with EXTERNAL_STUDENT_TRANSCRIPT_COURSE.CREDIT_EARNED
  • COURSE_TITLE will match PLAN_COURSE.COURSE_CODE to EXTERNAL_STUDENT_TRANSCRIPT_COURSE.COURSE_CODE

map_plan_status_email

email address

Email address that status email should be sent to.  map_plan_status_send_report_email should be set to true for email to be sent

map_plan_status_send_report_email

true, false

If set the true, an email will be sent to the address listed in config map_plan_status_email

map_plan_status_send_off_plan_coach_emailtrue, false

Send off plan emails to coaches after status calc run

map_plan_status_term_bound_strict

true, falseIf set to true, course matches must be term bound to be considered on plan

map_plan_status_use_substitutable_courses

true, false

Drives the use of substitutable courses when calculating plan status