Submissions with a submission_type of null can mean different things. One of which is that there is no submission.
I know that sounds illogical at first. To understand this better, it helps to know that the grades in the gradebook are tied to the submissions. The Submissions API is what Canvas queries when it populates the gradebook. In Canvas, a submission entry is created ahead of time for every assignment / student pairing. 30 students with 40 assignments is 1200 submission entries before any student starts turning anything in.
There are several things going on to tell if there is an actual submission. @Jeff_F is great on Tableau, but he's right about it not being a Tableau issue as much as needing to filter the data. Depending on your needs, I may not base it off of graded since I think that would exclude those assignments that students have turned in but haven't been graded yet. You may want to use workflow_state=unsubmitted as an exclude.
Another thing to check is that you're getting all of the information from Canvas Data. This may just be me, but I have some inconsistencies in my data. Even things that you think wouldn't be possible sometimes show up. For example, I have one assignment where the submission_type is null but I have a submitted_at date. Just 1 -- 1 out of 4,423,328 submission entries. That makes me think that maybe my database setup is wrong and I missed a submission type (I'm using enumerated types based on the descriptions in the Canvas Data Portal documentation). carroll-ccsd has already pointed out that I'm missing some by doing this, I just haven't made time to fix it yet. I've focused on optimization rather than flexibility and that causes some of the things to get lost. I don't use Canvas Data enough to worry about it, but bring in the critical information from another method.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.