Taskforce Mart - 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
Description | ||
---|---|---|
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. |
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 either the start date of the academic_term or the course's start date in scope. Our logic prefers the 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
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.'
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