Anomalia contabile per i giorni visitati?

Come altri prima di me, ho cercato di ottenere il distintivo di “Aficionado” partecipando al mio forum per 100 giorni consecutivi. E sono quasi arrivato. Penso di aver saltato solo uno o due giorni di fila, il che mi fa dubitare dei dati di partecipazione riportati, ma ciò che è davvero anomalo è che i conteggi non tornano.

Nel rapporto “Utenti”, per il trimestre, risulto con 92 giorni, che deve corrispondere all’intero trimestre.
Nella vista Amministratore dei requisiti di Livello 3, la mia partecipazione è riportata come 92/100 giorni, ovvero il 92%, ben oltre il 50%.
Da questi due dati, dovremmo concludere che sono stato assente per almeno 8 giorni, dal giorno 100 al giorno 93 nel passato.

Eppure: nella vista Utenti, se controllo la partecipazione annuale, ottengo 360, il che significa al massimo 5 giorni di assenza nell’anno (escluso il giorno bisestile).

Quindi, una delle due statistiche non è del tutto corretta… oppure ho commesso un errore.

(Certo, non è un problema grave, ma forse il bug influisce su qualcos’altro, se esiste davvero.)

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.

username start_range end_range days
EdS 2019-10-07 2020-01-13 99
EdS 2019-09-29 2019-10-05 7
EdS 2019-07-28 2019-09-27 62

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.

There’s definitely something afoot.

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 reporting of trust level 3 requirements
  • the awarding of badges
  • the ‘users’ reports by week, month, quarter, year
  • the reporting by data explorer

Just to add a couple of thoughts…

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.

So che è vecchio, ma per curiosità hai risolto/si è risolto magicamente?

Non l’ho capito, sono abbastanza sicuro che non si sia risolto da solo, quindi sarei abbastanza sicuro che ci sia ancora qualcosa che non va. Non ho letto nessun codice né ho approfondito. Come dico, per la maggior parte degli scopi è solo di interesse occasionale e rimanderebbe solo un badge o una promozione di una settimana o giù di lì. Ma il mio commento sulla retrocessione L3 rimane valido.

Mi darebbe fastidio, penso, se avessi avuto qualche responsabilità per una codebase che non sa contare! Potrebbe persino interessarmi indagare, ma non tutti sono fatti così.

Le query che ho fatto potrebbero essere facilmente eseguite su altri forum, non sulla sandbox, suppongo, dato che non è a lunga durata.