Due to what I would call a 'non-normalization' of the Analysis interval, users can get an Upcoming activities due email after the activity was due.
Let me give a specific example.
We have our analytics set to run every night at 6am (default is once a day, at a random hour).
There is a user that has an Analysis interval that looks like this:
Tuesday, July 28, 2020, 3:10 PM to Tuesday, August 4, 2020, 3:10 PM
So what happens for this user, is that each Wednesday at 6am, it checks for assignments due from the Tuesday prior at 3:10PM, until the Tuesday after at 3:10PM. Anything due after Tuesday at 3:10PM will show up in the next weeks email, after that thing was already done.
In this particular case, the user had something due Tuesday Aug 4th at 11:59PM, but that was included in the August 5th processing (ie. late), not in the July 29th processing.
Basically all of our users fall in these non-standard time slices, and I'm not clear how it happened - or for that matter how the slice is decided the first time a new user is analyzed.