Showing results for 
Search instead for 
Did you mean: 
Surveyor II

Is there a Speed Grader monthly report per teacher available?

I need a monthly report of how many papers each of my teachers grades in Speed Grader each month. Is there one out there that I haven't been able to find?

12 Replies

 @melanie2 ,

I think the short answer is no, there isn't an existing solution. 

However, that is muddied by what you're really after here. So, what is the real thing you're trying to accomplish?

  • Find out how many papers were graded?
  • Find out whether teachers are using SpeedGrader?
  • Find out how many instructors are marking up papers in SpeedGrader?
  • Find out how many students are getting feedback through SpeedGrader?
  • Find out how many students are getting submission comments?
  • Find out how many students are getting submission comments through SpeedGrader?
  • Something else?

The reason I ask is because there are multiple ways to accomplish grading in Canvas and SpeedGrader isn't required for any of them except for annotating papers, so your mention of the word SpeedGrader makes me wonder what you're really trying to measure.

An instructor can download all of the submissions and grade them offline and upload grades, but not comments, through the gradebook import feature. They could also enter the grades directly into the gradebook. Submission comments can be entered from the gradebook as well. SpeedGrader makes it faster, but it isn't the only way (except for annotating the documents)

Generally, Canvas does not distinguish how a grade or submission comment came into being. You may be able to look at the page views to figure that out. If you have access to Canvas Data, it's a quick way to do that for a lot of people.

We need a report that lists the number of papers each of our teachers grades each month.

Yes, I do have access to Canvas Data but am not sure how it can help. I'm the director of customer care and manage the teachers. Not so good on the tech end of things. 😃


Thanks for clarifying. There may be a solution to that problem once you throw SpeedGrader out of the equation.

When you download a submission through the API, there is a grader_id field and a graded_at field.  From the Submissions API documentation ...

  // The id of the user who graded the submission. This will be null for submissions
  // that haven't been graded yet. It will be a positive number if a real user has
  // graded the submission and a negative number if the submission was graded by a
  // process (e.g. Quiz autograder and autograding LTI tools).  Specifically
  // autograded quizzes set grader_id to the negative of the quiz id.  Submissions
  // autograded by LTI tools set grader_id to the negative of the tool id.
  "grader_id": 86,
  "graded_at": "2012-01-02T03:05:34Z",

This would involve downloading this information for every assignment in every course that you wanted to consider. That's where Canvas Data comes in and makes life easier since you can search all courses at one. Look at the submission_fact and submission_dim tables. The submission_dim has both grader_id and graded_at fields in it. You can filter by the graded_at and do a count by instructor.

If you can't manipulate Canvas Data, then find someone at your institution who can. The first solution would involve programming and would take longer, especially since the data is already in Canvas Data. 

Wow, thank you for your response. I'm going to investigate in Canvas Data to see if I can figure something out. One quick question, will I need to manually count how many papers for each instructor or will there be a tally for me. We have many teachers who grade 300+ papers per month. Lots of room for error if I need to physically count. =/

Quick Answer - If you're manually counting anything with Canvas Data, then you're doing it wrong. It's called Big Data for a reason. With something the size of the submission tables, you'll probably need to go to a database to hold the information although Excel could handle some of the smaller ones or when you're first starting off. The last time I updated our submission tables (before Thanksgiving) we had 2.68 million records in it. Some people use Amazon's RedShift so that they don't have to download the flat files.  

Longer answer

I threw together a quick MySQL SELECT statement that would count the number of times each instructor graded something in October 2017. This has not been checked for accuracy and I may be missing something. I'm not providing you with a script we use, it's just something I threw together to tackle your question.

USE canvas_data;

    u.sortable_name, COUNT(*) AS n
    submission_dim sd
    user_dim u ON (sd.grader_id =
    sd.workflow_state = 'graded'
        AND sd.graded_at >= '2017-10-01'
        AND sd.graded_at < '2017-11-01'
GROUP BY u.sortable_name
ORDER BY u.sortable_name;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

The query may change based on your flavor of SQL, but it returns a list with two columns. The first has the name of the person doing the grading and the second is the number of items they graded. This does not distinguish between type of assignment, you may want to narrow it to just online submissions of type file upload. Also, it does not tell you how many people didn't grade anything as it only picks up those who did grading. Hopefully it gives you an idea of what can be done.

Just found a query by grader for grade changes in the link you gave me above. Would this work? 

I provided two links and don't see anything about a query by grader on either of those pages. Could you provide the link to the page you're looking at?