Hotel Booking Cancellation Risk Scoring
Hospitality risk scoring - XGBoost, thresholding, SHAP, Streamlit
Public portfolio project with live Hugging Face demo, GitHub repository, and README-reported test metrics.
Business problem
Hotel operators need to identify bookings with high cancellation risk early enough to manage overbooking, deposits, reminders, and revenue-protection actions.
Dataset and context
INN Hotels Group dataset from Kaggle under CC0 terms. The README reports 36,275 raw rows and 19 columns, cleaned to 26,000 rows and 18 columns for modeling, with booking_status as the target.
Methodology
- -Cleaned booking records and prepared features for cancellation classification.
- -Used train, validation, and test splits to compare models and tune threshold behavior.
- -Selected XGBoost for the final scoring workflow.
- -Chose a cost-aware threshold of 0.31 rather than defaulting to 0.50.
- -Used SHAP and top-risk capture analysis to make the model actionable for hotel operations.
Technical approach
The project frames cancellation scoring as decision support. The model outputs risk, threshold status, and explanation signals so hotel teams can choose operational actions based on capacity, date, channel, and cancellation-cost assumptions.
Key insights
- -Final test ROC-AUC is 0.9172 and PR-AUC is 0.8385.
- -At threshold 0.31, recall is 0.9167.
- -The top 30% of bookings by risk captures 77% of cancellations.
- -The README recommends decision support rather than automated policy enforcement.
Business recommendations
- -Use the score to prioritize manual review, reminders, deposits, or controlled overbooking strategies.
- -Tune threshold by property, season, cancellation cost, and guest-experience risk.
- -Monitor false positives carefully so loyal or high-value guests are not treated poorly.
- -Pair the model with operational policy, not a fully automated cancellation decision.
Results and impact
Metrics are from the public project README. Revenue-protection value depends on real cancellation cost, occupancy, seasonality, and intervention policy.
What I would improve in production
- -Add time-based validation around booking date and arrival date.
- -Monitor threshold performance by market segment, channel, and lead-time band.
- -Run controlled tests for reminders, deposits, or overbooking actions.
- -Add fairness and guest-experience review before using scores in customer-facing workflows.
Recruiter takeaway
This project is strong for hiring managers because it combines high model performance with threshold strategy, SHAP explainability, and a realistic business-risk framing.