Hotel Bookings Data Analysis

Posted on Jun 17, 2022


When running a successful and demanding hospitality business, most hotel owners like a hotel that is running at full capacity and bringing in sizeable revenue. Most of the time hotel booking cancellations can be hurtful to business owners; although sometimes there are genuine reasons for guests to do so. These last-minute cancellations can result in lost revenue unless some measures are undertaken to mitigate the loss. The purpose of this project is to analyze Hotel Bookings data, investigate cancellations, and their underlying patterns; and suggest measures that can be implemented to reduce cancellations and secure revenue.

As per an article written on, the first thing that hotel owners can do is to take a closer look at their property’s specific cancellation patterns and understand guest behavior patterns. Backed by this research Benjamin Verot suggests in his article 8 Tips to Reduce Last Minute Hotel Cancellations and No Shows some steps that owners can execute while setting up a robust cancellation policy.

  • Requiring credit/debit card deposits
  • Using length of stay restrictions
  • Offering low rates/discounts for direct bookings
  • Adopting a cautious overbooking strategy

Dataset Introduction

For this project, I used R and Shiny to create an app that will assist in a cancellation pattern study with the intention of aiding hotel owners in reducing cancellations. The data used for this project originally came from a scientific study and an article based on the findings - Hotel booking demand datasets; by Nuno Antonio, Ana Almeida, and Luis Nunes for Data in Brief, Volume 22, February 2019. The data was hosted on Kaggle - Hotel booking demand by Jesse Mostipak.

This dataset includes information about two different types of hotels (City and Resort) and whether the bookings were canceled. Each observation is a hotel booking and includes information such as arrival date, nights stated, number of adults/children staying, etc. For this project the topics that I studied are listed below:

  • Deposits paid by the guests
  • How and platform from which the bookings were made
  • Guests that are cancelling most often
  • Average daily rates
  • Cancellation trends during a particular year

Cancelled/Non-Cancelled Bookings:

For this project, the first thing that I examined was the cancelled and non-cancelled bookings for the City Hotel and the Resort Hotel.

After analyzing the data, we can see that the cancelled vs non-cancelled bookings ratios are different for the different types of hotels. For the City Hotel, 58.28% of the bookings were non-cancelled vs 41.72% of the bookings that were cancelled, forming a majority.  In contrast, for the Resort Hotel, 72.24% of the bookings were non-cancelled whereas 27.76% of the bookings were cancelled. Although, most of the bookings were not cancelled for both hotels; the point to note here is the difference in those numbers for both hotel types.

Booking Deposit Type

Next, I looked at total cancelled and non-cancelled bookings (both hotel types) and the numbers were split by different deposit types. In this dataset, we the bookings have three different deposit types which are:

  • No Deposit: no deposit was made
  • Refundable: a deposit was made in the value of the total stay cost
  • Non-Refundable: a deposit was made with a value under the total cost of stay

When we look at the bookings that were not canceled per deposit type (majority of the total bookings) we see those bookings with no deposit taken, form the majority. There is a massive difference between no deposit bookings and the other types. Similarly, if we look at all the canceled bookings per deposit type, we can see that the bookings with no deposit collected for the majority, although the difference is not as pronounced in this case.

Hotel Distribution Type

For the next evaluation, I looked at canceled bookings and the average daily rate per hotel distribution type. The hotel distribution channel is defined as the platform on which the hotel booking is made. This dataset provides us with four different types of distribution types.

  • TA/TO: Booking made via third-party platforms such as Orbitz, Expedia, etc.
  • Direct booking: Booking is directly made through the hotel.
  • Corporate: Booking made by a large company or group.
  • GDS: no definition for this class is provided; bookings made through this channel are minimal.

First, when we look at the total canceled bookings, we can see that most of these bookings are coming from third-party booking platforms (TA/TO) for both hotel types.

For the canceled bookings there is also some difference between the average daily rates (ADR) for two different types of hotels. The rates were generally a bit higher for the direct booking channel than the third-party booking channel. For this evaluation, the bookings that had ADR above 400 were excluded.

The last thing in this evaluation section that I looked at was the distribution of rates for cancelled and non-cancelled bookings per distribution type only for just the City hotel. The reason City hotel was chosen was because its total bookings were higher than the Resort hotel. Generally, the distribution of the ADRs seems consistent regardless of the cancellation status, distribution type, or hotel type.

Repeat/Non-Repeat Guests

In this project I also evaluated total, and weekday/weeknight cancelled bookings between repeat and non-repeat guests for both hotel types. In this data, repeat guests are binary encoded as 1 and the non-repeat guests are encoded as 0.

The tree maps shown above show that, although most of the bookings for the city and the resort hotel are coming from the non-repeat guests the margin of repeat bookings vs non-repeat bookings is evident to be much narrower for the cancelled bookings.

I also researched in all of the canceled bookings; the bookings made for weekday/weekend nights. What we can ascertain from the graphs above is that for both repeat and non-repeat guests (and for both hotel types) weekday night bookings are higher than the weekend night bookings.

Monthly Cancelations and Average Daily Rate (ADR)

In the last evaluation conducted on this data, I narrowed down the data for one year. For all the 12 months of that year, I looked at average cancelations and ADR. I did this compilation for both the City and the Resort Hotel. In this blog, we will look at the analysis results for the City Hotel. The graphs show the cancellations and ADR for just the direct bookings versus bookings of all other distribution types.

For the City Hotel, if we look at the data for all distribution types other than Direct bookings; we will see that average cancelations and daily rates are higher during certain months than in others. It also looks like some of the months that have high average cancellations also have high ADRs. It is much harder to come up with a similar conclusion if we look at the data below which shows the data analysis results for the direct city hotel bookings only.


  • The cancelled vs. non-cancelled bookings ratio for City Hotel was different than Resort Hotel. It can be established that the type of hotel can play a factor while determining reasons for cancellations.
  • The majority of bookings for both hotels had no deposit collected (rather than partial or full). The same majority is demonstrated in cancelled bookings for both hotels as well.
    • If we just look at non-cancelled bookings data, we can conclude that if people were to cancel more, the majority of the cancellations would be the ones with no deposit collected.
    • It is possible that guests tend to cancel less after paying some deposit. Some sort of deposit collection (partial or full or credit card detail requirement) at booking may reduce overall cancellations.
  • Third-party cancellations are higher than direct hotel bookings, although there is no significant difference in average daily rates.
    • More direct hotel bookings (with offers/discounts) could lead to lower cancellations. The data does not point to an ideal daily rate to use.
  • Non-repeat guests make most of the cancelled and non-cancelled bookings (especially weekday bookings).
    • Conversion of non-repeat to repeat loyal customer base (staying during the week) could lead to lower cancellations.
  • For non-direct bookings (majority of cancellations - City Hotel), months with higher cancellations generally had a higher average daily rate. The same cannot be proved conclusively for direct bookings.

Future work

As for future work, something that I would really like to work on this the app itself. With more data, I would love to make the app more dynamic and useful. I would like the app to show a rigorous analysis of all their bookings and make recommendations. Furthermore, I would like to research more into the effect of length of stays, advance purchase requirement, and overbooking on cancellations and incorporate this information in the app as well.


  • for Partners. 2021. How to better understand, prevent, and reduce cancellations. [online] Available at: <> [Accessed 16 June 2022].
  • Verot, B., 2021. 8 Tips to Reduce Last Minute Hotel Cancellations and No Shows. [online] Available at: <> [Accessed 16 June 2022].
  • Antonio, N., de Almeida, A. and Nunes, L., 2019. Hotel booking demand datasets. Data in Brief, [online] 22, pp.41-49. Available at: <> [Accessed 15 June 2022].
  • Mostipak, J., 2020. Hotel booking demand. [online] Available at: <> [Accessed 16 June 2022].

About Author

Suhita Acharya

NYCDSA Bootcamp graduate with background in Environmental Sciences, previously worked professionally as a QA Chemist at Environmental Standards, Inc.
View all posts by Suhita Acharya >

Related Articles

Leave a Comment

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI