THE RESULT
What the data shows
Logistic regression wins on validation log loss. On 19,986 future booking snapshots, test AUC is 0.669; the fixed review threshold flags 13.0% of bookings and captures 18.0% of recorded cancellations.
The conservative feature set produces modest discrimination. Final-snapshot predictors and the arrival-bounded extract prevent a claim of deployment-ready booking-time performance.

| model | test bookings | roc auc | average precision | brier | log loss |
|---|---|---|---|---|---|
| Training prevalence | 19,986 | 0.5 | 0.3318 | 0.2305 | 0.6539 |
| Logistic regression | 19,986 | 0.6693 | 0.4455 | 0.211 | 0.6068 |
A complete analytical workflow
119,390 source observations, a reproducible SQL data mart, chronological experiments, an executed notebook, and an interactive dashboard.
Explore the results and assumptions ↗Data contract
One row is a booking snapshot. Two properties are labeled Resort and City. Training bookings and outcomes must both precede July 2016; validation bookings run July–September 2016 with outcomes known before January 2017. Test bookings run January–April 2017. The arrival-bounded extract does not represent all bookings created in those periods. Status date is used only to establish historical label maturity, never as a model input. Channel labels are observational and do not imply causal effects.
Model decisions
Target: published cancellation flag. Conservative inputs: lead time, arrival month and weekday, planned weekday/weekend nights, party counts, hotel, meal, market segment, distribution channel and reserved room. Excluded: final reservation status/date, assigned room, booking changes, deposit, ADR, nationality and evolving requests. Models: training prevalence, regularized logistic regression, two fixed boosted-tree configurations. Select by validation log loss; do not tune on test performance. The review threshold is the 90th percentile of validation scores, so actual test workload can differ from 10%. Scores support a research prioritization exercise; feature availability is not proven for live booking time.
Read the operating runbook ↓THE METHOD
From source to answer
Original multi-hotel CSV ingestion, derived booking dates, label-maturity cutoffs, logistic and boosted-tree candidates, future booking cohorts, calibration checks, a fixed validation-selected review threshold, and an explicitly hypothetical intervention-cost calculator.
- Read H1 and H2 CSVs from the original article supplement; strip padding and validate targets.
- Derive booking date as arrival minus lead time; require training labels known at the cutoff.
- Compare candidate probability models using validation log loss, then freeze the selected model.
- Evaluate January–April 2017 bookings and retain a validation-derived review threshold.
- Aggregate additive outcome and probability counts for filters and scenario calculations.
The Python source exposes this study’s transformations. The complete project download includes shared preparation and evaluation routines.
EVALUATION
How the result was checked
Train: booking before July 2016 and outcome known before July 2016. Validate: July–September 2016 bookings with outcomes known before January 2017. Test: January–April 2017 bookings, all recorded outcomes available in the published August 2017 extract.
Logistic regression selected by validation log loss. Fixed validation 90th-percentile score threshold. No test tuning.
Target and input features
Target: Recorded cancellation indicator
Inputs: LeadTime, ArrivalMonth, ArrivalWeekday, StaysInWeekendNights, StaysInWeekNights, Adults, Children, Babies, Hotel, Meal, MarketSegment, DistributionChannel, ReservedRoomType
THE NEXT DECISION
What follows from the finding
Use the dashboard to compare risk and review workload by hotel and channel. Before operational use, obtain versioned booking events and run a randomized follow-up trial to estimate actual cancellation prevention and contribution margin.
Where the conclusion stops
The source is a final snapshot, not an event log. Even conservative fields may have changed after booking. Only two hotels and arrivals through August 2017 are represented, censoring later-arriving bookings. Customer identity is absent, so guest-separated evaluation is impossible. Identical records may represent groups and are retained. Scenario effects and euro amounts are assumptions, not measured savings.
Related studies may reuse observations or holdouts. These are historical analyses; associations and backtests do not demonstrate commercial impact. Further model tuning needs new, untouched evaluation data.