Data exports in Grasple
Thijs Gillebaart avatar
Written by Thijs Gillebaart
Updated over a week ago

There are two types of exports:

  • Course Data (if allowed by your organisation)

  • Content Data

Course Data

If your organisation allows it the Grasple platform offers you the possibility to export
different datasets related to a course in a CSV format. These exports can be found on the dedicated 'Data Export' page. This page can be reached via both the monitor and the test-page for a course.

If you do not see this option either your organisation does not offer this possibility, or you are not a teacher in the course which you want to export data from.

Content Data

NOTE: The goal is to allow you as a teacher to export all content by yourself in several (machine readable) formats. Currently, we are not there yet. If you want to export content, please reach out to our support (via chat icon in the bottom right).

A first export is available for templated exercises: the parameter values export. You can export the parameter values by clicking on the "export values" button in the parameter editor section. See below an example:

The exported dataset will have the following format:

  • the first row contains the header

  • the first column contains the template_row_id

  • each row contains the template_row_id and the LateX value of parameter for that template_row_id

Available Course Datasets

The data export page currently offers the following datasets, which can be divided into two groups.

Structure datasets:

Progress datasets:

  • Student Progress - the progress (based on activity) of single student within this course

  • Lesson Attempts - all lesson attempts of all students for all subjects in this course

  • Subject Attempts - all practice attempts of all students for all subjects in this course

  • Subject Results - the highest score for all students for all subjects in this course

  • Subject Answers - all answers given for all attempts of all students for all subjects in this course

  • Test Attempts - all attempts of all students for all tests in this course

  • Test Results - the highest score for all students for all tests in this course

  • Test Answers - all answers given for all attempts of all students for all selected tests in this course

Below you can find the column descriptions of each dataset. Please feel free to reach out to us if anything is unclear or if you are missing any data.

Date filtering:

The export page offers you the possibility to filter the datasets based on a start-date and an end-date. These dates are only taken into account for the progress datasets. Only attempts / answers started after the start-date and before the end-date will be included.

In addition, the 'finished' status takes into account the end-date. Thus, a test-attempt which is not submitted before the end-date will not be taken into account in, for example, the calculation of the highest score. The goal is to mimic the behaviour of the export page as if you would have exported the data on the specified end-date.

Important considerations

The data export functionality comes with three important notes.

First, please be aware that the datasets are currently not filtered on, for example, time and content. By offering you detailed datasets we hope to give you the flexibility to analyse the data in the way you desire.

Secondly, the data is collected in a non-controlled setting. Please take into account the data disclaimer when analysing the data and making conclusions.

Also, the datasets can contain personal information of students. Please take into account the guidelines of your institution when handling and processing this data. When downloading the data it becomes your responsibility.

Lastly, one important note for Excel users. For some of the exports the data in the CSV can cause Excel to split the data incorrectly. To prevent this from happening we recommend Excel users to import a CSV file via the 'import' functionality, which can be found under the `Open > Import` menu item.

Detailed descriptions of the datasets

The following sections each describe the details of a data-set.

Note: for all datasets we add a column 'student_id' after the other user-related columns if this data is available for your organisation.

Course Structure

A row represents: a single course element
Available columns:

  • id: the id of the course element

  • type: the type of the course element, either ‘test’ or ‘subject

  • name: the name of the course element’

  • element_index: the index of the element in the module, lower means earlier in the module.

  • module_name: the name of the module this element belongs to

  • module_index: the index of the module in the course structure, lower means earlier in the course

Course Students

A row represents: a single student in the course
Available columns:

  • user_id: the id of the user (can be empty if the user is not registered)

  • name: the name of the user

  • email: the email address of the user

  • registered: whether the user is registered in the course

  • group_name: the name of the course-group a student is in (possibly empty)

Student Progress

  • user_id: a unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • #exercisesAnswered: the total number of answers given in a subject exercises part or a test

  • #correctAnswers: the total number of correct answers given in the first answer attempt

  • #subjectsCompleted: the number of unique subjects completed by practice in the given context

  • #testsCompleted: the number of unique tests completed in the given context

Note: this dataset is purely based on the activity of a student in the platform. Therefore, the progress of a student does not necessarily correspond to the colours on the level-map as the latter one also changes based on test results.

Subjects

A row represents: a single subject
Available columns:

  • subject_id: a unique identifier for the subject

  • subject_name: the name of the subject

  • #studentsStartedExercises: the total number of students which started the exercises of this subject

  • #studentsFinishedExercises: the total number of students which finished the exercises of this subject

  • hasLesson: boolean indicating whether the subject has a lesson part

  • #exercisesAnswered: the total number of answers given to exercises in this subject

  • averageScore: the average of the highest score per student that finished an exercise-session in this subject

Lesson Attempts

A row represents: a single attempt of a student for the lesson part of a subject
Available columns:

  • subject_id: a unique identifier for the subject

  • subject_name: the name of the subject

  • user_id: a unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • finished: a boolean indicating whether the attempt is completed

  • started_at: the timestamp of when the attempt was started

  • finished_at: the timestamp of when the attempt was completed (empty if attempt is not finished)

Subject Attempts

A row represents: a single attempt of a student for the exercises part of a subject
Available columns:

  • subject_id: a unique identifier for the subject

  • subject_name: the name of the subject

  • user_id: a unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • #exercisesAnswered: the total number of answers given to exercises in this attempt

  • score: the score calculated for this attempt (empty if attempt is not finished)

  • finished: a boolean indicating whether the attempt is completed

  • started_at: the timestamp of when the attempt was started

  • finished_at: the timestamp of when the attempt was completed (empty if attempt is not finished)

Subject Results

A row represents: the (highest) score for a student / subject combination
Available columns:

  • user_id: a unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • subject_id: a unique identifier for the subject

  • subject_name: the name of the subject

  • subject_index: the index of the subject in the complete course

  • max_score: the highest score obtained for this student on this this, '-' if there is no score.

Note: this dataset contains a row for each student / subject combination in the course, not only the rows for students that attempted a given subject.
Also note that this dataset is purely based on the activity of a student in the platform. Therefore, the result of a student does not necessarily correspond to the colours on the level-map as the latter one also changes based on test results.

Options:

  • Create pivot table with subjects as columns:
    When selected output of the dataset will be changed into the following format:
    A row represent: all highest scores of a single student
    Available columns:
    - user_id: a unique identifier for a user
    - user_name: the name of the user
    - user_email: the email address of the user
    - [subject-name]: the highest score of this subject for the student
    This column is repeated for all subjects in the course.

Subject Answers

A row represents: a single answer given for a question in an attempt of a student for a subject practice session.

Available columns:

  • user_id: a unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • started_subject: whether the student started the subject

  • subject_id: a unique identifier for the subject

  • subject_name: the name of the subject

  • subject_index: the index of the subject in the complete course

  • subject_session_id: the unique id of this practice session

  • subject_session_started_at: the date at which the practice session was started

  • subject_session_completed_at: the date at which the practice session was completed

  • subject_session_completed: boolean indicating if the student completed this practice session

  • exercise_id: the unique id of the (sub)question which was answered

  • template_row_id: the row id of the placeholders served to the student

  • main_exercise_id: the unique id of the main exercise of this exercise, which is the same as exercise_id if this question is the top-level question

  • main_exercise_version: the version of the exercise which the user received

  • open_answer: the answer which as entered by the student in case of an open question

  • mc_answer_id: the unique id of the multiple-choice answer chosen by the student

  • mc_answer: the cleaned HTML of the chosen multiple-choice answer

  • correct: signals whether the answer was marked as correct (1) or incorrect (0)

  • skipped: indicates whether the exercise was skipped (1) or not (0)

  • scored_points: the number of points received for this question attempt

  • answer_rule_id: the unique id of the answer rule which has been matched for this open answer. Not available for multiple-choice exercises or if no match was found

  • invalid_input: indicates whether the received input resulted in a parse error. If parsing of the answer resulted in an error the value will be 1, otherwise it well be 0

  • exercise_answered_at: the timestamp when the last answer was received by the system. Can be missing if no answer was given

Note: by default this dataset contains a row for each student / subject combination in the course, not only the rows for students that attempted a given subject. If you only want to have the given answers (or if you need to reduce the size of the exported data) you can filter out all students which did not provide answers using the Filter out empty student / subject combinations option.

Note: this dataset can only be exported in weekly batches, which means it only contains answers submitted a given week. Since practice sessions can span multiple weeks, the subject_session_started_at and subject_session_completed_at can fall outside the range of the week.

You can choose the exact range which you want the export in the filters on the top of the export page. If you do not specify a range the export will contain the data of the last 7 days. Should you only specify the start-date or the end-date the chosen range will be a week starting from / ending at the given date. If you specify a range which is longer than 7 days only the first 7 days of starting from the start-date will be included.

Tests

A row represents: a single test in the course
Available columns:

  • test_id: a unique identifier for the test

  • test_name: the name of the test

  • #studentsStarted: the total number of students which started this test

  • #studentsFinished: the total number of students which finished this test

  • #exercisesAnswered: the total number of answers given to exercises in this test

  • averageScore: the average of the highest score per student that finished the test

Test Attempts

A row represents: a single attempt of a student for a test
Available columns:

  • test_id: a unique identifier for the test

  • test_name: the name of the test

  • user_id: a unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • score: the score of this attempt (empty if attempt is not finished)

  • finished: a boolean indicating whether the attempt is completed

  • started_at: the timestamp of when the attempt was started

  • finished_at: the timestamp of when the attempt was completed (empty if attempt is not finished)

Test Results

A row represents: the (highest) score for a student / test combination
Available columns:

  • user_id: a unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • test_id: a unique identifier for the test

  • test_name: the name of the test

  • test_index: the index of the test in the complete course

  • max_score: the highest score obtained for this student on this this, '-' if there is no score.

Note: this dataset contains a row for each student / test combination in the course, not only the rows for students that attempted a given test.

Options:

  • Create pivot table with tests as columns:
    When selected output of the dataset will be changed into the following format:
    A row represent: all highest scores of a single student
    Available columns:
    - user_id: a unique identifier for a user
    - user_name: the name of the user
    - user_email: the email address of the user
    - [test-name]: the highest score of this test for the student
    This column is repeated for all tests in the course.

Test Answers

A row represents: a single answer given for a question in an attempt of a student for a test.
Available columns:

  • user_id: the unique identifier for a user

  • user_name: the name of the user

  • user_email: the email address of the user

  • started_test: indicates if the student started the test (1) or not (0)

  • test_id: the unique identifier for the test

  • test_name: the name of the test

  • test_index: the index of the test in the course

  • test_attempt_id: the unique id of this attempt

  • test_attempt_completed_at: the date at which the test attempt was completed

  • exercise_id: the unique id of the (sub)question which was answered

  • template_row_id: the row id of the placeholders served to the student

  • main_exercise_id: the unique id of the main exercise of this exercise, which is the same as exercise_id if this question is the top-level question

  • main_exercise_version: the version of the exercise which the user received

  • open_answer_raw: the answer which as entered by the student in case of an open question

  • open_answer_processed: the answer as interpreted by the system

  • mc_answer_id: the unique id of the multiple-choice answer chosen by the student

  • mc_answer: the cleaned HTML of the chosen multiple-choice answer

  • correct: signals whether the answer was marked as correct (1) or incorrect (0)

  • scored_points: the number of points received for this question

  • max_points: the maximum number of points a student could receive for this exercise

  • answer_rule_id: the unique id of the answer rule which has been matched for this open answer. Not available for multiple-choice exercises or if no match was found

  • invalid_input: indicates whether the received input resulted in a parse error. If parsing of the answer resulted in an error the value will be 1, otherwise it well be 0

  • skipped: indicates whether the exercise was skipped (1) or not (0)

  • evaluated: indicates whether the exercise was evaluated (1) or not (0). Exercises are not evaluated if they are skipped, or if there was a problem during the evaluation of the answer (see column "evaluation_error" and "skipped" for more detail).
    NOTE: since 20/05/2021 this value now equals to 0 when a syntax error occurred. Before the value was equal to 1 when a syntax error occurred.

  • evaluation_error: indicates whether there was a problem with the evaluation of the answer (1) or not (0). This values remains 1 or 0 independent on whether the answer has been manually_adjusted (see below).
    NOTE: since 20/05/2021 this value also equals to 1 when a syntax error occurred. Before the value was equal to 0 when a syntax error occurred.

  • manually_adjusted: indicates whether the current marking of this answer is based on a manual evaluation by a teacher or not. The value is equal to 1 if the answer has been manually evaluated and 0 if not.

  • exercise_answered_at: the timestamp when the last answer was received by the system. Can be missing if no answer was given

  • exercise_received_at: the timestamp when the exercise was served to the student for the first time. Can be after the end time of the attempt if the attempts has been automatically closed at the end-time of the test attempt.

  • question_pool_name: the name of the question pool if the test uses question pools. This value is empty if no question pools are used.

  • question_pool_id: the unique id of the question pool if the test uses question pools. This value is empty if no question pools are used.

Note: this dataset contains a row for each student / test combination in the course, not only the rows for students that attempted a given test.

Options:

  • Only include data of selected test:
    Select a single test to only export answers of the chosen test. By default all answers for all tests are exported.

Did this answer your question?