I suspect this is driven from the Shift Module which allows you to set the first day of the week on any day where there is a Start or End Time. The problem is that if any time is entered for Sunday it is pushed into the previous week. One solution would be to allow you to select the First Day as Sunday even if you do not have a Start End Time listed.
Thanks for submitting your idea, Andy!
Attendance is based on your shift. So you can select whichever working day (Sunday, Monday, Thursday, etc) to be the starting day of the week which will transfer over into the attendance records. If nothing is selected, it will default to whichever the first marked working day is, which for most people is Monday. You can also experiment with this with Shift 1 and Shift 2 in the training database.