As others before me, I’ve been trying to get an Aficionado badge by attending my forum 100 consecutive days. And I’m nearly there. I think I’ve only missed one or two days in a row, which makes me suspicious of the reported attendances, but what’s really anomalous is that the accounting doesn’t add up.
Under the Users report, for Quarterly, I stand at 92 days, which must be the whole quarter.
In the Admin view of Level 3 Requirements, it reports my attendance as 92/100 days, aka 92%, comfortably over 50%.
From those two facts, we’d have to conclude I was away for at least 8 days, from day 100 to day 93 in the past.
And yet: in the Users view if I look for Annual attendance, I score 360 - which means at most 5 days off in the year (no leap day.)
So, one or other of the stats isn’t quite right… or I’ve made an error.
(This isn’t a serious problem, of course, but maybe the bug affects something, if bug there be.)
I’ve installed the Data Explorer plugin and run the query from How can I see how many days in a row I visited the forum? and it shows that my running attendance is 99 days. If that’s right, the Admin view which reports days attendance out of 100 must be wrong - as noted above, tl3_requirements reports 92/100.
An update: I got my Aficionado badge, so that way of calculating attendance reached 100. But the Level 3 Requirements calculation reads 93/100. And the days-in-a-row attendance calculation in Data Explorer shows 101 days.
Most likely a time zone misunderstanding. Server time is always in UTC so the calculation is, you must visit between 00:01 and 23:59 UTC on that day for it to count.
These numbers and several others used to get a lot of queries here and in other Discourse instances back in 2014/15. There were so many new users wanting to get badges and we didn’t really trust Discourse. Some differences were indeed bugs so most of the calculations have been fairly well confirmed.
I checked some myself. I remember getting my data and tallying how many UTC days I visited Discourse. I had third-party stats from network monitoring software so I could double-check the Discourse stats. It would have been nice to find some big anomalies but Discourse was correct for my stats.
That doesn’t mean there isn’t a problem now. It just seems unlikely.
By the way, I still don’t have the badge because it is difficult to work to UTC when I’m as far from it as you can get on this planet.
I’m using the badge just as the motivation for checking. It’s not the badge that’s looking dubious, it’s the counting. There are at least two or three things counting attendance, and they are not all in agreement.
The time zone thing could certainly trip up a person who believes they have visited on N days but are not showing as visiting for N days - but that’s not the situation here.
To recap, we see counts of days attendance in these contexts:
The one place I can think of where this might make a meaningful difference in behaviour is in L3 demotions. If the L3 attendance counter is ‘wrong’ then someone might get demoted for missing the 50% attendance target, when they hadn’t in fact missed it.
I have one member with a 100% attendance according to Data Explorer - 290 days straight - who is showing as only 97 out of 100 on the L3 requirements page.
I didn’t figure it out, I’m pretty sure it won’t have solved itself, so I would be pretty confident there’s still something wrong in there. I haven’t read any code or looked any deeper. As I say, for most purposes it’s only of casual interest and would just defer a badge or promotion for a week or so. But my comment about L3 demotion stands.
It would bother me, I think, if I had any responsibility for a codebase which can’t count! It might even interest me to look into it, but not everyone is made that way.
The queries I did could readily be done on other forums - not on the sandbox, I suppose, as it isn’t long-lived.