✈️ АвиаМонитор Открыть радар цен →
Математика & Алгоритмы

Алгоритм АвиаМонитора: Как мы вычисляем дно цены и находим скидки от 25% до 70%

Технические подробности сбора данных, расчета медианной нормы, очистки от «мусорных» рейсов и выявления настоящих аномалий (Error Fares).

1. Непрерывный мониторинг тарифов (Scraping & Ingestion)

Сервис АвиаМонитор каждые 10 минут опрашивает данные агрегатора Aviasales для ключевых авиахабов (Москва, Санкт-Петербург, Казань, Екатеринбург, Сочи, Новосибирск, Уфа, Нячанг).

Сбор осуществляется с помощью безголового браузерного движка Lightpanda под управлением Node.js и Playwright. Каждому городу вылета выделен независимый CDP-порт, что гарантирует мгновенный сбор данных без блокировок и искажений по IP.

2. Жесткая фильтрация «Мусорного трафика»

Обычные списки «дешевых билетов» в интернете забиты неликвидными рейсами. Алгоритм АвиаМонитора на этапе записи в база данных SQLite (`deals.db`) отсекает:

  • Любые рейсы с пересадками (остаются строго прямые перелеты).
  • Вылеты за пределами 30 календарных дней (только ближайший месяц).
  • Тарифы без включенного ручного багажа базового формата.

3. Расчет скользящей нормы и Z-Score аномалий

Для каждого направления рассчитывается историческая статистика за 30 дней:

  • Min_30d — абсолютный минимум цены на данный маршрут за месяц.
  • Max_30d — максимальная зафиксированная цена.
  • Norm — медианное справедливое значение стоимости билета.

Алгоритм рассчитывает показания Z-Score (отклонение от математического ожидания). Если текущая цена упала на ≥25% от нормы и находится в пределах 5% от исторического дна месяца, билет получает статус и бейдж 🔥 Суперцена.

Формула бейджа «Суперцена»:

Discount = ((Norm - CurrentPrice) / Norm) * 100%
IsFloor = CurrentPrice <= (Min_30d * 1.05)

IF Discount >= 25% AND IsFloor == True THEN
   BADGE = "🔥 Суперцена"
    

4. Прозрачность для пользователя

На сайте aviamonitor.com пользователь видит не просто цифру, а полный контекст: текущую цену, зачеркнутую медианную норму, процент скидки и диапазоны месяца (MIN — MAX).

Посадочные страницы городов вылета