Level 1 Aggregated
The mart_taskforce.level1_aggregated mart aggregates data about a student’s performance and activities in a course on a weekly basis.
BQ Prod Dataset Locations
mart_taskforce
Interactive Mart Dependency Diagram
The following visualization shows the construction of this data mart defined in the UDP marts repository. More information on the repository and diagram can be found on this marts page.
Schema
mart/taskforce/level1_aggregated
udp_person_id
INTEGER
The UDP ID of the student.
lms_person_id
STRING
The LMS ID of the student.
udp_course_offering_id
INTEGER
The UDP ID of the course offering.
lms_course_offering_id
STRING
The LMS ID of the course offering.
week_in_term
INTEGER
The week of the academic term.
week_start_date
DATE
The start date of the week of the academic term.
week_end_date
DATE
The end date of the week of the academic term.
num_tiny_submissions
INTEGER
The number of submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade.
num_small_submissions
INTEGER
The number of submissions classified as ‘small’, or making up a small percentage of the student’s final grade.
num_medium_submissions
INTEGER
The number of submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade.
num_large_submissions
INTEGER
The number of submissions classified as ‘large’, or making up a large percentage of the student’s final grade.
num_major_submissions
INTEGER
The number of submissions classified as ‘major’, or making up a major percentage of the student’s final grade.
num_unweighted_submissions
INTEGER
The number of unweighted submissions.
num_weighted_submissions
INTEGER
The number of weighted submissions.
num_submissions_without_due_date
INTEGER
The number of submissions without due dates.
num_submissions_with_due_date
INTEGER
The number of submissions with due dates.
num_submissions
INTEGER
The total number of submissions.
num_tiny_assignments
INTEGER
The number of assignments classified as ‘tiny’, or making up a tiny percentage of the student’s final grade.
num_small_assignments
INTEGER
The number of assignments classified as ‘small’, or making up a small percentage of the student’s final grade.
num_medium_assignments
INTEGER
The number of assignments classified as ‘medium’, or making up a medium percentage of the student’s final grade.
num_large_assignments
INTEGER
The number of assignments classified as ‘large’, or making up a large percentage of the student’s final grade.
num_major_assignments
INTEGER
The number of assignments classified as ‘major’, or making up a major percentage of the student’s final grade.
num_unweighted_assignments
INTEGER
The number of unweighted assignments.
num_weighted_assignments
INTEGER
The number of weighted assignments.
num_assignments_without_due_date
INTEGER
The number of assignments without due dates.
num_assignments_with_due_date
INTEGER
The number of assignments with due dates.
num_assignments
INTEGER
The total number of assignments.
num_tiny_missing_submissions
INTEGER
The number of missing submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade.
num_small_missing_submissions
INTEGER
The number of missing submissions classified as ‘small’, or making up a small percentage of the student’s final grade.
num_medium_missing_submissions
INTEGER
The number of missing submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade.
num_large_missing_submissions
INTEGER
The number of missing submissions classified as ‘large’, or making up a large percentage of the student’s final grade.
num_major_missing_submissions
INTEGER
The number of missing submissions classified as ‘major’, or making up a major percentage of the student’s final grade.
num_unweighted_missing_submissions
INTEGER
The number of unweighted missing submissions.
num_weighted_missing_submissions
INTEGER
The number of weighted missing submissions.
num_missing_submissions
INTEGER
The total number of missing submissions.
num_tiny_late_submissions
INTEGER
The number of late submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade.
num_small_late_submissions
INTEGER
The number of late submissions classified as ‘small’, or making up a small percentage of the student’s final grade.
num_medium_late_submissions
INTEGER
The number of late submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade.
num_large_late_submissions
INTEGER
The number of late submissions classified as ‘large’, or making up a large percentage of the student’s final grade.
num_major_late_submissions
INTEGER
The number of late submissions classified as ‘major’, or making up a major percentage of the student’s final grade.
num_unweighted_late_submissions
INTEGER
The number of unweighted late submissions.
num_weighted_late_submissions
INTEGER
The number of weighted late submissions.
num_late_submissions
INTEGER
The total number of late submissions.
avg_time_buffer_hrs_tiny
FLOAT
The average submission time buffer in hours for submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade.
avg_time_buffer_hrs_small
FLOAT
The average submission time buffer in hours for submissions classified as ‘small’, or making up a small percentage of the student’s final grade.
avg_time_buffer_hrs_medium
FLOAT
The average submission time buffer in hours for submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade.
avg_time_buffer_hrs_large
FLOAT
The average submission time buffer in hours for submissions classified as ‘large’, or making up a large percentage of the student’s final grade.
avg_time_buffer_hrs_major
FLOAT
The average submission time buffer in hours for submissions classified as ‘major’, or making up a major percentage of the student’s final grade.
avg_time_buffer_hrs_unweighted
FLOAT
The average submission time buffer in hours for unweighted submissions.
avg_time_bufer_hrs_weighted
FLOAT
The average submission time buffer in hours for weighted submissions.
avg_time_buffer_hrs
FLOAT
The average submission time buffer in hours for all submissions.
avg_published_score_pct_tiny
NUMERIC
The average published score percentage for submissions classified as ‘tiny’, or making up a tiny percentage of the student’s final grade.
avg_published_score_pct_small
NUMERIC
The average published score percentage for submissions classified as ‘small’, or making up a small percentage of the student’s final grade.
avg_published_score_pct_medium
NUMERIC
The average published score percentage for submissions classified as ‘medium’, or making up a medium percentage of the student’s final grade.
avg_published_score_pct_large
NUMERIC
The average published score percentage for submissions classified as ‘large’, or making up a large percentage of the student’s final grade.
avg_published_score_pct_major
NUMERIC
The average published score percentage for submissions classified as ‘major’, or making up a major percentage of the student’s final grade.
avg_score_pct_unweighted
NUMERIC
The average score percentage for unweighted submissions.
avg_published_score_pct_weighted
NUMERIC
The average published score percentage for weighted submissions.
avg_published_score_pct_without_due_date
NUMERIC
The average published score percentage for submissions without due dates.
avg_published_score_pct_with_due_date
NUMERIC
The average published score percentage for submissions with due dates
avg_published_score
NUMERIC
The average published score percentage for all submissions.
avg_published_score_pct_tiny_cumulative
NUMERIC
The weekly cumulative average published score percentage for all tiny submissions
avg_published_score_pct_small_cumulative
NUMERIC
The weekly cumulative average published score percentage for all small submissions
avg_published_score_pct_medium_cumulative
NUMERIC
The weekly cumulative average published score percentage for all medium submissions
avg_published_score_pct_large_cumulative
NUMERIC
The weekly cumulative average published score percentage for all large submissions
avg_published_score_pct_major_cumulative
NUMERIC
The weekly cumulative average published score percentage for all major submissions
avg_published_score_pct_unweighted_cumulative
NUMERIC
The weekly cumulative average published score percentage for all unweighted submissions
avg_published_score_pct_weighted_cumulative
NUMERIC
The weekly cumulative average published score percentage for all weighted submissions
avg_published_score_pct_without_due_date_cumulative
NUMERIC
The weekly cumulative average published score percentage for all submissions without a due date
avg_published_score_pct_with_due_date_cumulative
NUMERIC
The weekly cumulative average published score percentage for all submissions with a due date .
avg_published_score_cumulative
NUMERIC
The weekly cumulative average published score percentage for all submissions
discussion_entry_count
INTEGER
The number of discussion entries posted by the student.
discussion_post_count
INTEGER
The number of discussion posts posted by the student.
discussion_reply_count
INTEGER
The number of discussion replies posted by the student.
discussion_count
INTEGER
The total number of discussions interacted with by the student.
assignment_discussion_count
INTEGER
The total number of discussions associated with an assignment interacted with by the student.
threaded_discussion_count
INTEGER
The total number of threaded discussions interacted with by the student.
side_comment_discussion_count
INTEGER
The total number of side comment discussions interacted with by the student.
total_discussion_count
INTEGER
The total number of discussions available in the course offering.
total_assignment_discussion_count
INTEGER
The total number of discussions associated with assignments available in the course offering.
total_threaded_discussion_count
INTEGER
The total number of threaded discussions available in the course offering.
total_side_comment_discussion_count
INTEGER
The total number of side comment discussions available in the course offering.
avg_discussion_entry_length
FLOAT
The average length of the student’s discussion entries.
avg_discussion_post_length
FLOAT
The average length of the student’s discussion posts.
avg_discussion_reply_length
FLOAT
The average length of the student’s discussion replies.
view_days
INTEGER
The number of view days in the LMS.
num_sessions_10min
INTEGER
The number of sessions in the LMS, with a 10 minute cutoff when calculating sessions.
total_time_seconds_10min
INTEGER
The total time spent in the LMS in seconds, with a 10 minute cutoff when calculating sessions.
total_actions_10min
INTEGER
The total number of actions in the LMS, with a 10 minute cutoff when calculating sessions.
avg_time_seconds_10min
FLOAT
The average amount of time spent in the LMS in seconds, with a 10 minute cutoff when calculating sessions.
avg_actions_10min
FLOAT
The average number of actions in the LMS, with a 10 minute cutoff when calculating sessions.
num_sessions_20min
INTEGER
The number of sessions in the LMS, with a 20 minute cutoff when calculating sessions.
total_time_seconds_20min
INTEGER
The total time spent in the LMS in seconds, with a 20 minute cutoff when calculating sessions.
total_actions_20min
INTEGER
The total number of actions in the LMS, with a 20 minute cutoff when calculating sessions.
avg_time_seconds_20min
FLOAT
The average amount of time spent in the LMS in seconds, with a 20 minute time cutoff when calculating sessions.
avg_actions_20min
FLOAT
The average number of actions in the LMS, with a 20 minute cutoff when calculating sessions.
num_sessions_30min
INTEGER
The number of sessions in the LMS, with a 30 minute cutoff when calculating sessions.
total_time_seconds_30min
INTEGER
The total time spent in the LMS in seconds, with a 30 minute cutoff when calculating sessions.
total_actions_30min
INTEGER
The total number of actions in the LMS, with a 30 minute cutoff when calculating sessions.
avg_time_seconds_30min
FLOAT
The average amount of time spent in the LMS in seconds, with a 30 minute cutoff when calculating sessions.
avg_actions_30min
FLOAT
The average number of actions in the LMS, with a 30 minute cutoff when calculating sessions.
num_tool_launches
INTEGER
The total number of LTI tool launches.
num_tools_launched
INTEGER
The total number of LTI tools launched.
tool_launch_detail.launch_app_name
STRING
An array of the launch app names of the LTI tools launched.
tool_launch_detail.num_launches
INTEGER
An array of the number of launches for each LTI tool.
file_views
INTEGER
The number of file views.
num_files_viewed
INTEGER
The number of files viewed.
file_access_detail.file_id
INTEGER
An array of the UDP IDs of the files viewed.
file_access_detail.display_name
STRING
An array of the display names of the files viewed.
file_access_detail.content_type
STRING
An array of the content types of the files viewed.
file_access_detail.content_sub_type
STRING
An array of the content subtypes of the files viewed.
file_access_detail.num_times_viewed
INTEGER
An array of the number of times each file was viewed.
Field Structure and Subcategories
This level 1 table has many fields, so we’ve grouped them together in the following subcategories
Assignments
Submissions
Assignments
Missing Assignments
Late Submissions
Submission Time Buffer
Published Scores
Discussions
Discussion Threads
Discussion Entries
Learning Environment Activity
View days
Sessions
Tool Launches
File Views
Assignment Weight Groupings
Many fields have names that include tiny, small, medium, large, and major. These classifications are based on the group_weight field in the ‘learner_activity_group’ entity. The cases are as follows:
If the group_weight is null or equal to 0%, the submission is ‘unweighted’.
If the group_weight is less than or equal to 2%, the submission is ‘tiny’.
If the group_weight is greater than 2% and less than or equal to 5%, the submission is ‘small’.
If the group_weight is greater than 5% and less than or equal to 10%, the submission is ‘medium’.
If the group_weight is greater than 10% and less than or equal to 25%, the submission is ‘large’.
If the group_weight is greater than 25%, the submission is ‘major’.
If the group_weight is not null and greater than 0%, the submission is 'weighted'.
Week_in_term Calculation
We rely on BigQuery's DATE_DIFF
function to determine a week number, and this BigQuery function has the start of the weeks on Sundays. We perform the date diff anchored against the start date of the academic session, the academic term, or the course in scope. Our logic prefers the academic session or academic term start dates when possible; this creates a more even baseline for week numbers across courses at scale.
The start dates for both terms and courses can be sourced from either the SIS or LMS. In the presence of start dates from SIS, we coalesce to these values, but LMS start dates will surface if nulls are present on the SIS side. The week_in_term is 1-indexed. There will be no week_in_term values of 0 in the data mart.
Assignments
Number of Submissions
Fields
num_tiny_submissions
num_small_submissions
num_medium_submissions
num_large_submissions
num_major_submissions
num_unweighted_submissions
num_weighted_submissions
num_submissions_without_due_date
num_submissions_with_due_date
num_submissions
Context Store Dependencies
learner_activity_result
learner_activity
learner_activity_group
learner_activity_override
Description
These fields present the number of submissions by a student in a course for each week in the term. A submission is defined by the learner_activity_result_id field in the ‘learner_activity_result’ entity. The week of the submission, week_in_term, is determined by the due date of the assignment. The due date of the assignment is derived from the due_date fields in 'learner_activity' and 'learner_activity_override.' If the due date of the learner activity is overridden, then the due date is defined as the due_date in 'learner_activity_override.' If not, it is just the due_date in 'learner_activity.' If the due date is null, the week of the submission is derived from the response_date field in the ‘learner_activity_result’ entity instead. One of the fields, num_submissions, shows the overall number of submissions, while num_submissions_with_due_date and num_submissions_without_due_date show the number of submissions with and without due dates respectively. The rest of the fields focus on submissions either classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, ‘major’, or 'weighted.'
Number of Assignments
Fields
num_tiny_assignments
num_small_assignments
num_medium_assignments
num_large_assignments
num_major_assignments
num_unweighted_assignments
num_weighted_assignments
num_assignments_without_due_date
num_assignments_with_due_date
num_assignments
Context Store Dependencies
learner_activity_result
learner_activity
learner_activity_group
learner_activity_override
Description
These fields present the number of assignments for a student in a course for each week in the term. An assignment is defined by the learner_activity_id in the ‘learner_activity’ entity. The week of the assignment, week_in_term, is determined by its due date. The due date of the assignment is derived from the due_date fields in 'learner_activity' and 'learner_activity_override.' If the due date of the learner activity is overridden, then the due date is defined as the due_date in 'learner_activity_override.' If not, it is just the due_date in 'learner_activity.' If the due date is null and at least one submission is associated with the assignment, the week of the assignment is derived from the response_date field in the ‘learner_activity_result’ entity instead. One of the fields, num_assignments, shows the total number of assignments, while num_assignments_with_due_date and num_assignments_without_due_date show the number of assignments with and without due dates respectively. The rest of the fields focus on assignments either classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, ‘major’, or 'weighted.'
Number of Missing Submissions
Fields
num_tiny_missing_submissions
num_small_missing_submissions
num_medium_missing_submissions
num_large_missing_submissions
num_major_missing_submissions
num_unweighted_missing_submissions
num_weighted_missing_submissions
num_missing_submissions
Context Store Dependencies
learner_activity_result
learner_activity
learner_activity_group
learner_activity_override
Description
These fields present the number of missing submissions of a student in a course for each week in the term. A submission is considered missing if it meets the following criteria:
The published_score field in ‘learner_activity_result’ is null.
The grading_status field in ‘learner_activity_result’ has a value of ‘unsubmitted’.
The due date of the assignment has a date older than the current date.
The field num_missing_submissions presents the total number of missing submissions. The rest of the fields focus on missing submissions classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, ‘major’, or 'weighted.'
Number of Late Submissions
Fields
num_tiny_late_submissions
num_small_late_submissions
num_medium_late_submissions
num_large_late_submissions
num_major_late_submissions
num_unweighted_late_submissions
num_weighted_late_submissions
num_late_submissions
Context Store Dependencies
learner_activity_result
learner_activity
learner_activity_group
learner_activity_override
Description
These fields present the number of late submissions by a student in a course for each week in the term. A submission is late if it meets the following criteria:
The submission_date field in ‘learner_activity_result’ has a later date than the due date of the assignment
One of the fields, num_late_submissions, shows the total number of late submissions. The rest of the fields focus on late submissions classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, ‘major’, or 'weighted.'
Average Time Buffer in Hours
Fields
avg_time_buffer_hrs_tiny
avg_time_buffer_hrs_small
avg_time_buffer_hrs_medium
avg_time_buffer_hrs_large
avg_time_buffer_hrs_major
avg_time_buffer_hrs_unweighted
avg_time_buffer_hrs_weighted
avg_time_buffer_hrs
Context Store Dependencies
learner_activity_result
learner_activity
learner_activity_group
learner_activity_override
Description
These fields present the average time buffer in hours for submissions by a student in a course for each week in the term. The time buffer of a submission is the difference between when the assignment was due and when the student submitted the assignment. We calculate this as the difference in hours between the due date of the assignment and the date of the submission_date field in ‘learner_activity_result’. One of the fields, avg_time_buffer_hrs, shows the average time buffer in hours for all submissions. The rest of the fields focus on submissions classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, ‘major’, or 'weighted.'
Average Published Score Percentage
Fields
avg_published_score_pct_tiny
avg_published_score_pct_small
avg_published_score_pct_medium
avg_published_score_pct_large
avg_published_score_pct_major
avg_score_pct_unweighted
avg_published_score_pct_weighted
avg_published_score_pct_without_due_date
avg_published_score_pct_with_due_date
avg_published_score
avg_published_score_pct_tiny_cumulative
avg_published_score_pct_small_cumulative
avg_published_score_pct_medium_cumulative
avg_published_score_pct_large_cumulative
avg_published_score_pct_major_cumulative
avg_score_pct_unweighted_cumulative
avg_published_score_pct_weighted_cumulative
avg_published_score_pct_without_due_date_cumulative
avg_published_score_pct_with_due_date_cumulative
avg_published_score_cumulative
Context Store Dependencies
learner_activity_result
learner_activity
learner_activity_group
learner_activity_override
Description
These fields show the average published score percentage of submissions by a student in a course for each week in the term. The published score percentage of a submission is calculated by dividing the published score of the submission by the maximum number of points for the assignment. To do this, we divide the published_score field in ‘learner_activity_result’ by the points_possible field in ‘learner_activity’. To calculate the average published score percentage for submissions, we first multiply the calculated published score percentage by the group weight of the assignment, which is derived from the group_weight field in ‘learner_activity_group’. We add all of those computed values together for each student, course, and week in term. Then, we divide that sum by the sum of the assignment group weights for each student, course, and week to compute the average published score percentage. If there are no weighted assignments for the given week, meaning all of the assignments due that week are unweighted, the average published score percentage is defined as the sum of all scores on the assignments due divided by the sum of the maximum number of points possible for the assignments due. Once again, one of these fields, avg_published_score, shows the average published score percentage for all submissions. The fields avg_published_score_pct_with_due_date and avg_published_score_without_due_date show the average published score percentage for submissions with and without due dates respectively. The other fields each focus on a specific set of submissions, classified as ‘unweighted’, ‘tiny’, ‘small’, ‘medium’, ‘large’, ‘major’, or 'weighted.'
Example 1 - All Weighted Submissions
Given all weighted submissions in scope, the calculation for average
is defined as:
Assume the following 3 submissions and scores are weighted as follows:
1
40
50
2
10
30
3
50
150
The avg_published_score
calculation will yield a value of 75.33%
Example 2 - All Unweighted Submissions
Given all unweighted submissions in scope, the calculation for average
is defined as:
Assume the same 3 submissions and scores, except they are now all unweighted:
1
null
50
2
null
30
3
null
150
The avg_published_score
calculation will yield a value of 73.91%
Example 3 - Mix of Weighted and Unweighted Submissions
If a mix of weighted and unweighted submissions are in scope, the calculation only includes weighted. This matches the numeric values we receive in the scores
table directly from Canvas in CD2. In these cases, we suggest leveraging both the avg_published_score
fields plus the _unweighted
fields.
Assume the same 3 submissions and scores, except all but 1 are weighted:
1
null
50
2
10
30
3
50
150
The avg_published_score
calculation will yield a value of 72.22%. The avg_publsihed_score_pct_unweighted
calculation will yield a value of 80%.
Discussions
Discussion Entry Counts
Fields
discussion_entry_count
discussion_post_count
discussion_reply_count
Context Store Dependencies
discussion_entry
Description
These fields present the number of discussion entries posted by a student in a course for each week in the term. A discussion entry is defined by the discussion_entry_id field in the ‘discussion_entry’ entity. The week of the discussion entry is defined by the date the discussion entry was created, which is derived from the created_date field in ‘discussion_entry’. The field discussion_entry_count shows the total number of discussion entries, and is computed by counting the number of distinct discussion_entry_id values. A discussion post is defined as a discussion entry with the value of the position field in ‘discussion_entry’ equal to 1. Therefore, discussion_post_count is computed by counting the number of distinct discussion_entry_id values with position = 1. On the other hand, a discussion reply is defined as a discussion entry with the value of the position field greater than 1. To compute discussion_reply_count, we count the number of distinct discussion_entry_id values with position > 1.
Discussion Counts
Fields
discussion_count
assignment_discussion_count
threaded_discussion_count
side_comment_discussion_count
Context Store Dependencies
discussion_entry
discussion
Description
These fields present the number of discussions a student has interacted with in a course for each week in the term. A discussion is defined by the discussion_id field in the ‘discussion’ entity, and the week of the discussion is defined by the created_date of the discussion entry. The field discussion_count shows the total number of discussions, and is computed by counting the number of distinct discussion_id values. The field assignment_discussion_count looks at the number of discussions that are associated with an assignment. This field is computed by counting the number of distinct discussion_id values that have non-null learner_activity_id values. The threaded_discussion_count field is computed by counting the number of distinct discussion_id values with discussion_type = ‘threaded’, and the side_comment_discussion_count field is computed by counting the number of distinct discussion_id values with discussion_type = ‘side_comment’.
Total Discussion Counts
Fields
total_discussion_count
total_assignment_discussion_count
total_threaded_discussion_count
total_side_comment_discussion_count
Context Store Dependencies
discussion
Description
These fields present the total number of discussions in a course for a given week in the term. The field total_discussion_count is computed by counting the number of distinct discussion_id values in the ‘discussion’ entity for each course and week in the term. The total_assignment_discussion_count field counts the number of distinct discussion_id values with non-null learner_activity_id values. The total_threaded_discussion_count field is computed by counting the number of distinct discussion_id values with discussion_type = ‘threaded’ , while the total_side_comment_discussion_thread field is computed by counting the number of distinct discussion_id values with discussion_type = ‘side_comment’ instead.
Average Discussion Entry Length
Fields
avg_discussion_entry_length
avg_discussion_post_length
avg_discussion_reply_length
Context Store Dependencies
discussion_entry
Description
These fields present the average length of the discussion entry messages for a student in a course for a given week in the term. These fields are computed by taking the average of the message_length field in the ‘discussion_entry’ entity for each student, course, and week in the term. For the avg_discussion_entry_length field, we take the average for all discussion entries. The avg_discussion_post_length field only takes the average for discussion entries with position = 1, while the avg_discussion_reply_length field only takes the average for discussion entries with position > 1.
Learning Environment Activity
View Days
Fields
view_days
Description
The view_days field shows the number of days a student viewed the learning environment for a course in a given week. This field is computed using the UDP’s event store. We count the number of distinct session dates for a student in a course for a week in the term. The session date is defined by the minimum event_time of a session in the learning environment.
Sessions with 10, 20, and 30 Minute Cutoffs
Fields
num_sessions_10min
total_time_seconds_10min
total_actions_10min
avg_time_seconds_10min
avg_actions_10min
num_sessions_20min
total_time_seconds_20min
total_actions_20min
avg_time_seconds_20min
avg_actions_20min
num_sessions_30min
total_time_seconds_30min
total_actions_30min
avg_time_seconds_30min
avg_actions_30min
Description
For this mart, we define sessions using three different time cutoffs: 10 minutes, 20 minutes, and 30 minutes. We define the time spent in a session by adding up the duration of events in the session. For Caliper events in the event store, we define the duration of events by calculating the difference between the event time and the previous event time. If this difference is greater than or equal to the time cutoff for the session, the duration of the event is not counted towards the session and a new session is defined. So, for example, if an event duration is greater than or equal to 10 minutes, we will not include that event in a session with a 10 minute cutoff, and will define a new session.
To show how sessions are defined, take an event with a duration of 9 minutes and 30 seconds. This event is less than 10 minutes, so it is included in a session with a 10 minute cutoff. It is also included in a session with 20 minute and 30 minute cutoffs, since the event is shorter than 20 and 30 minutes respectively. However, an event that is 13 minutes long is not included in a session with a 10 minute cutoff, since it is longer than 10 minutes. It is still included in a session with 20 and 30 minute cutoffs though. The same goes for an event with a duration of 25 minutes. This event is not included in a session with 10 and 20 minute cutoffs, but is still included in a session with a 30 minute cutoff. And finally, a 35 minute event is not included in a session with 10, 20, or 30 minute cutoffs.
Event Length (in Minutes)
Sessions that Include the Event
0 - 9
Sessions with a 10 minute cutoff, 20 minute cutoff, and 30 minute cutoff
10 - 19
Sessions with a 20 minute cutoff and a 30 minute cutoff
20 - 29
Sessions with a 30 minute cutoff
30 and above
None
The num_sessions_x fields present the total number of sessions with the given time cutoff for a student in the learning environment of a course for a week in the term. The total_time_seconds_x fields show the amount of time in seconds a student spent in the learning environment. To find the total time spent in seconds, we add up all the durations of the sessions with the given time cutoff per student, course, and week in term. The total_actions_x fields present the number of actions of a student in the learning environment. The number of actions is calculated by counting the number of events associated with the sessions with the given time cutoff. The avg_time_seconds_x fields compute the average time in seconds a student spent in the learning environment. This is computed by dividing the total time spent in the learning environment (total_time_seconds_x) by the total number of sessions in the learning environment (num_sessions_x) for each student, course, and week in term. The avg_actions_x fields present the average number of actions in the learning environment. To compute this, we divide the total number of actions in the learning environment (total_actions_x) by the total number of sessions in the learning environment (num_sessions_x) for each student, course, and week in term.
Please visit our separate interaction session mart documentation page here for a visual example and more information about interaction sessions.
Tool Launches
Fields
num_tool_launches
num_tools_launched
tool_launch_detail.launch_app_name
tool_launch_detail.num_launches
Description
These fields focus on the LTI tools launched by a student in the learning environment of a course for each week in the term. We define a LTI tool launch using the ‘expanded’ table in the event store. An event is a LTI launch event if the name of the object (object.name) is ‘context_external_tool’. The field num_tool_launches presents the total number of LTI tool launches. This field is computed by counting the number of LTI launch events for each student, course, and week. num_tools_launched presents the number of distinct LTI tools launched. This is computed by counting the number of distinct launch_app_name values. The launch_app_name field is extracted from the asset_name field of the object.extensions chunk of the JSON Caliper event.
The tool_launch_detail fields go into more detail about the LTI tools that were launched. tool_launch_detail.launch_app_name is an array of all the LTI tools launched. This array includes all the launch_app_name values associated with the given student, course, and week. The tool_launch_detail.num_launches is an array that presents the number of launches corresponding to each LTI tool in the tool_launch_detail.launch_app_name array. This field computes the number of launches for each tool by counting the number of launch events for each launch_app_name value in the array.
File Views
Fields
file_views
num_files_viewed
file_access_detail.file_id
file_access_detail.display_name
file_access_detail.content_type
file_access_detail.content_sub_type
file_access_detail.num_times_viewed
Context Store Dependencies
file
Description
These fields focus on the files viewed by a student in the learning environment of a course for each week in the term. We identify that a file has been viewed by using the ‘expanded’ table in the event store and the ‘file’ entity in the context store. We first identify the subset of events in which an interaction with an object occurred, or when the object ID for an event is not null. The object ID is extracted from the object.id field in the ‘expanded’ table. We only want to include events in which an interaction with a file occurred, so we only include events that have an object ID corresponding to a file ID found in the ‘file’ entity.
The file_views field presents the total number of file views. To compute this field, we count the number of file interaction events per student, course, and week. The num_files_viewed field presents the number of files viewed. This is calculated by counting the number of distinct file_id values associated with file interaction events.
The file_access_detail fields go into more detail about the files the student accessed. The file_access_detail.file_id is an array of all the IDs of the files accessed. The file_access_detail.display_name is an array of the corresponding display names of these files, derived from the display_name field in the ‘file’ entity. The file_access_detail.content_type field is an array of the corresponding content types of these files. These values are extracted from the content_type field in the ‘file’ entity, extracting the part of the string before the ‘/’ from the field. So, for example, if the value of the content_type field in ‘file’ is ‘application/pptx’, the value of file_access_detail.content_type would be ‘application’. The file_access_detail.content_sub_type field is an array of the content subtypes of the files accessed. These values are again extracted from the content_type field in the ‘file’ entity, but taking the part of the string after the ‘/’ instead. For the previous example, the value of file_access_detail.content_sub_type would be ‘pptx’. The final field in this section is the file_access_detail.num_times_viewed field. This is an array of the number of times each file accessed was viewed. To compute the number of times each file was viewed, we count the number of events associated with each file.
Last updated