BeachGuide · Rating v2 → v2.1

Как работает рейтинг — и что мы предлагаем изменить

Слева — текущая формула. Жёлтые ⚠️ и красные 🐞 значки — точки, которые мы решили доработать: нажми, чтобы увидеть «Логика / Что меняем / Почему / Результат». Внизу — сравнение текущей и новой системы на трёх похожих пляжах.

1. Как работает текущая формула

score = Σ ( subscore_i (0–10) × weight_i ) // 17 компонентов, Σ весов = 1.00 ↓ если данных нет — вклад 0, вес НЕ перераспределяется score = min( score , водный_кэп ) // poor→6.0, prohibited→3.5 ↓ нет objective/reputation сигнала → "pending" badge: ≥8.5 excellent · ≥7 good · ≥5.5 average · иначе poor

Три группы весов:

группаΣ весачто меряет
OBJECTIVE0.40факты пляжа: вода, инфраструктура, доступность, профиль, природа, климат, толпа, награды
REPUTATION0.50внешние оценки: Google/TA рейтинги + объёмы отзывов + поисковый спрос
CONFIDENCE0.10мета-надёжность: покрытие, свежесть, разнообразие источников
Главная асимметрия: репутация (0.50) весит больше, чем сами качества пляжа (0.40). Половина рейтинга — «насколько пляж популярен/обсуждаем», а не «насколько он хорош».

2. Что меняем — нажми на значок

Каждый значок — отдельная правка. Жёлтый ⚠️ — дизайн-правка, красный 🐞 — реальный баг в коде.

⚠️ дизайн/веса · 🐞 баг · подтверждено двумя независимыми ревью (Claude + Codex) и тобой

3. Текущие веса → предлагаемые

компонентсейчасv2.1смысл правки
OBJ water_quality0.100.14вода — главный фактор, поднять
OBJ infrastructure0.080.09
OBJ accessibility0.060.06
OBJ beach_profile0.050.04меряет заполненность данных, не качество
OBJ nature_environment0.040.05
OBJ climate_seasonality0.030.03
OBJ crowding_comfort0.030.05комфорт важен (если данные есть)
OBJ awards0.010.04Голубой флаг должен весить
REP google_rating_bayesian0.120.11оценка людей (звезда)
REP tripadvisor_rating_bayesian0.100.09
REP google_reviews_score0.070.04чистая популярность, срезать
REP tripadvisor_reviews_score0.060.03чистая популярность, срезать
REP volume_score0.120.05поисковый спрос, накручивается
REP rating_consistency0.030.03
CNF source_coverage0.040.07не учитывать наше описание и видео
CNF data_freshness0.030.04
CNF source_diversity0.030.04
OBJ / REP / CNF0.40 / 0.50 / 0.100.50 / 0.35 / 0.15качество > популярность
Суть: objective 0.40→0.50, reputation 0.50→0.35. Плюс внутри репутации режем «чистую популярность» (volume + review-counts: 0.25→0.12) в пользу сентимента и физики пляжа.

4. Сравнение: текущая система vs v2.1 на трёх пляжах

Те же три архетипа, что в основном разборе. Числа пересчитаны под новые веса + перераспределение недостающего веса + мягкий водный штраф.

А — «Cala премиум»

полные данные, всё хорошо, синий флаг
сейчас8.59 excellent
v2.18.67 excellent
итогостаётся топом ✓

Б — «Hidden gem»

дикий, 4.9★ но мало отзывов, нет TA/наград
сейчас5.33 poor
v2.18.02 good
итог+2.69 — спасён ★

В — «Город, вода poor»

отличная инфра, но грязная вода
сейчас6.00 average
v2.16.30 average
итогштраф сохранён, но дифференцирован

Что показывает сравнение

  • Пляж А (премиум) остаётся топом — даже чуть выше: теперь награды и вода вознаграждаются сильнее. Качество не страдает.
  • Пляж Б (hidden gem) — главный выигрыш: 5.33 → 8.02. Перераспределение веса убирает «мёртвые нули» за отсутствующие TA/награды, а срезанная популярность перестаёт его топить. Теперь он оценён по тому, что реально хорошо.
  • Пляж В (грязная вода) — штраф остаётся (6.30 ≈ average), но мягкий множитель ×0.80 вместо обрыва-кэпа сохраняет порядок: разные poor-пляжи больше не схлопываются в одну точку 6.0.
Числа иллюстративны и самосогласованы; на реальном пересчёте подставляются cohort-статы из БД. Перед продакшеном — прогон на реальной выборке (раздел «Открытые решения»).