Field Notes · Data & Analytics

Predicting Cancellations Before They Happen

A cancellation score is only worth building if someone does something different on Tuesday because of it.

  • September 29, 2026
  • 8 min read
  • Nova Adventure Field Team
A hand places a stone to stop a chain of falling dominoes across a mesa.
Field noteMost cancellations announce themselves a few dominoes early.

Casita 7 was booked 94 days out, through an online travel agency, on the flexible rate. Two adults, no special requests. The guest never opened the pre-arrival email. Nineteen days before arrival, the lodge dropped its rate for those dates by $30 a night in a shoulder-season promotion. Six days before arrival, the booking was cancelled. The casita stayed empty for both nights.

None of those signals means much on its own. Plenty of flexible OTA bookings made three months out turn up happily. Together, though, they form a pattern, and finding patterns is what models do well. The trouble is that a model which spots the pattern six days out is useless. By then there’s nothing left to do.

This walk-through follows the five decisions that determine whether a cancellation model earns its keep. It uses a hypothetical collection of 24 desert casitas, modeled on the kind of operation we work with.

Decision 1: what exactly are you predicting?

“Will this booking cancel?” sounds like one question. It’s really several.

Which outcome. Cancellations, no-shows and date changes have different causes and call for different responses. Label them separately, even if you only model cancellations at first.

When. A score calculated once, at booking, ages badly. Score again at fixed checkpoints, say 60, 30, 21, 14 and 7 days before arrival. Each checkpoint brings new information, such as whether the guest has opened their messages or whether your price has moved. Each one also has its own set of actions that are still possible.

Conditional on what. At each checkpoint, the label is “cancels between now and arrival, given that the booking is still active now.” Mixing checkpoints into one training set without that condition teaches the model things that aren’t true.

Decision 2: features that carry signal

In lodge and tour data, a short list of features does most of the work:

Feature Why it carries signal Usual source
Lead time at booking Long-lead bookings are often tentative Reservation system
Rate plan and deposit Free cancellation makes “just in case” bookings cheap Reservation system
Booking channel Channels differ in how easily guests hold several options Channel manager
Party and stay pattern Solo weekday stays behave differently from family weekends Reservation system
Modifications so far An earlier date change means plans are still moving Reservation system
Pre-arrival engagement Opening the welcome email or asking about dinner signals commitment Messaging platform
Payment events A failed card authorization is a strong, early flag Payment provider
Price change since booking A lower current price invites cancel-and-rebook Rate history
Destination signals Large events, smoke forecasts, road closures Calendars and feeds
Repeat guest Past stays strongly predict arrival CRM

Two warnings apply.

Leakage. Fields like “refund issued,” “cancellation email sent” or a “last modified” timestamp that the cancellation itself updates exist because the booking cancelled. They make a model look brilliant in testing and useless in production. Use only what was known at the checkpoint.

Proxies. Leave out characteristics that stand in for who a guest is, such as nationality or home ZIP code. They raise fairness problems, and once behavior is in the model they rarely add much.

Those features live in four or five systems that seldom share a clean booking ID. Joining them reliably is usually the largest piece of work in the project, and it’s where our travel data engineering work tends to start.

Decision 3: a model that’s boring on purpose

Regularized logistic regression or gradient-boosted trees will both do the job. A few thousand bookings across two seasons is enough for either. The choice of model matters far less than two other habits:

  • Validate by time, not at random. Train on earlier seasons and test on the most recent one. Random splits let the model peek at the same season’s patterns and overstate how good it is.
  • Retrain on a schedule and after every policy change. A new flexible rate plan or a change in channel mix shifts behavior overnight. A model trained before the change is describing a different business.

Decision 4: calibrate before you celebrate

Ranking metrics tell you whether risky bookings score higher than safe ones. They don’t tell you whether a score of 0.30 means 30%, and decisions run on probabilities. Here’s what a calibration check looks like for one test season:

Score band Bookings Predicted cancellations Actual cancellations
Under 0.10 412 21 24
0.10–0.25 268 46 41
0.25–0.50 131 47 52
0.50 and above 39 25 23
All 850 139 140

That’s close enough to plan on. If predicted and actual drift apart by more than about 20% in any band for two months running, recalibrate before anyone acts on the scores.

Decision 5: turn scores into actions

If you’re willing to sell beyond capacity

Take a Thursday night in late September. All 24 casitas are booked, and the cancellation probabilities for that night add up to 3.1. The average rate is $240. Walking a guest, meaning moving them to a comparable property nearby, covering the difference and adding a goodwill credit, costs an estimated $400.

The k-th extra booking is worth the nightly rate times the probability of at least k cancellations, minus the walk cost times the probability of fewer than k. A Poisson approximation with a mean of 3.1 gives:

Extra booking Chance a casita frees up Expected revenue Expected walk cost Net
1st 95.5% $229 $18 +$211
2nd 81.5% $196 $74 +$122
3rd 59.9% $144 $161 −$17

So stop at two. The calculation assumes the extra bookings are non-refundable and that late cancellations would otherwise go unsold. The Poisson approximation slightly overstates the chance of zero cancellations, which errs on the cautious side. If your honest walk cost is closer to $1,000, the second extra booking only just breaks even, and one is the right number.

If you won’t overbook

Most small lodges won’t, and they don’t need to. The score can drive a ladder of gentler actions, here at the 21-day checkpoint:

Score at 21 days Action Cost Owner
Under 0.10 Standard pre-arrival message None Automated
0.10–0.25 Pre-arrival message with a one-tap “change dates” link None Automated
0.25–0.50 Personal note from reservations, offering a move to a shoulder week About 5 minutes Reservations
0.50 and above Personal note or call; open the date to the waitlist and shoulder packages About 10 minutes plus a decision Revenue lead

That last row connects cancellation risk to shoulder-season demand shaping. A date that’s likely to open up is a date you can start marketing quietly.

If you run departures, not rooms

For tour operators, the costly question usually isn’t an empty seat. It’s whether a departure still runs. Take a small-group walk that needs four travelers to go ahead. Five solo travelers are booked, with cancellation scores of 0.10, 0.15, 0.20, 0.35 and 0.40. They add up to only 1.2 expected cancellations, which sounds safe. But the departure fails if just two people cancel, and the exact probability of that is 35%.

A one-in-three chance of falling below the minimum, seen 21 days out, is something you can act on. You can push the date harder through your channels, offer the seats to a waitlist, or set a consolidation date and offer travelers the next day’s departure now, while they can still adjust. Merging departures at 21 days costs a polite email. Cancelling at 3 days costs refunds, a guide’s day and probably a review.

The real goal: earlier cancellations, not fewer

This is the reframe that matters most. For a shoulder-season lodge, the chance of reselling a cancelled night falls steeply as arrival approaches. Here are illustrative figures: about 70% with 30 or more days’ notice, 50% at 15 to 29 days, 30% at 7 to 14 days, and 12% inside a week.

Move one two-night cancellation from five days’ notice to twenty and the expected resale value rises from 12% to 50% of $480, a gain of about $182. You haven’t saved the booking. You’ve saved the nights.

So the reconfirmation message for a high-score booking shouldn’t make the guest feel guilty. It should make changing plans easy: “Plans shifted? Move or cancel your dates in one tap.” It sounds backwards, and it works. In our pilot with a small collection of desert lodges, a warm reconfirmation went out 21 days ahead to medium- and high-risk bookings, and released rooms went straight to the waitlist. Seven in ten late cancellations were flagged at least 14 days before they happened, and the share of late-cancelled room-nights resold before arrival rose from 24% to 57%. The goal was never fewer cancellations. It was more nights resold. The desert lodge collection case study covers that pattern alongside the shoulder-season packages built around it.

Keeping it honest in production

A cancellation model is a living system, not a one-time project:

  • Check calibration monthly, and again after any change to pricing, policy or channel mix.
  • Show staff the reasons behind a score, such as the top three contributing factors, so a reservations agent can tell “long lead, flexible rate” from “card failed twice.”
  • Use scores to shape preparation, not treatment. No individual price changes, no surprise deposits, no colder tone.

In Nova’s Signals module, cancellation risk is rescored at each checkpoint and delivered as the action ladder above rather than as a raw number. Watching for drift, recalibrating and retraining are part of what managed AI operations covers. For most hotels and lodges, that upkeep matters more than the first version of the model.

Start with a spreadsheet

Before building anything, pull two seasons of bookings and calculate the cancellation rate in twelve cells: three lead-time bands (0–14, 15–60 and over 60 days) by two rate types (flexible and non-refundable) by two channels (direct and OTA). Then record how many days’ notice each cancellation gave.

If the riskiest cell cancels at less than twice the rate of the safest, a model won’t add much yet. Work on making early cancellation easy. If the gap is four times or more, the signal is worth modeling, and the notice-days column is your baseline for proving it worked.

#cancellation prediction#predictive analytics#revenue management#hospitality data#machine learning

Questions

Questions readers ask

How many bookings do we need to build a cancellation model?

A few thousand bookings across at least two seasons is usually enough for a useful, calibrated model, as long as each cancellation is recorded with its date. With fewer than that, a simple table of cancellation rates by lead time, rate plan and channel often captures most of the value.

Should guests ever know they have a high cancellation score?

No. A score is an internal planning tool. It should change how your team prepares, not how a guest is treated or priced. It should never rely on characteristics such as nationality or home ZIP code as stand-ins for who a guest is.

Keep reading

Related field notes

Turn this note into a plan for your operation

Bring the problem this article describes to a 45-minute discovery call. We will tell you honestly whether AI is the right tool for it yet.