@DeletedUser
What Chris ( @chriscas ) wrote is correct. Here is some additional information. You noticed the start date field since you told it to start with January 1, 2022.
Although the report is limited to a month, the availability of the start date could give an expectation that could repeat the process, changing the start date to when the last report ended, until you have covered the entire year.
With some reports, Canvas only keeps the data available for a certain (often un-publicly documented) amount of time. Some reports only allow a year worth of data, other six months. Other reports go back as long as you've had Canvas. The User Access report is one that other people have mentioned difficulty obtaining for courses that were long ago.
It may be possible that Canvas is saying "there's nothing available that far back, so I'll just give the most recent information" or it might be by design. When I run the report, I too got the data from just the last month. When I reload the report tab, Canvas even alerts me to that fact (emphasis added).
Dec 14 at 9:22am (Term: All Terms; Enrollment types: ["TeacherEnrollment", "TaEnrollment", "DesignerEnrollment", "StudentEnrollment", "ObserverEnrollment"]; The start date was set to 1 month ago.)
A similar message was in the email I received after the report was done being generated.
I did some checking and if I go to a course I had in January 2022 and run a script I have that downloads all of the access report for just that course, Canvas does still have data from that course. January 10, 2022, was the first time someone was active in the course, which would be when the course started. That means that the data is available inside Canvas. However, if I go back to my August 2012 course, the access report data is no longer available. It isn't available for August 2013, but is for August 2014. I don't need to pinpoint the exact date, but the point is that it's still there for quite a while back. That is not the issue here.
It turns out that the issue is in interpreting the language of the wording. Here is the Ready Release Notes (2020-04-25) where the report was announced. Toward the bottom of the announcement, it says "A maximum of one month's data could be retrieved." (emphasis mine).
The issue is that there are multiple ways that could be interpreted and the way it is implemented is not the way that most people would interpret it.
- It might mean that you can retrieve up to a month at a time. That is, no matter what starting date you put in (subject to the availability I mentioned above), you will only get one month's worth of data. This is what most people would interpret it to mean.
- The data is only available for the previous month and the start date allows you to specify a shorter time if you don't want to download the entire thing. This is hinted at in the instructions.
You're taking it the first way. Canvas implemented it the second way.
For people who monitor this on an on-going basis, the Canvas way works well. The report can be generated through the Canvas API, so people could schedule a job to run once a week and get the report for the previous week's material. Or they could run the job nightly if they wanted to have more recent information available. Specifying a recent start date avoids having to download the entire month's worth of data when you have most of it already. It also makes sense from a perspective of schools trying to find students who aren't doing things in time to still do something about it.
For people who are trying to track down an issue from over a month ago or those who just discovered the report and think that would be nifty information to have, well, you're out of luck. You can still go into individual courses and look at individual students or you can use the script I wrote to download all access reports for an entire course, but that process would need to be repeated for each course.
It's not a bug as Canvas is doing what was programmed. It's a case of poorly worded documentation. Instead of saying "A maximum of one month's data could be retrieved", it would be clearer to say "Only data for the previous 30 days can be retrieved."
Technically, that may not be correct since some months may have 31 days in them. I looked for the code to see what it was doing, but couldn't find it. Using the word month in the phrasing becomes challenging to convey the intent with clarity. Here are some alternatives, none of which I truly like from a grammatical sense, but all would convey the meaning better than what Canvas has: "Only the most recent month's data can be retrieved", "Only data within the last month can be retrieved", or "Data is available for the most recent month". Perhaps "The start date must be within the last month."
An even better solution would be to put a start date and an end date on the report configuration and then make sure that they were not more than a month apart. Feature ideas are closed for right now so Canvas can figure out how to handle them.