cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
johnb
Community Participant

Can I download grade distribution data from New Analytics?

Jump to solution

Dear All,

Can the data in New Analytics grade distribution charts be downloaded to CSV? My understanding is that it cannot, but as this seems such obvious functionality to make available, I wanted to double-check if I am missing something. Below is an example of the chart I am referring to.

Screenshot 2021-06-11 at 13.41.16.png

Many thnaks,

jb

0 Kudos
2 Solutions

Accepted Solutions
James
Community Champion

@johnb 

There is a download CSV option from the initial page, but it is not going to give you what you want. It gives you a summary by student.

James_0-1623467762081.png

None of the Reports will help you either.

While you cannot download the grade breakdown on assignments from within New Analytics, you can download the underlying data that was used to create it and then create your own CSV file.

Canvas uses a GraphQL query to obtain that information, but it pulls it from a different host than your normal Canvas instance. It is not live / current, but compiled once a day from the main Canvas instance. 

The information there isn't sent the way it looks. It gets certain information about the submissions and then does the calculations on the page. That is, you don't get the average grade is 60.9%, but that is computed from all of the scores on the submissions.

What is requested for each submission is the assignmentId, assignmentName, late, missing, studentId, and submission percentage.

All of that information except for the submission percentage is available from your production instance of Canvas (so it's live) through the API. Using the GraphQL API is going to be faster than trying to get all of the submissions through the Submissions API.

For the chart that you're looking at, you would not (necessarily) need the assignmentID or student ID. You would need the pointsPossible for the assignment so that you could calculate the percentage.

You would need to go through and count how many times missing was true and how many times late was true to get those counts.

You would need to average the scores together to get the class average and divide the score by the pointsPossible to get the percentage. There will be no binning for the histogram, either. Just the raw data.

To see the kind of data you would get, you can go to your Canvas dashboard in a browser and add /graphiql to the end to bring up an interactive graphQL instance. Then paste this, but change the ID on the assignment to be one of your assignments Then hit the Execute Query button.

query assignmentStatistics {
  assignment(id: "123456") {
    _id
    name
    pointsPossible
    submissionsConnection {
      nodes {
        missing
        late
        score
      }
    }
  }
}

This can be automated with scripts.

None of this will be as a chart, though, but you asked about a CSV of the data. Another way to get the CSV of the data (without any programming) is to use the Grade Export functionality. It will not give you the late and missing counts, though. The scores would need divided by the possible points to get the percentages that are given in the New Analytics.

View solution in original post

johnb
Community Participant

@James 

Wow, thanks for such a thorough and helpful answer - much appreciated 🙂

Does seem strange though that this type of data is not more easily available to teachers......

 

Best Wishes,

jb

View solution in original post

0 Kudos
2 Replies
James
Community Champion

@johnb 

There is a download CSV option from the initial page, but it is not going to give you what you want. It gives you a summary by student.

James_0-1623467762081.png

None of the Reports will help you either.

While you cannot download the grade breakdown on assignments from within New Analytics, you can download the underlying data that was used to create it and then create your own CSV file.

Canvas uses a GraphQL query to obtain that information, but it pulls it from a different host than your normal Canvas instance. It is not live / current, but compiled once a day from the main Canvas instance. 

The information there isn't sent the way it looks. It gets certain information about the submissions and then does the calculations on the page. That is, you don't get the average grade is 60.9%, but that is computed from all of the scores on the submissions.

What is requested for each submission is the assignmentId, assignmentName, late, missing, studentId, and submission percentage.

All of that information except for the submission percentage is available from your production instance of Canvas (so it's live) through the API. Using the GraphQL API is going to be faster than trying to get all of the submissions through the Submissions API.

For the chart that you're looking at, you would not (necessarily) need the assignmentID or student ID. You would need the pointsPossible for the assignment so that you could calculate the percentage.

You would need to go through and count how many times missing was true and how many times late was true to get those counts.

You would need to average the scores together to get the class average and divide the score by the pointsPossible to get the percentage. There will be no binning for the histogram, either. Just the raw data.

To see the kind of data you would get, you can go to your Canvas dashboard in a browser and add /graphiql to the end to bring up an interactive graphQL instance. Then paste this, but change the ID on the assignment to be one of your assignments Then hit the Execute Query button.

query assignmentStatistics {
  assignment(id: "123456") {
    _id
    name
    pointsPossible
    submissionsConnection {
      nodes {
        missing
        late
        score
      }
    }
  }
}

This can be automated with scripts.

None of this will be as a chart, though, but you asked about a CSV of the data. Another way to get the CSV of the data (without any programming) is to use the Grade Export functionality. It will not give you the late and missing counts, though. The scores would need divided by the possible points to get the percentages that are given in the New Analytics.

View solution in original post

johnb
Community Participant

@James 

Wow, thanks for such a thorough and helpful answer - much appreciated 🙂

Does seem strange though that this type of data is not more easily available to teachers......

 

Best Wishes,

jb

View solution in original post

0 Kudos