← All projects

PROJECT 104 / 105 · Hospitality

Hotel cancellation decision system.

Can a revenue team rank cancellation risk using conservative booking information, and how should it judge a proposed follow-up policy?

Large end-to-end case studyHotel bookingsExecuted notebook

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.

Hotel cancellation decision system — chart from the computed study output
Computed study output. Full values and units are available in the results download.
Computed results · 2 of 2 rows. Values rounded for display; source units and raw column names are retained in the download.
modeltest bookingsroc aucaverage precisionbrierlog loss
Training prevalence19,9860.50.33180.23050.6539
Logistic regression19,9860.66930.44550.2110.6068
Download the complete result table ↓

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.

  1. Read H1 and H2 CSVs from the original article supplement; strip padding and validate targets.
  2. Derive booking date as arrival minus lead time; require training labels known at the cutoff.
  3. Compare candidate probability models using validation log loss, then freeze the selected model.
  4. Evaluate January–April 2017 bookings and retain a validation-derived review threshold.
  5. 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.

54,296Training observations
19,986Test observations

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

Download evaluation record ↓

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.