1.0.91
Last updated
Release Date
December 9, 2025
This release mainly focuses on logic and filtering changes for the student_activity_score and daily_course_grade_record marts. No schema changes are included in this release.
Marts in scope:
mart_student_activity_score.final
mart_student_activity_score.course_final
mart_student_activity_score.course_section_final
Originally, the octile fields in the student_activity_score marts, student_activity_score_octile and student_activity_score_octile_cumulative, defined the octile for a student as the lowest octile (.125) when there was no variation in student activity scores between students in the course/term. In other words, if no students had activity in a course for a week, and all of their student activity scores were 0, all of their student activity score octiles would be .125. In such cases, it makes more sense to not define an octile, as there is no reason to compare an individual student's score to other's scores when all students' scores are the same. Now, when there is no variation between scores, meaning the standard deviation of scores is 0, the octile is defined as null.
Marts in scope:
mart_course_offering.daily_course_grade_record
mart_course_section.daily_course_grade_record
The daily_course_grade_record mart appends the context_store_entity.course_grade records for the current term every day. The purpose of this mart is to provide a history of students' grades in Canvas and how they change over the term, since the source table only shows the latest grade. When filtering for the current term, we used to only consider the academic term start and end dates. Since it is possible for a course to not be associated with a term, or for the term to not have dates defined for it in the data, we have updated our logic to consider academic session start and end dates when the term dates are missing.
Last updated