Как мы считаем скидку
Коротко: сравниваем не с «старой ценой» продавца, а с тем, сколько товар реально стоил.
Почему «старая цена» не годится
Магазин вправе указать любую перечёркнутую цену. Частый приём — поднять её за несколько дней до акции. Скидка «−70%» при этом может оказаться −5% к реальной цене.
Что делаем мы
Мы храним цену каждого товара с момента, когда взяли его под наблюдение. Скидку считаем от медианы за 90 дней — цены, вокруг которой товар держался большую часть времени. Отдельно отмечаем, был ли достигнут минимум за весь срок наблюдений по товару — это станет «минимумом за 12 месяцев», когда по товару накопится год данных, а до этого честно показываем дату начала наблюдений, а не выдуманные 12 месяцев.
Из чего складывается оценка сделки (0–100)
| Реальная скидка к медиане 90 дней | до 30 |
| Близость к историческому минимуму | до 20 |
| Ставка кэшбэка/комиссии | до 10 |
| Рейтинг товара и продавца | до 10 |
| Ликвидность категории | до 10 |
| Наличие и доставка | до 5 |
| Дефицитность предложения | до 5 |
| Историческая конверсия похожих сделок | до 10 |
| Штраф за фейковую скидку | −40 |
| Штраф за скачки цены (волатильность) | −15 |
| Штраф за нового продавца без истории | −20 |
| Штраф за повторную публикацию той же сделки в течение 3 дней | −100 (блокирует почти полностью) |
На старте проекта часть факторов (кэшбэк, ликвидность категории, историческая конверсия) ещё недоступна — не потому что партнёрские сети не подключены (Admitad/AdvCake работают, статистика кликов собирается), а потому что эти данные ещё не сведены в общий расчёт по каждому товару: нет матчинга одного товара между магазинами, нет агрегации кликов по похожим сделкам, ставка кэшбэка считается только точечно, не для каждого оффера. Это честно видно в разборе оценки на странице каждой сделки: недоступные факторы помечены как «нет данных в MVP», а не заменены выдуманными числами.