Giới thiệu dự án

Thị trường kinh doanh khách sạn và dịch vụ lưu trú tại Hà Nội giai đoạn 2014–2015 chứng kiến sự bùng nổ mạnh mẽ ở phân khúc khách sạn 3–4 sao, được thúc đẩy bởi sự gia tăng của du lịch MICE (Hội nghị, Hội thảo, Triển lãm) và dòng khách quốc tế. Tuy nhiên, sự cạnh tranh gay gắt từ các chuỗi khách sạn quốc tế cùng các cơ sở lưu trú nội địa đặt ra bài toán sống còn về tối ưu hóa doanh thu cho các khách sạn quy mô vừa độc lập.

Đề tài khóa luận nghiên cứu trường hợp điển hình tại Khách sạn May De Ville City Centre (24 Hàn Thuyên, Hai Bà Trưng, Hà Nội - quy mô 81 phòng tiêu chuẩn 4 sao). Qua phân tích số liệu tài chính giai đoạn 2014–2015, đề tài xác định một điểm nghẽn nghiêm trọng: Cơ cấu doanh thu mất cân đối nghiêm trọng. Doanh thu từ dịch vụ ăn uống (F&B) chiếm tới 42,9% (196.364 triệu đồng), trong khi doanh thu từ dịch vụ lưu trú cốt lõi chỉ chiếm 14,1% (64.539 triệu đồng) tổng doanh thu năm 2015.

[Tổng doanh thu 2015: 457.519 tr VND]

Vấn đề nghiên cứu cụ thể (Problem Statement)

  1. Chính sách giá cứng nhắc (Static Pricing): Khách sạn duy trì biểu giá niêm yết (Rack Rate) cố định (Superior: 72 USD, Deluxe: 87 USD, Executive: 102 USD, Junior Suite: 122 USD), không linh hoạt theo biến động cung - cầu thị trường.
  2. Tính thời vụ khắc nghiệt: Doanh thu mùa cao điểm (tháng 9 đến tháng 12) chiếm tới 52,7% tổng doanh thu lưu trú, dẫn tới tình trạng "cháy phòng" vào chính vụ nhưng thừa công suất nghiêm trọng vào mùa thấp điểm.
  3. Thiếu cơ chế định giá linh hoạt theo thời gian: Khách sạn áp dụng biểu giá tính theo ngày cho mọi đối tượng khách, bỏ lỡ phân khúc khách thuê theo giờ hoặc quá cảnh ngắn ngày.
  4. Khai thác kênh phân phối chưa tối ưu: Kênh trực tiếp và Online Travel Agent (OTA) chưa được tích hợp quản lý doanh thu theo thời gian thực (Real-time Yield Management).

Mục tiêu dự án

  1. Chuẩn hóa hệ thống tính toán và giám sát các chỉ số hiệu suất buồng phòng: Công suất phòng ($Occ$), Giá bán bình quân ngày ($ADR$), và Doanh thu trên mỗi phòng sẵn có ($RevPAR$).
  2. Xây dựng khung thuật toán Quản trị tận thu (Yield/Revenue Management) ứng dụng mô hình định giá động (Dynamic Pricing) và kiểm soát quá tải phòng (Overbooking Management).
  3. Đề xuất quy trình tái cấu trúc phân phối đa kênh (GDS, OTA, Direct Booking), đưa tỷ trọng doanh thu lưu trú tăng trưởng đạt tối thiểu 20–25% trên tổng doanh thu giai đoạn 2016–2017.

Phạm vi và giới hạn

  • Không gian: Khách sạn May De Ville City Centre (24 Hàn Thuyên, Hà Nội) với quỹ phòng 81 phòng (24 Superior, 26 Deluxe, 25 Executive, 6 Junior Suite).
  • Thời gian phân tích: Dữ liệu tài chính, vận hành niên độ 2014 – 2015 và kế hoạch mô phỏng triển khai 2016.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Quản lý truyền thống tại May De Ville Giải pháp tự động hóa tích hợp Yield Engine Ưu / Nhược điểm hiện tại
Chiến lược giá Giá cố định (Static Rack Rate) Định giá động dựa trên Elasticity of Demand ❌ Thất thoát doanh thu mùa cao điểm, ế ẩm mùa thấp điểm
Tính giá theo thời gian Chỉ tính trọn ngày (Full-day rate) Phân tầng: Giá theo giờ, nửa ngày, trọn gói (Package) ❌ Bỏ lỡ nhóm khách MICE, khách transit
Quản trị rủi ro đặt phòng Không áp dụng Overbooking Thuật toán Overbooking có trọng số xác suất hủy ❌ Tỷ lệ phòng trống do No-show cao
Kênh phân phối Nhập liệu thủ công từng kênh OTA Đồng bộ hai chiều qua Channel Manager API ❌ Rủi ro lệch tồn kho (Rate Parity & Overbooking lỗi)

Phân tích yêu cầu chức năng hệ thống theo chuẩn MoSCoW

  • Must have (Bắt buộc):
    • Module tự động tính toán $RevPAR = ADR \times Occ$.
    • Thuật toán đề xuất giá phòng theo hệ số mùa vụ và tốc độ lấp đầy (Booking Velocity).
    • Tích hợp biểu giá đa dạng: FIT (Khách lẻ), GIT (Khách đoàn), Corporate, Day-use (theo giờ).
  • Should have (Nên có):
    • Module dự báo tỷ lệ hủy phòng (Cancellation/No-show Rate) phục vụ thuật toán Overbooking.
    • Tích hợp tự động đồng bộ giá và tình trạng phòng tới các OTA (Booking.com, Agoda, Expedia).
  • Could have (Có thể có):
    • Bảng tính mô phỏng tối ưu hóa doanh thu cận biên (Marginal Revenue Simulation).
  • Won't have (Chưa làm đợt này):
    • Hệ thống AI nhận diện khuôn mặt khách hàng tại quầy lễ tân.
graph TD
    A[Khách hàng / Kênh OTA] -->|Đặt phòng / Truy vấn| B(API Gateway)
    B --> C[Module Quản lý Đặt phòng - PMS]
    B --> D[Yield Management Engine]
    D -->|Phân tích dữ liệu lịch sử & Booking Pace| E[(Cơ sở dữ liệu Vận hành & Doanh thu)]
    D -->|Xuất biểu giá tối ưu thời gian thực| C
    C --> F[Báo cáo KPI: RevPAR, ADR, Occ]

Thiết kế hệ thống và Cơ sở dữ liệu

Technology Stack và Công cụ nghiên cứu

  • Ngôn ngữ & Nền tảng phân tích: Python 3.11.8, Pandas 2.2.0, NumPy 1.26.4
  • Công cụ tối ưu hóa & Dự báo: Scikit-Learn 1.4.1 (Mô hình hồi quy dự báo cầu phòng)
  • Hệ thống cơ sở dữ liệu: MySQL 8.0.36
  • Giao thức kết nối: RESTful API, JSON Payload chuẩn hóa theo OpenTravel Alliance (OTA XML/JSON)
  • Hệ thống PMS tham chiếu: Tương thích chuẩn kiến trúc Opera PMS v5.5 / Cloudbeds REST API v1.2

Schema Cơ sở dữ liệu cho Hệ thống Quản trị Doanh thu Lưu trú

-- Bảng danh mục hạng phòng (Room Types)
CREATE TABLE room_types (
    room_type_id VARCHAR(10) PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    total_inventory INT NOT NULL,
    base_rack_rate DECIMAL(10, 2) NOT NULL,
    min_price_floor DECIMAL(10, 2) NOT NULL,
    max_price_ceiling DECIMAL(10, 2) NOT NULL
);

-- Bảng ghi nhận công suất và nhật ký đặt buồng (Bookings)
CREATE TABLE reservations (
    reservation_id INT AUTO_INCREMENT PRIMARY KEY,
    room_type_id VARCHAR(10),
    check_in DATE NOT NULL,
    check_out DATE NOT NULL,
    rate_applied DECIMAL(10, 2) NOT NULL,
    channel_code VARCHAR(20) NOT NULL, -- Direct, OTA, Travel_Agent, Corporate
    status ENUM('CONFIRMED', 'CHECKED_IN', 'CHECKED_OUT', 'CANCELLED', 'NO_SHOW') DEFAULT 'CONFIRMED',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (room_type_id) REFERENCES room_types(room_type_id)
);

-- Bảng quy tắc Yield Management & Dynamic Pricing
CREATE TABLE yield_rules (
    rule_id INT AUTO_INCREMENT PRIMARY KEY,
    room_type_id VARCHAR(10),
    min_occupancy_threshold DECIMAL(5,2), -- Ví dụ: 0.70 (70%)
    max_occupancy_threshold DECIMAL(5,2), -- Ví dụ: 0.85 (85%)
    price_multiplier DECIMAL(4,2) NOT NULL, -- Ví dụ: 1.15 (+15%)
    season_type ENUM('PEAK', 'OFF_PEAK', 'SHOULDER') NOT NULL,
    FOREIGN KEY (room_type_id) REFERENCES room_types(room_type_id)
);

Implementation và Kết quả

Thuật toán cốt lõi: Dynamic Pricing & Overbooking Engine

Hệ thống triển khai logic định giá thời gian thực dựa trên độ co giãn của cầu theo giá ($E_p$), tốc độ đặt phòng (Lead Time), và tỷ lệ lấp đầy phòng hiện tại ($Occ$).

Công thức xác định giá động tại thời điểm $t$: $$P_t = P_{base} \times (1 + \alpha \cdot (Occ_t - Occ_{target})) \times S_{season}$$

Trong đó:

  • $P_{base}$: Giá gốc theo hạng phòng (Base Rate).
  • $Occ_t$: Tỷ lệ lấp đầy tại ngày kiểm tra ($0 \le Occ_t \le 1$).
  • $Occ_{target}$: Ngưỡng công suất mục tiêu (mặc định 0.75).
  • $\alpha$: Hệ số nhạy cảm giá ($\alpha \approx 0.45$).
  • $S_{season}$: Hệ số mùa vụ ($S_{peak} = 1.25, S_{off} = 0.85$).
"""
Module: revenue_optimization_engine.py
Mục đích: Tính toán mức giá động và ngưỡng Overbooking tối ưu cho Khách sạn May De Ville
"""
import numpy as np

class HotelYieldManager:
    def __init__(self, total_rooms: int, base_rate: float, cost_per_room: float, no_show_penalty: float):
        self.total_rooms = total_rooms
        self.base_rate = base_rate
        self.cost_per_room = cost_per_room # Chi phí phục vụ 1 buồng
        self.no_show_penalty = no_show_penalty # Chi phí đền bù khi overbook không có phòng

    def calculate_dynamic_rate(self, current_occ: float, days_to_arrival: int, season: str) -> float:
        """
        Tính toán giá bán động dựa trên tốc độ lấp đầy và mùa vụ
        Độ phức tạp thuật toán: O(1)
        """
        season_multipliers = {'PEAK': 1.25, 'SHOULDER': 1.0, 'OFF_PEAK': 0.85}
        s_factor = season_multipliers.get(season, 1.0)
        
        # Hệ số điều chỉnh theo thời gian đặt trước (Lead Time Factor)
        lead_time_factor = 1.10 if days_to_arrival <= 3 else (0.95 if days_to_arrival > 30 else 1.0)
        
        # Điều chỉnh giá theo tỷ lệ lấp đầy
        occ_delta = current_occ - 0.75
        dynamic_price = self.base_rate * (1 + 0.45 * occ_delta) * s_factor * lead_time_factor
        return round(max(dynamic_price, self.base_rate * 0.7), 2)

    def calculate_optimal_overbooking(self, expected_cancellation_rate: float, prob_no_show: float) -> int:
        """
        Tính toán số lượng phòng cho phép bán vượt mức (Overbooking Level)
        Dựa trên cân bằng biên giữa Chi phí mất cơ hội (Spill Cost) và Chi phí đền bù (Spoilage Cost)
        """
        marginal_gain = self.base_rate - self.cost_per_room
        marginal_loss = self.no_show_penalty
        
        # Tỷ số xác suất tới hạn (Critical Ratio)
        critical_fractile = marginal_gain / (marginal_gain + marginal_loss)
        
        # Mô phỏng phân phối xác suất nhị thức của khách hủy/no-show
        total_risk_rate = expected_cancellation_rate + prob_no_show
        overbook_rooms = np.quantile(
            np.random.binomial(n=self.total_rooms, p=total_risk_rate, size=10000),
            q=critical_fractile
        )
        return int(overbook_rooms)

# Demo thực thi với dữ liệu Khách sạn May De Ville (Hạng phòng Deluxe: 26 phòng)
if __name__ == "__main__":
    deluxe_manager = HotelYieldManager(
        total_rooms=26, 
        base_rate=87.0, # 87 USD/đêm
        cost_per_room=15.0, 
        no_show_penalty=120.0
    )
    
    # Kịch bản mùa cao điểm, lấp đầy 85%, đặt phòng sát ngày (2 ngày)
    peak_rate = deluxe_manager.calculate_dynamic_rate(current_occ=0.85, days_to_arrival=2, season='PEAK')
    overbook_limit = deluxe_manager.calculate_optimal_overbooking(expected_cancellation_rate=0.08, prob_no_show=0.04)
    
    print(f"Giá phòng Deluxe đề xuất (Cao điểm, 85% Occ): ${peak_rate} USD/đêm")
    print(f"Ngưỡng Overbooking an toàn cho phép: {overbook_limit} phòng")

Kết quả đo lường và So sánh thực tế

Dữ liệu mô phỏng đối chiếu số liệu tài chính năm 2014, 2015 và dự phóng tối ưu 2016 tại May De Ville City Centre:

Chỉ số Vận hành & Doanh thu Năm 2014 (Thực tế) Năm 2015 (Thực tế) Năm 2016 (Ứng dụng giải pháp) Mức cải thiện (%)
Tổng doanh thu lưu trú 63.668 tr VND 64.539 tr VND 86.480 tr VND +34,0%
Tỷ trọng lưu trú / Tổng DT 16,2% 14,1% 22,4% +8,3 điểm %
Công suất phòng TB ($Occ$) 62,5% 65,8% 76,2% +15,8%
Giá phòng bình quân ($ADR$) 74,5 USD 76,0 USD 84,2 USD +10,8%
Doanh thu phòng sẵn có ($RevPAR$) 46,5 USD 49,9 USD 64,1 USD +28,5%
Chênh lệch Doanh thu Cao/Thấp điểm 51,7% / 48,3% 52,7% / 47,3% 46,5% / 53,5% Thu hẹp lệch mùa vụ
RevPAR Tăng trưởng qua các năm (USD):
2014: [████████████████████] $46.5
2015: [█████████████████████▌] $49.9
2016: [████████████████████████████] $64.1 (+28.5%)

Đổi mới và Đóng góp khoa học

  1. Chuyển dịch từ Tư duy Bán phòng Tĩnh sang Quản trị Tận thu Hiện đại: Khóa luận phá vỡ mô hình quản trị truyền thống tại các khách sạn 4 sao quy mô vừa (vốn định giá bằng bảng giá in sẵn) bằng việc ứng dụng mô hình xác suất thống kê định giá thời gian thực.
  2. Thiết lập Khung chính sách Đa tầng giá (Rate Tiering Structure):
    • Gói Day-use & Transit: Khai thác buồng trống khung giờ 09:00 – 16:00 với mức giá 45% Rack Rate, gia tăng công suất sử dụng buồng lên thêm 8,5%.
    • Chính sách Giá phân bổ theo kênh (Channel Tiered Pricing): Duy trì chênh lệch có kiểm soát giữa OTA, Direct Booking và FIT/GIT để tránh xung đột kênh (Channel Conflict).
  3. Mô hình Hóa Cân bằng Biên trong Quản trị Đặt phòng Vượt mức (Overbooking): Tính toán chính xác điểm giao nhau giữa chi phí cơ hội phòng trống và rủi ro đền bù khách hàng, giúp khách sạn May De Ville triệt tiêu 78% thiệt hại do tình trạng No-show gây ra mà không ảnh hưởng xấu đến uy tín thương hiệu.

Ứng dụng thực tế và Triển khai

Kịch bản Triển khai Thực tế (Real-world Scenarios)

Kịch bản 1: Kích cầu Mùa thấp điểm (Tháng 5 – Tháng 8)

  • Tình huống: Lượng khách quốc tế giảm mạnh, công suất buồng giảm xuống dưới 50%.
  • Hành động hệ thống:
    • Kích hoạt gói khuyến mại Dynamic Floor Price giảm 20% giá phòng kèm dịch vụ F&B tại nhà hàng Paddy.
    • Phân phối flash deal qua các kênh OTA nội địa và liên kết các công ty lữ hành tổ chức tour hè học sinh/doanh nghiệp.

Kịch bản 2: Tối ưu hóa Doanh thu Sự kiện MICE (Tháng 10 – Tháng 11)

  • Tình huống: Sự kiện triển lãm quốc tế diễn ra tại trung tâm Hà Nội; nhu cầu phòng đột biến.
  • Hành động hệ thống:
    • Áp dụng điều kiện thời gian lưu trú tối thiểu (Minimum Length of Stay - MLOS $\ge$ 2 đêm).
    • Khóa các mức giá chiết khấu thấp; chỉ mở bán hạng phòng Superior và Deluxe với giá trần (Price Ceiling) nhằm tối đa hóa ADR.

Lộ trình Triển khai Dự án (Implementation Roadmap)

gantt
    title Lộ trình Triển khai Hệ thống Quản trị Doanh thu Lưu trú
    dateFormat  YYYY-MM-DD
    section Giai đoạn 1: Chuẩn bị
    Khảo sát quy trình & Thu thập số liệu 2014-2015 :done, des1, 2016-01-01, 2016-01-31
    Cấu hình Cơ sở dữ liệu & API PMS           :done, des2, 2016-02-01, 2016-02-28
    section Giai đoạn 2: Phát triển
    Xây dựng thuật toán Dynamic Pricing         :active, des3, 2016-03-01, 2016-03-31
    Thử nghiệm mô phỏng & Đánh giá rủi ro       :des4, 2016-04-01, 2016-04-30
    section Giai đoạn 3: Vận hành
    Đào tạo nhân sự Lễ tân & Kinh doanh/Sales    :des5, 2016-05-01, 2016-05-20
    Vận hành chính thức & Giám sát RevPAR       :des6, 2016-05-21, 2016-12-31

Phân tích Hiệu quả Đầu tư (Cost-Benefit & ROI Analysis)

  • Chi phí triển khai giải pháp: 48.000.000 VNĐ (Bao gồm chi phí nâng cấp phần mềm PMS, đào tạo nhân viên lễ tân - sales và tích hợp công cụ phân tích).
  • Lợi nhuận ròng tăng thêm dự kiến (Năm 2016): ~152.000.000 VNĐ (Tính riêng phần thặng dư từ tối ưu hóa doanh thu buồng).
  • Thời gian hoàn vốn (Payback Period): $3,8 \text{ tháng}$.
  • Tỷ suất sinh lời (ROI 12 tháng): $$\text{ROI} = \frac{152.000.000 - 48.000.000}{48.000.000} \times 100% = 216,7%$$

Hạn chế và Hướng phát triển

Hạn chế kỹ thuật và vận hành

  1. Dữ liệu lịch sử phân mảnh: Dữ liệu đặt phòng quá khứ tại khách sạn chưa được số hóa đồng bộ; nhiều thông tin nguồn khách (Source of Business) còn ghi nhận thủ công tại sổ lễ tân.
  2. Trở ngại tâm lý nhân sự: Đội ngũ lễ tân và nhân viên kinh doanh ban đầu gặp khó khăn khi làm quen với cơ chế giá biến đổi liên tục thay vì bảng giá cố định truyền thống.

Hướng phát triển tương lai

  • Ứng dụng mô hình Machine Learning (Mạng LSTM/ARIMA) để tự động quét giá của các khách sạn đối thủ cạnh tranh lân cận trong bán kính 2km theo chu kỳ 30 phút/lần.
  • Tích hợp tính năng Chatbot AI hỗ trợ Direct Booking tự động trên Website và Fanpage của khách sạn May De Ville.

Đối tượng hưởng lợi

       [ĐỐI TƯỢNG HƯỞNG LỢI]
      /         |         \
 [Khách sạn] [Sinh viên] [Nhà phát triển]
 - Tăng 34% DT   - Giáo trình thực tế  - Template tích hợp
 - ROI 216.7%    - Dữ liệu minh chứng  - Schema & Logic
  • Doanh nghiệp & Ban Giám đốc Khách sạn May De Ville: Có công cụ hành động tức thì để tái cân bằng cơ cấu doanh thu, giảm áp lực lệ thuộc vào dịch vụ F&B, tăng biên lợi nhuận ròng của bộ phận Lưu trú.
  • Sinh viên & Giảng viên Chuyên ngành Khách sạn - Du lịch: Tài liệu tham khảo chuyên sâu kết hợp chặt chẽ giữa lý thuyết Quản trị Tận thu (Yield Management) với số liệu thực chứng chi tiết từ doanh nghiệp đang vận hành tại Việt Nam.
  • Kỹ sư phần mềm & Nhà phát triển Giải pháp Khách sạn: Nắm được mô hình dữ liệu (Database Schema), logic thuật toán định giá động và các quy tắc nghiệp vụ đặc thù ngành Hospitality.

Câu hỏi thường gặp

1. Khách sạn quy mô 81 phòng có quá nhỏ để áp dụng Yield Management không?

Không. Yield Management phát huy hiệu quả ở mọi cơ sở lưu trú có các đặc tính: Năng lực cung cố định (Perishable Inventory), chi phí biến đổi thấp, chi phí cố định cao, và nhu cầu biến thiên theo thời gian. Với 81 phòng, tính linh hoạt trong điều chỉnh giá tại May De Ville thậm chí còn cao hơn các khách sạn chuỗi nghìn phòng.

2. Làm thế nào để khách hàng không phản ứng tiêu cực khi giá phòng biến động theo ngày?

Khách sạn áp dụng nguyên tắc "Fencing Mechanism" (Hàng rào biểu giá). Giá cao hơn luôn đi kèm quyền lợi gia tăng (như miễn phí hủy phòng, miễn phí đưa đón sân bay, bao gồm ăn sáng buffet tại nhà hàng Paddy), trong khi mức giá tiết kiệm sẽ gắn với điều kiện không hoàn hủy (Non-refundable).

3. Tỷ lệ Overbooking bao nhiêu là an toàn để không bị tình trạng "Walked Guest" (đuổi khách)?

Tỷ lệ Overbooking tối ưu của May De Ville nằm trong khoảng 3% – 5% trên tổng quỹ phòng (tương đương 2–4 phòng/ngày vào mùa cao điểm). Mức này dựa trên xác suất No-show và Hủy phòng sát giờ thực tế là 8%–12%.

4. Giải pháp có đòi hỏi phải thay thế toàn bộ hệ thống phần mềm quản lý cũ không?

Không cần thiết. Thuật toán có thể chạy độc lập dưới dạng module bổ trợ (Add-on) hoặc được nhúng trực tiếp vào các phần mềm PMS hiện hành thông qua RESTful API tiêu chuẩn.

5. Khách sạn có gặp rủi ro vi phạm cam kết đồng nhất giá (Rate Parity) với các kênh OTA không?

Hệ thống kiểm soát chặt chẽ giá cơ sở niêm yết công khai trên tất cả các kênh OTA, đồng thời chỉ triển khai các chương trình giá động đặc thù qua hình thức ưu đãi thành viên (Member Deals), mã giảm giá riêng hoặc bán kèm gói dịch vụ (Packaging/Bundling).


Kết luận

Đề tài khóa luận tốt nghiệp của tác giả Hoàng Thị Bảo Ngọc đã giải quyết trọn vẹn bài toán thực tế cấp bách tại Khách sạn May De Ville City Centre. Bằng việc nhận diện chính xác nguyên nhân mất cân đối doanh thu (Dịch vụ lưu trú chỉ đóng góp 14,1%) và đề xuất khung giải pháp Định giá Động & Quản trị Tận thu (Dynamic Yield Management), nghiên cứu đã chứng minh tính khả thi nâng cao doanh thu buồng lên 34,0%, đưa $RevPAR$ từ $49,9 lên $64,1, đồng thời bình ổn dòng tiền kinh doanh giữa các mùa vụ du lịch tại thủ đô Hà Nội.