Files
rf4-spotter/docs/activity-index.md

3.6 KiB

Индекс активности RF4 Spotter

Индекс — сравнительная оценка свежести подтверждённых наблюдений, а не вероятность поклёвки. Он рассчитывается отдельно для комбинации «водоём + точка + рыба» в выбранном окне 6, 12, 24 или 72 часа.

Какие данные участвуют

В расчёт входят только одобренные и не удалённые записи с координатами точки. pending, rejected, удалённые записи и официальные рекорды без координат не участвуют. Фильтры водоёма, рыбы и способа ловли применяются до агрегации.

Официальный импорт устраняет точные дубликаты по source_external_id. Несколько пользовательских сообщений остаются отдельными наблюдениями, но одинаковое имя игрока после удаления пробелов и приведения регистра учитывается в unique_players только один раз. Пустое имя игроком не считается. Поэтому один игрок может увеличить объём и свежесть данных, но не может имитировать несколько независимых источников.

Формула активности

Для каждого сообщения с возрастом age_hours и доверием к источнику source_confidence от 0 до 100:

freshness_i = exp(-age_hours_i / 18)
weighted_reports = sum(freshness_i * source_confidence_i / 100)
unique_players = количество уникальных непустых player_name
trophy_bonus = min(1, trophy_count / 3)

activity_score = round(
    55 * min(1, weighted_reports / 12)
  + 25 * min(1, unique_players / 6)
  + 20 * trophy_bonus
)

Период полураспада вклада по свежести равен примерно 12,5 часа. Трофей определяется по порогу trophy_weight_g конкретного вида рыбы.

Формула уверенности

confidence_score = round(
    45 * min(1, approved_reports / 10)
  + 35 * min(1, unique_players / 5)
  + 20 * average_source_confidence / 100
)

Обе оценки ограничены диапазоном 0–100 составляющими формулы. На карточке рядом с числом показываются число уловов, число уникальных игроков, время последнего подтверждения и пометка «Данных мало» при числе наблюдений меньше трёх.

Воспроизводимость и ограничения

Расчёт использует время сервера в UTC; в тестах опорное время задаётся явно. Граница окна включительна: запись ровно на границе входит в расчёт. Формула соответствует разделу 11 RF4_MVP_SPEC.md и должна быть откалибрована после накопления реальных данных. Она пока не выявляет семантически похожие пользовательские сообщения от разных имён и не заменяет модерацию.