¿Anomalía contable para Días Visitados?

Como otros antes que yo, he estado intentando obtener el distintivo de Aficionado asistiendo a mi foro durante 100 días consecutivos. Y estoy casi allí. Creo que solo he faltado uno o dos días seguidos, lo que me hace sospechar de los informes de asistencia, pero lo realmente anómalo es que la contabilidad no cuadra.

Bajo el informe de Usuarios, para el trimestre, tengo 92 días, lo que debe ser todo el trimestre.
En la vista de Administrador de los Requisitos de Nivel 3, se informa que mi asistencia es de 92/100 días, es decir, 92%, cómodamente por encima del 50%.
De esos dos hechos, tendríamos que concluir que estuve ausente al menos 8 días, desde el día 100 hasta el día 93 en el pasado.

Y sin embargo: en la vista de Usuarios, si busco la asistencia anual, obtengo 360, lo que significa que como máximo he faltado 5 días en el año (sin contar el día bisiesto).

Así que, una u otra de las estadísticas no es del todo correcta… o he cometido un error.

(Esto no es un problema grave, por supuesto, pero quizás el error afecte a algo, si es que existe tal error.)

He instalado el complemento Data Explorer y ejecutado la consulta de ¿Cómo puedo ver cuántos días seguidos he visitado el foro?, y muestra que mi asistencia consecutiva es de 99 días. Si eso es correcto, la vista de Administrador que reporta la asistencia de días fuera de 100 debe estar incorrecta, como se señaló anteriormente, tl3_requirements reporta 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

Una actualización: obtuve mi insignia de Aficionado, por lo que esa forma de calcular la asistencia llegó a 100. Sin embargo, el cálculo de los requisitos de Nivel 3 muestra 93/100. Y el cálculo de asistencia consecutiva en el Explorador de datos muestra 101 días.

Definitivamente hay algo en marcha.

Lo más probable es que sea un malentendido con la zona horaria. La hora del servidor siempre es UTC, por lo que el cálculo es que debes visitar entre las 00:01 y las 23:59 UTC ese día para que cuente.

Estos números y varios otros solían generar muchas consultas aquí y en otras instancias de Discourse en 2014/15. Había tantos usuarios nuevos deseando obtener insignias y no confiábamos realmente en Discourse. Algunas diferencias eran, de hecho, errores, por lo que la mayoría de los cálculos se han confirmado bastante bien.

Verifiqué algunos por mí mismo. Recuerdo obtener mis datos y sumar cuántos días UTC visité Discourse. Tenía estadísticas de terceros de software de monitoreo de red, por lo que podía verificar doblemente las estadísticas de Discourse. Habría sido agradable encontrar algunas anomalías importantes, pero Discourse fue correcto para mis estadísticas.

Eso no significa que no haya un problema ahora. Solo parece poco probable.

Por cierto, todavía no tengo la insignia porque es difícil trabajar con UTC cuando estoy tan lejos de ella como se puede estar en este planeta.

Estoy usando la insignia simplemente como motivación para verificar. Lo que parece dudoso no es la insignia, sino el conteo. Hay al menos dos o tres sistemas que cuentan la asistencia y no todos están de acuerdo.

El problema de la zona horaria podría confundir a alguien que cree haber visitado en N días pero que no aparece como visitante en N días, pero esa no es la situación aquí.

Para resumir, vemos conteos de días de asistencia en estos contextos:

  • el informe de los requisitos del nivel de confianza 3
  • la concesión de insignias
  • los informes de ‘usuarios’ por semana, mes, trimestre y año
  • el informe mediante el explorador de datos

Solo para añadir un par de reflexiones…

El único lugar que se me ocurre donde esto podría marcar una diferencia significativa en el comportamiento es en las degradaciones de nivel L3. Si el contador de asistencia de L3 es “incorrecto”, alguien podría ser degradado por no haber alcanzado el objetivo del 50% de asistencia, cuando en realidad sí lo cumplió.

Tengo un miembro que según el Explorador de Datos tiene un 100% de asistencia: 290 días seguidos, pero en la página de requisitos de L3 aparece con solo 97 de 100.

Sé que esto es antiguo, pero por curiosidad, ¿lo resolviste/se resolvió mágicamente?

No lo he resuelto, estoy bastante seguro de que no se habrá resuelto solo, así que estaría bastante seguro de que todavía hay algo mal ahí. No he leído ningún código ni he investigado más a fondo. Como digo, para la mayoría de los propósitos es solo de interés casual y solo pospondría una insignia o promoción durante una semana más o menos. Pero mi comentario sobre la degradación de L3 se mantiene.

Me molestaría, creo, si tuviera alguna responsabilidad sobre una base de código que no sabe contar. Incluso podría interesarme investigarlo, pero no todo el mundo es así.

Las consultas que hice se podrían hacer fácilmente en otros foros, supongo que no en el sandbox, ya que no es de larga duración.