3 марта 2026 12 мин Михаил Кадочников AI / HoReCa

Как мы увеличили RevPAR на 18% с помощью AI-ценообразования

Московский бутик-отель на 40 номеров сталкивался с классической проблемой: выручка колебалась от месяца к месяцу, а менеджеры устанавливали цены интуитивно. В выходные цены занижали, в будни слишком завышали. Из-за этого хорошие номера пустовали, дешёвые номера были забронированы, а выручка платила. Мы реализовали систему AI-ценообразования на основе градиентного бустинга, которая автоматически рассчитывает оптимальную цену на каждый номер каждый день. За 4 месяца тестирования RevPAR (средний доход на номер) увеличился на 18%, при этом occupancy (заполняемость) не упала. Это case study о том, как работает такая система, какие данные нужны, как её реализовать и какие проблемы ждут в production.


01

Что такое RevPAR и почему это метрика всей жизни

RevPAR (Revenue Per Available Room) — это средняя выручка, полученная с одного доступного номера за день.

Формула: RevPAR = (Total Room Revenue) / (Total Available Rooms × Days)

Или проще: RevPAR = Average Daily Rate (ADR) × Occupancy Rate

Пример: если в отеле 40 номеров, в месяц они приносят 16M рублей, то RevPAR = 16M / (40 × 30) = 13.3K в день.

Это главная метрика в HoReCa. Можно увеличивать выручку двумя способами:

А лучше: поднять цену в нужный момент, когда спрос высокий, и опустить в спад. Это и есть динамическое ценообразование.

В цифрах: 18% рост RevPAR за счёт AI-ценообразования означает: доход с 16M в месяц → 18.88M. Это +2.88M или +288K в месяц на одном отеле из 40 номеров.


02

Почему ручное ценообразование теряет деньги

В нашем отеле было примерно так:

Проблемы:

Результат: в пиковые дни цена занижена на 15–25%, теряется выручка; в спадные дни цена завышена, номера стоят пусто.

"ML модель не забывает про праздники, не устаёт анализировать 2 года истории, и может обновить цену в OTA за 5 минут, пока на сайте отеля — за 1 секунду."

03

Архитектура ML системы для ценообразования

Компоненты системы:

  1. Data Pipeline — собирает данные из PMS (Property Management System), OTA, погодного API, календаря праздников
  2. Feature Engineering — преобразует сырые данные в features (признаки) для модели
  3. ML Model — предсказывает спрос и рассчитывает оптимальную цену
  4. Price Engine — применяет рекомендации к системе бронирований
  5. Monitoring — отслеживает RevPAR, качество предсказаний, anomalies

Данные, которые мы собирали:

Как мы готовили данные:

В Python на Pandas/Numpy:

  1. Экспортировали историю бронирований из PMS (2 года данных, ~15K бронирований)
  2. Очищали данные: удаляли выбросы, обработки missing values, outliers (например, бронирование по цене 100 рублей — явно ошибка)
  3. Создавали признаки:
    • day_of_week, is_weekend
    • days_until_checkin (за сколько дней до приезда забронировали)
    • length_of_stay
    • occupancy_forecast (прогноз заполняемости на эту дату)
    • competitor_avg_price
    • is_holiday, days_from_holiday
    • rolling_avg_price (средняя цена за последние 30 дней)
  4. Нормализовали числовые признаки (StandardScaler)
  5. Разделили на train/val/test с временным фильтром (не random split!): train на первый год, validation на второй год, test на последний месяц

Выбор модели: Gradient Boosting (XGBoost)

Мы пробовали несколько подходов:

Модель предсказывает: какова будет вероятность booking если установим цену X на дату Y для номера типа Z?

На основе этой вероятности рассчитываем оптимальную цену, которая максимизирует ожидаемую выручку:

Expected Revenue = Probability of Booking × Price

Price находим через hill climb алгоритм (пробуем цены в диапазоне ±30% от baseline и выбираем, что даёт макс выручку).

Примечание: это не задача точного предсказания цены. Это задача оптимизации: найти цену, которая максимизирует выручку. Поэтому подходы отличаются от стандартного ML.


04

A/B тестирование и постепенный rollout

Мы не просто включили AI на всех номерах сразу. Были опасения:

Стратегия rollout (4 месяца):

Месяц 1: Пилот на 10 номерах

Месяц 2: Калибровка модели

Месяц 3: Расширение на 50% номеров

Месяц 4: Полный rollout

Метрики по месяцам: Месяц 0 (baseline): RevPAR 12,500 руб., Occupancy 78%. Месяц 4: RevPAR 14,750 руб. (+18%), Occupancy 77.2% (-0.8%). Net result: +2,250 руб/день × 30 дней = +67,500 в месяц.


05

Интеграция с PMS и OTA

Модель может быть идеальной, но если цены не обновляются в системе бронирований, это бесполезно.

Архитектура интеграции:

  1. PMS (Property Management System) — Мастерская Гостеприимства (системы Protel, Ростелеком, собственные)
  2. Channel Manager — промежуточный слой (мы использовали Channelmanager.com)
  3. OTA — Booking.com, Agoda, Яндекс.Путешествия, Ozon Travel

Процесс обновления цен:

Каждый день в 6:00 UTC (9:00 по Москве):

  1. ML модель запускается на сервере, рассчитывает оптимальные цены на 90 дней вперёд
  2. API нашего сервиса отправляет обновления в Channel Manager через REST API
  3. Channel Manager распространяет цены на все OTA (Booking, Agoda и т.д.)
  4. OTA получают обновления в течение 1–6 часов (зависит от партнёра)
  5. На сайте отеля цены обновляются в real-time (интегрировали API с фронтендом)

Технические вызовы:

"Интеграция с OTA занимает 60% усилий в проекте, но именно она дает 90% результата. Без неё модель просто красивая статистика."

06

Результаты и уроки

Что сработало:

Что было трудным:

Уроки:

Важно: после 4 месяцев рост начал замедляться. На месяц 6: RevPAR +19% (улучшение на 1%), на месяц 8: RevPAR +17.5% (падение на 1.5%). Это нормально — модель адаптируется к новому поведению гостей и рынка.


07

Как начать свой проект?

Минимальные требования:

Timeline:

Бюджет для отеля из 40 номеров:

Выводы: AI-ценообразование работает. RevPAR +18% — это не фейк. Но это не волшебство: нужны хорошие данные, правильная интеграция и постоянный мониторинг. Для отеля цепочки (50+ номеров) это рентабельно в первый год.

Готов обсудить вашу задачу

Отвечу в течение 2 часов. Бесплатная оценка проекта за 24 часа.