Аномалия в учёте дней посещений?

Как и многие до меня, я пытаюсь получить значок «Поклонник», посещая свой форум 100 дней подряд. И я почти добрался до цели. Кажется, я пропустил всего один-два дня подряд, что заставляет меня сомневаться в точности отчётов о посещениях, но самое странное — это то, что цифры не сходятся.

В отчёте «Пользователи» за квартал у меня указано 92 дня, что, видимо, означает весь квартал.
В административном представлении требований уровня 3 сообщается, что моё посещение составляет 92 из 100 дней, то есть 92%, что значительно превышает 50%.
Исходя из этих двух фактов, можно сделать вывод, что я отсутствовал как минимум 8 дней, с 100-го по 93-й день в прошлом.

И всё же: в представлении «Пользователи», если посмотреть годовую статистику посещаемости, у меня 360 дней — это означает максимум 5 дней отсутствия за год (без учёта високосного дня).

Так что, либо одна из статистик не совсем точна, либо я где-то ошибся.

(Конечно, это не серьёзная проблема, но, возможно, баг влияет на что-то другое, если баг вообще есть.)

Я установил плагин Data Explorer и выполнил запрос из Как посмотреть, сколько дней подряд я посещал форум?. Он показывает, что моя текущая посещаемость составляет 99 дней. Если это верно, то административный вид, который отображает количество дней посещаемости из 100, должен быть неверным — как отмечалось выше, tl3_requirements показывает 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

Обновление: я получил значок «Поклонник», так что этот способ подсчёта посещаемости достиг 100. Однако расчёт требований для уровня 3 показывает 93/100. А подсчёт дней подряд по посещаемости в Data Explorer показывает 101 день.

Здесь определённо что-то не так.

Скорее всего, это недопонимание, связанное с часовыми поясами. Время сервера всегда указано в UTC, поэтому условие таково: вы должны зайти на сайт между 00:01 и 23:59 UTC в этот день, чтобы это засчиталось.

Эти цифры и несколько других ранее вызывали множество вопросов здесь и в других экземплярах Discourse ещё в 2014–2015 годах. Тогда было очень много новых пользователей, желающих получить значки, и мы не вполне доверяли системе Discourse. Некоторые расхождения действительно были ошибками, поэтому большинство расчётов впоследствии было подтверждено.

Я проверял это сам. Помню, как получил свои данные и подсчитал, сколько дней по UTC я посещал Discourse. У меня были сторонние статистические данные от программного обеспечения для мониторинга сети, что позволяло перепроверить статистику Discourse. Было бы здорово обнаружить какие-то серьёзные аномалии, но для моих данных Discourse оказался точным.

Это не значит, что сейчас проблем нет. Просто это кажется маловероятным.

Кстати, у меня до сих пор нет этого значка, потому что работать по UTC сложно, когда находишься в самой удалённой от него точке на планете.

Я использую значок просто как мотивацию для проверки. Сомнительна не сама значок, а подсчёт. По крайней мере, два или три механизма учитывают посещаемость, и они не всегда согласуются друг с другом.

Разница во времени действительно могла бы сбить с толку человека, который считает, что посещал сайт N дней, но в отчётах это не отображается как N дней. Однако в данном случае дело не в этом.

Подытожим: мы видим подсчёт дней посещаемости в следующих контекстах:

  • отчёт о требованиях для уровня доверия 3
  • присвоение значков
  • отчёты о пользователях по неделям, месяцам, кварталам и годам
  • отчётность через Data Explorer

Хочу добавить несколько мыслей…

Единственное место, где это может существенно повлиять на поведение, — это понижение уровня до L3. Если счётчик посещаемости L3 «неверный», кого-то могут понизить за невыполнение цели в 50% посещаемости, хотя на самом деле она была достигнута.

У меня есть один участник с 100% посещаемостью по данным Data Explorer — 290 дней подряд — но на странице требований L3 он отображается с показателем всего 97 из 100.

Я знаю, что это старый вопрос, но из любопытства: вы уже решили это или проблема разрешилась сама собой?

Я так и не разобрался, и я уверен, что проблема не решилась сама собой, так что, скорее всего, там всё ещё что-то не так. Я не читал код и не копался глубже. Как я уже говорил, для большинства целей это лишь предмет лёгкого любопытства и отложит получение значка или повышение максимум на неделю. Но моё замечание о понижении до уровня L3 остаётся в силе.

Меня бы это беспокоило, если бы я нес ответственность за кодовую базу, которая не умеет считать! Это даже могло бы заинтересовать меня, чтобы разобраться в этом, но не у всех есть такое стремление.

Запросы, которые я делал, можно было бы легко выполнить на других форумах — не на песочнице, полагаю, так как она не предназначена для длительного хранения.