Unizin Product Documentation
ProductsSupport and TrainingPolicies
  • Unizin Product Documentation
  • Products
    • Content
      • Unizin Engage
        • eReader User Guide
          • Notes, Highlights, and Citations
          • Appearance Settings
          • Download for Offline
          • eReader Layout
          • Keyboard Shortcuts
          • Navigating Your eBook
          • Print
          • Text to Speech
          • Copy and Paste
          • Creating Flashcards
          • Collaboration and Note Sharing
          • Pearson Titles
        • Institution Support
          • Disabled Student Services / Alt-Format
            • Best Practices for Republishing Course Content
            • Disabled Student Services
            • Requesting eTextbook Files for Accessibility Purposes
            • WCAG 2.0 AA evaluation for Engage
            • WCAG 2.0 AA evaluation for EPUB for Engage
          • Institution's Support Responsibilities
        • Caliper 1.1 sensor
        • Release Notes
          • 2.28.22
          • 2019-09-17
          • 2019-05-29
          • 2.26.8
          • 2.26.0
          • 2.25.0
          • 2.22.0
          • 2.21.6
          • 2.21.5
          • 2.20.8
          • 2.20.5
          • 2.20.3
          • 2.19.1
          • 2.18.0
          • 2.17.0
          • 2.14.0
          • 2.12.0
          • 2.11.0
          • 2.9.0
          • 2.8.3
          • 2016-03-17
          • 2016-02-11
          • 2016-01-28
        • Using Analytics (New)
      • Unizin Order Tool
        • Overview of the User Interface
        • Key Concepts
          • Profiles
          • Ordering periods
          • Coordinator permissions
          • Program administrator permissions
        • Courses & Ordering
          • Course filtering
          • Place an order
          • Add sections to a placed order
          • Edit a placed order
          • Cancel an order
          • Reordering
        • Order History
          • Instructor Order History
          • Coordinator and Program Administrator Order History
          • Order Activity
        • Student Choice
          • Student Choice (Program Administrators)
          • Student Choice (Students)
        • Entitlements
          • Entitlements (Program Administrators)
          • Entitlements (Students)
        • Catalog Tool
        • Schedule of Classes
        • Content Request Tool
        • Order Tool Dashboard
        • Vendor Sandbox Tenant
        • Institution Support
        • Implementation
          • SIS Data Integration
            • 1.0 - SIS Integration
            • 2.0 - SIS Integration
          • SSO integration
          • UI customizations
          • Order Feed
            • 1.0 - Order Feed
            • 2.0 - Order Feed
            • 3.0 - Order Feed
          • Publisher report
          • Final declined offers feed
          • Institutional (SIS) Catalog Import
          • Student Price
          • Historical Entitlements Import
        • Release Notes
          • Order Tool Bug Fixes and Enhancements
          • Order Tool Bug Fixes
          • Order Tool Accessibility Improvements
          • Order Feed Improvements
          • Content Request Form Update and Minor Bug Fix
          • Flat Markup Fee Update
          • Ordering Email Receipt Update & Minor Bug Fix
          • Bug Fix for Public Catalog Feature
          • Catalog Search Enhancements
          • Reordering Reminder Email Notifications
          • UX Improvements & Minor Bug Fixes
          • Historical Entitlements Import
          • Student Prices
          • Reordering Feature
          • Email Enhancements
          • Ordering Enhancements
          • Bug Fix for the Institutional Catalog Import
          • Bug Fix for the Final Declined Offers Feed (FDOF)
          • Order Activity Feature and Other Enhancements
          • Bug Fixes for Order History and Report an Issue Features
          • Public catalog feature
          • Minor Bug Fixes for Ordering and Student Choice
          • Entitlements Production Release, Bug fixes, and Minor updates
          • Minor Updates and Bug Fixes for Ordering Workflows
          • Catalog Search Optimization
          • Student Choice
          • Archive Terms Feature and Integration Improvements
          • Introduces the Program Administrator role, Catalog Tool, and Schedule
          • User interface updates and improvements
          • Order feed improvements
          • Order history, UI enhancements
          • Email notification upgrades, UI improvements
          • Order feed changes
          • New features for Course coordinators and upgrades to the UI
          • Changes to the Term, Course, and Section models; introduces a Session
          • Bug fixes, import improvements, and validation improvements
          • Tracking Order History
          • Publisher Reporting
          • Fixes the order feed, automates SIS data importing, and automates the generation of order feed repor
    • Data & Analytics
      • Unizin Data Platform
        • Key concepts
          • Platform overview
          • Data categories
          • Data models
          • Loading schemas
          • Keymap
        • Unizin Common Data Model
          • Academic structures (ERD)
          • Learners (ERD)
          • Course structures (ERD)
          • Course resources (ERD)
          • Learner activities (ERD)
          • Quizzes (ERD)
          • Social (ERD)
          • Course outcomes (ERD)
        • System overview
          • Context data pipeline
            • Context data ingress
            • Batch-ingest application
            • Batch-ingest db server
            • Context store
          • Event data pipeline
            • UDP Caliper endpoint
            • Approval process for implementing Caliper compliant tools
            • UDP Event enricher
            • Event store
        • Data stores
          • Data lake
            • UDP Context store
            • UDP Event store
              • Accessing the Event store
              • Expanded table
                • Expanded table: Canvas edApp mapping
            • Synthetic Data [beta]
              • Viewing Synthetic Data datasets within the BigQuery UI
              • Query Synthetic Data via client libraries
          • Data marts
            • UDP Distributions
            • Interaction sessions
            • Learning Environment Organization
            • File Interaction
            • Last Activity
            • Long Inactivity
            • Course Status
            • Daily Course Grade Record
            • LTI Tool Use
            • LMS Tool Use
            • Tool Usage Metrics
            • Links
            • Taskforce
              • Level 1 Aggregated
              • Level 2 Aggregated
              • Level 2 Course Weekly Distribution Summary
              • Student Term Profile
              • Course Profile
            • Student Activity Score
              • Student Course Metrics
              • Student Course Section Metrics
              • Final
              • Course Final
              • Course Section Final
        • Data integrations
          • Context data integration
            • Loading schema
            • Keymap support
            • Manifest file
            • File requirements
            • Integration mechanics
          • Event data integration
          • SIS data integration
          • LMS data integration
            • Instructure Canvas
        • Release Notes
          • UDP Marts Release Notes
            • 1.0.83
            • 1.0.80
            • 1.0.79
            • 1.0.78
            • 1.0.77
            • 1.0.72
            • 1.0.67
            • 1.0.58
            • 1.0.51
            • 1.0.44
            • 1.0.42
            • 1.0.32
            • 1.0.31
            • 1.0.0
            • Level 2 Taskforce data marts now available
          • 2.0.167
          • 2.0.152
          • 2.0.138
          • 2.0.137
          • 2.0.113
          • 2.0.112
          • 2.0.111
          • 2.0.110
          • 2.0.99
          • 2.0.98
          • 2.0.83
          • 2.0.80
          • 2.0.71
          • 2.0.66
          • 2.0.59
          • 2.0.58
          • 2.0.53
          • 2.0.47
          • 2.0.25
        • Miscellaneous
          • Canvas Data additions, ~Fall 2021
          • Canvas Live Events: from SQS to HTTPS
          • Canvas New Analytics vs. UDP
          • Course Section Enrollment Role Status Mappings
          • Migrating from UDW to UDP
      • Unizin Data Warehouse
        • Implementation Guide
        • Scope of Services
        • Access Provisioning
        • Access Revocation
        • Connecting to the UDW
      • Raw Canvas Data 2
        • Flat Files
        • BigQuery Datasets
    • Hosted Services
      • My Learning Analytics
        • Install MyLA via LTI 1.3
        • Custom configure MyLA
  • Support and Training
    • Professional Development
      • Stepping Stones: A Faculty Development Curriculum for Learning Analytics Use
      • Structured Conversations initiative
    • UDP Self-paced Training
    • Resources Site Broken Links
    • Status Pages
  • Policies
    • General policies
      • Sponsor Teams
      • Browser Support Policy
      • Opt-Out & Invoicing Policy (Order Tool)
    • Support Policy
      • Unizin Engage - SP
      • Unizin Order Tool - SP
      • Unizin Data Platform - SP
      • Unizin Data Warehouse - SP
      • Unizin Data Analysis - SP
      • Pressbooks Hosting - SP
    • Privacy Policy
      • Unizin Engage - PP
      • Unizin Order Tool - PP
      • Unizin Data Platform - PP
      • RStudio service - PP
    • End User License Agreements
      • Unizin Engage - EULA
      • Unizin Order Tool - EULA
    • Terms of Use
      • Unizin Data Platform - ToU
    • Incident Reports
Powered by GitBook
LogoLogo

Unizin Homepage

  • unizin.org

Data & Analytics

  • Unizin Data Platform
  • Unizin Data Warehouse

Content

  • Unizin Engage
  • Unizin Order Tool

Hosted Services

  • My Learning Analytics

Copyright © 2023, Unizin, Ltd.

On this page
  • Purpose and potential use-cases
  • BQ Prod Dataset Location
  • Interactive Mart Dependency Diagram
  • Schema
  • Mart/course_offering/interaction_sessions
  • Mart/Course_section/interaction_sessions
  • Qualifying events
  • Metric definitions
  • Visual Example of Interaction Sessions 10, 20, & 30
  1. Products
  2. Data & Analytics
  3. Unizin Data Platform
  4. Data stores
  5. Data marts

Interaction sessions

PreviousUDP DistributionsNextLearning Environment Organization

Last updated 10 months ago

Purpose and potential use-cases

The purpose of this mart is to approximate an answer to a basic question: how much time do students spend in using the LMS and learning tools for their learning-related activities in a course?

The concept of a bounded “interaction session” is central to measure at the heart of the data mart. There is no canonical way to measure an “interaction session” in the learning analytics literature. We propose to use one of the least-controversial algorithms. In the end, we should prepare for a future in which different algorithms are used in parallel marts.

Nevertheless, the purpose of this mart is to capture the “interaction sessions” of a person in a course, where a “session” represents a duration of time defined by rules that govern when a session begins and ends.

There are two interaction sessions marts: mart_course_offering.interaction_sessions and mart_course_section.interaction_sessions. The former mart captures the interaction sessions of a person in a course offering, while the latter part captures the interaction sessions of a person in a course section.

BQ Prod Dataset Location

mart_course_offering

mart_course_section

Interactive Mart Dependency Diagram

The following visualization shows the construction of this data mart defined in the repository. More information on the repository and diagram can be found on .

Schema

Mart/course_offering/interaction_sessions

Field
Type
Description

udp_course_offering_id

INTEGER

The UDP ID of the course offering.

lms_course_offering_id

STRING

The LMS ID of the course offering.

udp_person_id

INTEGER

The UDP ID of the person.

lms_person_id

STRING

The LMS ID of the person.

academic_organization_display

STRING

The name of the academic organization(s) associated with the course offering as a string with comma separation.

academic_organization_array

ARRAY<STRING>

Array of academic organization(s) associated with the course offering.

academic_term_name

STRING

The name of the academic term, i.e. Fall 2020.

academic_term_start_date

DATE

The start date for the academic term.

course_offering_title

STRING

The title of the Course offering, i.e. Linear Algebra.

course_offering_start_date

DATE

The start date of the Course offering.

course_offering_subject

STRING

The subject of the Course offering, i.e. MATH.

course_offering_number

STRING

The number of the Course offering, i.e. 310.

course_offering_code

STRING

The code of the Course offering, i.e. MATH 310.

instructor_display

STRING

An array of all the instructor’s names for the Course offering written as a string.

instructor_name_array

ARRAY<STRING>

An array of all the instructor’s names for the Course offering.

instructor_email_address_display

STRING

An array of all the instructor email addresses for the Course offering written as a comma-separated string.

instructor_email_address_array

ARRAY<STRING>

An array of all the instructor email addresses for the Course offering.

person_name

STRING

The name of the person.

role

STRING

The role of the person in the Course offering, i.e. Student, Teacher.

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.

session_date

DATE

The date of the session.

num_sessions_10min

INTEGER

Based on a 10 minute cutoff for interaction sessions, the number of interaction sessions for the person in the Course offering for the given session date.

total_time_seconds_10min

INTEGER

Based on a 10 minute cutoff for interaction sessions, the total time spent in seconds in interaction sessions for the person in the course offering for the given session date.

total_actions_10min

INTEGER

Based on a 10 minute cutoff for interaction sessions, the total number of actions in interaction sessions for the person in the course offering for the given session date.

avg_time_seconds_10min

FLOAT

Based on a 10 minute cutoff for interaction sessions, the average time spent in seconds in interaction sessions for the person in the course offering for the given session date.

avg_actions_10min

FLOAT

Based on a 10 minute cutoff for interaction sessions, the average number of actions in interaction sessions for the person in the course offering for the given session date.

num_sessions_20min

INTEGER

Based on a 20 minute cutoff for interaction sessions, the number of interaction sessions for the person in the Course offering for the given session date.

total_time_seconds_20min

INTEGER

Based on a 20 minute cutoff for interaction sessions, the total time spent in seconds in interaction sessions for the person in the course offering for the given session date.

total_actions_20min

INTEGER

Based on a 20 minute cutoff for interaction sessions, the total number of actions in interaction sessions for the person in the course offering for the given session date.

avg_time_seconds_20min

FLOAT

Based on a 20 minute cutoff for interaction sessions, the average time spent in seconds in interaction sessions for the person in the course offering for the given session date.

avg_actions_20min

FLOAT

Based on a 20 minute cutoff for interaction sessions, the average number of actions in interaction sessions for the person in the course offering for the given session date.

num_sessions_30min

INTEGER

Based on a 30 minute cutoff for interaction sessions, the number of interaction sessions for the person in the Course offering for the given session date.

total_time_seconds_30min

INTEGER

Based on a 30 minute cutoff for interaction sessions, the total time spent in seconds in interaction sessions for the person in the course offering for the given session date.

total_actions_30min

INTEGER

Based on a 30 minute cutoff for interaction sessions, the total number of actions in interaction sessions for the person in the course offering for the given session date.

avg_time_seconds_30min

FLOAT

Based on a 30 minute cutoff for interaction sessions, the average time spent in seconds in interaction sessions for the person in the course offering for the given session date.

avg_actions_30min

FLOAT

Based on a 30 minute cutoff for interaction sessions, the average number of actions in interaction sessions for the person in the course offering for the given session date.

Mart/Course_section/interaction_sessions

The course section mart includes all the fields found in the course offering mart, as well as five more fields, which are presented in the table below.

Field
Type
Description

udp_course_section_id

INTEGER

The UDP ID of the Course section.

lms_course_section_id

STRING

The LMS ID of the Course section.

sis_course_section_id

STRING

The SIS ID of the Course section

academic_organization_id

INTEGER

The UDP ID of the academic organization.

organization_name

STRING

The name of the academic organization associated with the course section. Replaces academic_organization_display and academic_organization_array in the course offering mart.

Qualifying events

For this data mart, all events by a person in a course offering qualify as relevant to include in the generation and maintenance of the mart. Any event, associated with a specific activity (in this case the course_offering_id as relates to the student, and a specific action, as fed through the event stream) should trigger the recording to this table.

Metric definitions

In order to compute an interaction session, it is necessary to compute the start and end times of a discrete interaction session. Or to put it differently, it’s necessary to compute when a new interaction session opens and when an open interaction session closes.

Variables

  • By Inactivity threshold is meant the minimum time duration that must elapse before an open interaction session is closed.

Criteria that open a new interaction session

  • If there is no current interaction session open for course X AND the user has an activity in course X, then an interaction session begins for course X

  • If there is a current interaction session open in course X AND the user has an activity in course X AND the elapsed time between the last course X activity and the current X activity is greater than the Inactivity threshold, then close the previous course X interaction session and start a new course X interaction session

Criteria that close an open interactions session

  • If there is an activity in course X and the elapsed time between the last user activity and the current user activity is greater than the Inactivity threshold, then close the interaction session

  • Note: another approach is to periodically see if the “last event” for all students with open interaction sessions was longer than the Inactivity threshold and, if so, close the interaction session.

Visual Example of Interaction Sessions 10, 20, & 30

Understanding which events qualify or are disqualified from interaction sessions based on the 10, 20, and 30-minute cutoffs can be confusing. The following example aims to show the logic described above in action. The exact schema of the mart(s) above is not replicated one-for-one in this example; instead, the focus is on a timeline of clicks we can see in the UDP and how those events might or might not be grouped together for interaction sessions.

Assume we have a student with the following timeline of clicks in one of their courses:

During this three-hour window (6:00 pm to 9:00 pm), we see 13 total clicks (labeled A through M). The first step is to determine the amount of time between each of these clicks. In this example, we'll keep the granularity at the minute level, but the marts we show in the UDP are at the second level.

In tabular form, the sequence of clicks looks like the following:

Click
Time
Previous Click
Duration

A

6:00 PM

N/A

–

B

6:03 PM

6:00PM

3

C

6:11PM

6:03PM

8

D

6:23PM

6:11PM

12

E

6:25PM

6:23PM

2

F

6:47PM

6:25PM

22

G

7:20PM

6:47PM

33

H

7:31PM

7:20PM

11

I

7:35PM

7:31PM

4

J

7:54PM

7:35PM

19

K

7:56PM

7:54PM

2

L

8:56PM

7:56PM

60

M

9:00PM

8:56PM

4

The first functional cutoff we can consider is 10 minutes. The timeline above will now be color-coded according to which events qualify based on a 10-minute functional cut off:

This yields the following from a 10-minute cut-off point of view:

Session Number
Clicks Included
# Clicks in Session
Total Session Time (min)

1

A,B,C

3

11

2

D,E

2

2

3

H,I

2

4

4

J,K

2

2

5

L,M

2

4

Total Clicks
Num Sessions
Total Time Interacting (min)

13

5

23

Similarly, let's take the same timeline of events and introduce a 20-minute cut-off instead of a 10-minute cut-off:

This yields the following from a 20-minute cut-off point of view:

Session Number
Clicks Included
# Clicks in Session
Total Session Time (min)

1

A,B,C,D,E

5

25

2

G,H,I,J,K

5

26

3

L,M

2

4

Total Clicks
Num Sessions
Total Time Interacting (min)

13

3

55

Finally, let's see how this timeline looks with a 30-minute cut-off:

This yields the following from a 30-minute cut-off point of view:

Session Number
Clicks Included
# Clicks in Session
Total Session Time (min)

1

A,B,C,D,E,F

6

47

2

G,H,I,J,K

5

26

3

L,M

2

4

Total Clicks
Num Sessions
Total Time Interacting (min)

13

3

77

Regardless of the cut-off used, the number of clicks is unchanged! There is only one stream of events, and that will never change. What does change is what time we count towards learning and interacting. The 10-minute cut-off is the most conservative in that it counts the lowest total time interacting, but you will often see a greater number of total sessions with this cut-off. The inverse is true for the 30-minute cut-off; this will be an upper bound of sorts for counting total time for a student/course; however, the number of sessions may be lower since it accepts more events into its definition of session more widely than the other cut-offs.

The cut-off time is a heuristic that can be tweaked and is not a one-size-fits-all approach. Unizin has developed these marts first with three, static cut-off windows; however, we are open to considering more dynamic approaches, and individual projects may need to define interaction sessions accordingly.

UDP marts
this marts page
Click here to open the interactive chart.
mart_course_offering.interaction_sessions