The CSV output is a per user marking of registered, active, contributing, participating. In order to provide a per user version, we use the current state of the user information (not their historical state on that day) for registered and whether they are enabled or disabled. Additionally, for security reasons, unless the exporting user is a full access user, we do not show the external users in the user list.
So that means there are a couple factors contributing to the mismatches they are seeing:
- Registered users is more or less today's registered users - not the registered users as of the export date
- External users are not included
- deactivated users that may have been active on the date being looked at are not displayed
In general, the high level summary info in the chart is accurate as you go back in time, but the user detail suffers from a design decision that was made to not make a complete snapshot of all user properties every day. So for the registered user detail - it is accurate when the day of export is close to the present. But as you move the reporting period end back in time, the user detail numbers will start to stray from being accurate for the day in the past in question. This is also why the discrepancies seem to shift - it is as the current user states shift.
And of course if the user is not a full access user, the external users are not in the user detail either further contributing to the discrepancy.
If you were to do the export as a full access user with the time period end being yesterday - the numbers should align.
I understand this can be confusing but I wanted to also let you know that there has been an improvement requested to make this more clear and for the reports to show historical data to eliminate the discrepancies.
Hope this helps.