Repairs complete, stats are back to normal.
So what happened?
The MySQL version that BOINCstats runs on (5.7) has been declared end-of-life by Google Cloud, with the recommendation to upgrade to a new version. If not, some extra costs could be charged. I wasn't particularly keen on the upgrade since I'm almost
end-of-life myself. So I didn't do it, but those extra costs turned out to be over €200 per month, which is a bit too much for me. That's why I spent this weekend trying to upgrade to the new version. This failed repeatedly (reasons complicated), so I ultimately decided not to upgrade but to migrate to the new MySQL 8.0. This worked, and through a brainwave, I decided not to switch everything over at once, but to also run the updates on the old 5.7 server. And that was lucky because MySQL 8 is stricter than MySQL 5.7, and inserting the retired projects failed on 8.0. However, because I also did the update on 5.7, I was able to transfer everything from 5.7 to 8.0. As a result, all the data is 100% correct again.
The update has since been adjusted and should now work fine on 8.0, but to be safe, I'm letting 5.7 run alongside it for a bit longer. Unfortunately, that costs something, but it's necessary for now.
Please do not PM, IM or email me for support (they will go unread/ignored). Use the forum for support.