We are a newer client for Canvas about to finish our first term using the product. We found out some time after going "live" that we had a number of "phantom students" enrolled in some sections (i.e., real students assigned a class in Canvas but never had that class assigned in our SIS). These all appear to have been added during the initial automation for our SIS import. They couldn't be "cleaned up" by the daily feed because there was no "delete" record to send over to Canvas.
Moving forward, the plan to ensure our upcoming Spring term is "cleaned" of any remaining "false enrollments" from that first import will be to do an import using "full batch update" mode.
I've also been made aware that the way in which our faculty are assigned to classes isn't optimal for our Canvas updates. Faculty are added or removed to a section. They are not given any kind of status which marks them as active or deleted. For example, "John Doe" is initially assigned "MATH-101". He is replaced by "Jane Smith" in our SIS, and completely removed from the section. Our CSV process passed over MATH-101, "John Doe", "teacher", "active". Now John's record is gone and it passes over MATH-101, "Jane Doe", "teacher", "active". On the Canvas side, MATH-101 now shows both John and Jane as teachers.
I have read various posts discussing downloading the provisioning report for enrollments and crashing that against a fresh copy from our SIS to note differences. I also saw an option for a "diffing" mode which looks like it would be helpful in cleaning things up without the tediousness of manual comparisons/delete file creations (but that does not appear to be an option for CSV).
After a full batch update, we expect our student enrollments will (-should-) stay clean since they have a "status update" and are left linked to the section enrollment in some way ("active", "deleted", etc.). Since our faculty aren't, I'm soliciting advice from other clients for any solutions that can best manage these changing assignments. I'm also up for any recommendations that avoid lining up and manually processing two spreadsheets for discrepancies and then compiling a "corrections" file. If anyone has already done some form of scripting/macros/other to speed up the process I'd love to hear your approach!