Development of an AI system for the hotel and restaurant business HoReCa
HoReCa is a business with thin margins, high operational complexity, and a critical dependence on user experience. AI optimizes occupancy, manages inventory, personalizes service, and assists with pricing.
Revenue Management
Dynamic Pricing for Hotels:
Real-time rate optimization is the foundation of hotel revenue management:
import numpy as np
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor
class HotelDemandPredictor:
"""Прогноз спроса на гостиничные номера"""
def build_features(self, date, hotel_data):
return {
# Сезонные факторы
'days_to_arrival': (date - pd.Timestamp.today()).days,
'day_of_week': date.dayofweek,
'is_weekend': int(date.dayofweek >= 4),
'month': date.month,
'is_holiday': int(date in hotel_data['holidays']),
# Конкурентная среда
'avg_competitor_rate': hotel_data['comp_rates'].get(str(date), 0),
'min_competitor_rate': hotel_data['comp_min_rates'].get(str(date), 0),
# Исторические паттерны
'last_year_occupancy': hotel_data['hist_occupancy'].get(str(date), 0.7),
'booking_pace_7d': hotel_data['current_bookings'] / hotel_data['capacity'],
# События в городе
'event_flag': int(any(e['date'] == str(date) for e in hotel_data['events'])),
'event_size': sum(e.get('attendees', 0) for e in hotel_data['events']
if e['date'] == str(date)),
}
class DynamicPricingEngine:
def __init__(self, demand_model, min_rate, max_rate, rack_rate):
self.demand_model = demand_model
self.min_rate = min_rate
self.max_rate = max_rate
self.rack_rate = rack_rate
def recommend_rate(self, date, current_occupancy, days_ahead, features):
# Прогноз спроса при текущем тарифе
predicted_demand = self.demand_model.predict([features])[0]
# Уровень заполнения относительно компрессии
if days_ahead < 7 and current_occupancy > 0.85:
# Высокий спрос, мало времени → повысить
multiplier = 1.3 + (current_occupancy - 0.85) * 4
elif days_ahead > 60 and current_occupancy < 0.4:
# Далеко и мало броней → снизить для стимуляции
multiplier = 0.75
else:
multiplier = 0.9 + predicted_demand * 0.4 # нормальное динамическое ценообразование
recommended = np.clip(self.rack_rate * multiplier, self.min_rate, self.max_rate)
return round(recommended / 100) * 100 # округлить до 100 руб
Restaurant inventory management
Ingredient Consumption Estimate:
- Demand for menu items → decomposition into ingredients by recipes - Features: day of the week, weather (hot dishes in the rain), events in the hotel/city - Forecast MAPE: 8–15% for the daily horizon
Procurement management and waste reduction:
- Safety stock is calculated based on the quantile forecast (P90 demand) - FIFO in warehouse accounting + automatic FEFO for perishables - Food waste report: actual consumption vs. theoretical (by recipe × sold dishes)
Waste reduction: In a typical restaurant, 20–30% of food is wasted. AI reduces this to 8–12%.
Personalizing the guest experience
Guest profile:
From PMS (Property Management System) and booking history: - Room preferences: floor, view, temperature, pillows - Dietary restrictions: vegetarian, halal, allergies - Activities: loves SPA, prefers early breakfast - Communication preferences: WhatsApp, e-mail, do not disturb
Pre-arrival automation: 24 hours before check-in → personal message with an upgrade offer based on the P(accept) model.
Chatbot for guests:
LLM + RAG on the hotel knowledge base (FAQ, menu, attractions): - Requests via messenger (WhatsApp, Telegram) or QR code in the room - “I want to book dinner for two at 8:00 PM” → check availability → confirmation - “Where is the nearest ATM?” → search by location database
Optimizing kitchen and operations
Kitchen load forecast:
LSTM on order history → forecast for 15-minute periods → kitchen staff planning: - Peak 7:00 PM–9:00 PM in the restaurant = 3 cooks on the line - Quiet hour 3:00 PM–5:00 PM = 1 cook
Recipe costing and menu engineering:
- Automatic calculation of the cost of dishes based on current prices of ingredients - Menu Engineering matrix: Stars (popular + profitable), Plowhorses, Puzzles, Dogs - ML experiment: testing new menu items on a subset of guests with AB analysis
Development time: 4–7 months for a HoReCa AI platform with Revenue Management, inventory forecasting, and personalization with integration into PMS (Opera, Hestia, Fidelio).







