Showing results for 
Show  only  | Search instead for 
Did you mean: 
Community Member

PowerSchool Users: Push current grade to PS nightly.

We are a PowerSchool district and after a semester of struggling through the Grade passback between PowerSchool and Canvas we have decided to use the Canvas gradebook for daily grade recording and only go into PowerSchool for recording term grades. This is less stressful for my teachers but requires more work for my admin assistants and registrars. It would be nice if there was an option to push only the current grade from Canvas into PowerSchool every night. This would allow the office staff to use PowerSchool for reporting without adding the stress of maintaining two grade books.   Has anyone else considered this as a possible solution? 

Tags (3)
8 Replies
New Member

Hey Paul,

I know we talked about this last week--we are in a similar spot. What we are doing is creating an assignment (via the API) in the Canvas gradebook called the "passback assignment" and having teachers push it over whenever they need to get information into PowerTeacher. This allows me to have all settings properly set in both places and for teachers to (mostly) work only in the Canvas gradebook.

We had the same concerns--grade passback sounds great on the surface (and is, not complaining)--but having teachers work in two environments leaves lots of room for issues. (and whenever you introduce the human factor, you get issues if your scale is large enough). If Canvas could even push a current term grade over nightly as an assignment in PowerTeacher (I'm thinking they couldn't write the term grade directly to PowerSchool), this would be an improvement. As it stands, my teachers have to type in the term grade into that assignment above. Even being able to copy and paste it would be an improvement.

Community Champion

 @codom ,

I know nothing about PowerSchool or grade passback, but could you share more about what you need that could be copy/pasted? Are you saying that you need to duplicate an existing Canvas score into the passback assignment? Is it always the same grade that needs copied or does it change? If it changes, does it change in a predictable manner?

Without knowing more, it seems like it might be something that could possibly be coded. Is that wishy-washy enough? After doing this enhancing Canvas for a couple of years now, I won't say anything is easy.

I ask because I had an idea on Tuesday night walking back across the street about something that would download grades, allow you to modify them, and then send them back. I think I can do it, the API calls seem to exist, and if I can do that, it may be possible to write something that would send it to a different assignment.

But like I said, I know nothing about PowerSchool, so I don't want to jump too quickly to a solution when there might be a better way of doing it.

 @James ,

So essentially--PowerSchool passback works like this: Canvas passes a grade to the PowerTeacher gradebook. PowerTeacher is the gradebook that sits on top of PowerSchool. From my understanding, you cannot write directly to PowerSchool, so to do grade passback, Canvas writes to PowerTeacher. (Even PowerTeacher uses a process where PowerSchool fetches grades from PowerTeacher, not PowerTeacher writing those grades to PowerSchool).

Ideally, we'd want to write to PowerSchool with that daily grade, but from what I've told; that won't ever happen. So instead, I set up an assignment to go to PowerTeacher and that's the only assignment we write over. But right now, teachers literally type in the end of term grade into that assignment and pass it back. (They could type it directly into PowerTeacher, but by doing this, we're keeping them in one system for a bit longer). It would be ideal if they could just copy and paste the end of term grade into that assignment. What  @paul_goodenough  was wanting was for that passback to happen nightly in some format. I'd assume it would take an export of the current grade to then fill that assignment in from the API. I honestly hadn't considered using the API to do it....I can conceptually see how that could work (programatically is a different story).

If that makes any sense! Probably more info than you wanted to know...but it would be an interesting use case. Since I name the assignment that goes over via the API, I could name it whatever was needed to make it standardized. (that's actually why I do it that way).

I have a feeling Paul and I are approaching the same issue in two different ways...but there's probably lots to learn from both use cases.

Community Champion

 @codom ,  @paul_goodenough 

Yesterday, Canvas released this document: Canvas Release: SIS Integration Settings . I don't understand it fully since we don't do grade passback, but does it change anything on either of your ends or had you already taken that into consideration?


It sounds like you're wanting to take a student's grade, which is not actually a column in the gradebook unless you export it. It is available, however, through the API. For example, the List users in a course endpoint will give you a list of students and if you include their enrollments, you also get their grades.


That same information is probably available in other places, that's just an example. I can't test this since we don't use grading periods, just terms, but there's another option to return the current score for the current grading period.

Is some of that information what you're wanting to pass back?

Does doing what you want to do require every teacher to use a weighted gradebook with a passback category worth 0 percent or do you check the box that says "Don't count this towards final grade?"

Anyway, a combination of the List users in a course and the Grade or comment on multiple submissions endpoints should (in theory, not tested yet) get what you want. It's a matter of making it run -- is it something the instructors do or something you do automatically for them?

On the other hand, anything I say may be way off base because I don't see what you see and I don't know the process.

First off, thanks for chiming in  @James ‌. Yeah, that endpoint would be the one that I would use to create the new grade. We've used both cases that you mentioned (a zero percent category--and checking the box). We now check the box...but in the past, we've used a zero percent category. 

I think what is most interesting is the document that was posted earlier this week. I got around to finally reading it...and it had this tidbit in it:


That looks promising--and I'm hopeful that is true. I have some doubts, considering the way PowerSchool works...but that makes me hopeful.

Community Contributor

Hi guys, 

I'm following this thread closely because we are looking for the exact same thing... a way to only pass back the current or final grade in a grading term so that we can reduce the possibility of human error when working in 2 systems.  This is very important to my superintendent who is ready to pull the plug on grading in Canvas all together if we don't find a solution. 

 @James ‌, I would like to run your API solution by someone here in my district with more API experience and knowledge than me to see if that would possibly work for us.  But,  @codom ‌, like you, I would like to get more clarification on that last sentence.  That sounds promising, but I'm not holding my breath at this point.  

Thanks for letting me chime in!

New Member

One of the frustrating things with the grade push back is that occasionally when teachers make changes to a grade and push the grade back to Powerschool those changes do not happen in the SIS. Canvas solution is to delete the assignment in Powerschool and push the grade back from Canvas. This is not an ideal solution and creates a lot of confusions and frustration fro teachers. We too are looking in only pushing the current grade and not individual assignments into Powerschool. If there is an api workaround to do this we would gladly like to try it.

Community Team
Community Team


Thank you  @paul_goodenough  for submitting this question! Based on your inquiry, I feel that this is a better discussion than a question that has a single “correct” answer. However, because another Community member has clicked the “I also have this question!” button, I am unable to convert it to a discussion for an ongoing conversation.

Because it is my goal to clean up the K-12 space before the end of 2018 so only the only open questions are those that are still relevant! With that goal in mind, I am going to mark this question as “Assumed Answered” so it is removed from the list. The status will not prevent Community members from contributing and continuing this conversation! Smiley Happy

Community Onward,