── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.1 ✔ readr 2.2.0
✔ forcats 1.0.1 ✔ stringr 1.6.0
✔ ggplot2 4.0.3 ✔ tibble 3.3.1
✔ lubridate 1.9.5 ✔ tidyr 1.3.2
✔ purrr 1.2.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(scales)
Attaching package: 'scales'
The following object is masked from 'package:purrr':
discard
The following object is masked from 'package:readr':
col_factor
options(digits =4, scipen =999)
Expedia Hotel Booking Analysis: Does Price Competitiveness Affect Booking Likelihood Across Different Hotel Star Ratings?
1. Research Question
Does price competitiveness affect hotel booking likelihood, and does this effect differ across hotel star ratings?
1.1 Hypotheses
Hypothesis
Statement
H1
Hotels with higher price competitiveness (cheaper than same-star average) have higher booking likelihood
H2
The effect of price competitiveness on booking likelihood differs across hotel star ratings
1.2 Definition of Price Competitiveness
In this analysis, price competitiveness is defined as:
Price Ratio=Current Price/Average Price of Same-Star Hotels
Price Ratio < 1: Cheaper than same-star average (competitive)
Price Ratio = 1: At same-star average price
Price Ratio > 1: More expensive than same-star average (uncompetitive)
This definition is more meaningful than comparing to a hotel’s own historical price because customers typically compare hotels within the same category.
2. Data Cleaning
# Load datadf_raw <-read_csv("data/expedia.csv")
Rows: 158269 Columns: 54
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (31): visitor_hist_starrating, visitor_hist_adr_usd, prop_review_score,...
dbl (22): srch_id, site_id, visitor_location_country_id, prop_country_id, p...
date (1): date_time
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_clean %>%group_by(star_category) %>%summarise(Count =n(),Booking_Rate =paste0(round(mean(booking) *100, 1), "%"),Avg_Price_Ratio =round(mean(price_ratio, na.rm =TRUE), 2) ) %>% knitr::kable(caption ="Table 1: Booking Rate by Hotel Star Rating")
Table 1: Booking Rate by Hotel Star Rating
star_category
Count
Booking_Rate
Avg_Price_Ratio
Budget (1-2★)
41800
2.5%
0.91
Luxury (4-5★)
40116
3.2%
0.98
Mid (3★)
68969
3%
0.97
Key observation: Luxury hotels have the highest booking rate (3.2%), while Budget hotels have the lowest (2.5%). All star categories have average price ratios below 1, indicating that Expedia generally displays competitive prices.
Key observation: Very Competitive hotels have a booking rate of 3.9%, which is 2.6 times higher than Very Uncompetitive hotels (1.5%). This strongly supports H1.
3.3 Cross-Tabulation: Star Rating × Price Competitiveness
Figure 3 clearly shows that Luxury hotels have the highest price sensitivity, followed by Mid hotels, with Budget hotels being the least price-sensitive.
5. Conclusion
5.1 Summary of Findings
Finding
Evidence
Supports
More competitive pricing increases booking likelihood
Table 2, Figure 1, Figure 2
H1: Yes
Price sensitivity differs across star ratings
Table 4, Figure 3
H2: Yes
Luxury hotels are most price-sensitive
Table 4, Figure 3
Surprising finding
Budget hotels are least price-sensitive
Table 4, Figure 3
Surprising finding
5.2 Answer to Research Questions
Q1: Does price competitiveness affect hotel booking likelihood?
Yes. Hotels with more competitive pricing (lower price ratio) have significantly higher booking probabilities. Very Competitive hotels have a 3.9% booking rate, compared to only 1.5% for Very Uncompetitive hotels — a 2.6x difference.
Q2: Does this effect differ across hotel star ratings?
Yes. The price sensitivity ranking is:
Rank
Star Category
Price Sensitivity
1
Luxury (4-5★)
+2.6 pp
2
Mid (3★)
+1.9 pp
3
Budget (1-2★)
+0.8 pp
5.3 Possible Explanation for Counter-Intuitive Finding
Why are Luxury hotels most price-sensitive?
Factor
Explanation
Absolute savings
A 10% discount on a 500roomsaves500roomsaves50, while the same discount on a 100roomsavesonly100roomsavesonly10
More alternatives
Luxury travelers have more comparable options to choose from
Cross-platform comparison
Higher-end travelers are more likely to compare prices across platforms
5.4 Business Recommendations for Expedia
Luxury hotels: Price promotions are most effective. Prioritize displaying luxury hotels with competitive prices.
Mid hotels: Price competitiveness is key for conversion. Maintain competitive pricing for this segment.
Budget hotels: Price beyond a certain point has diminishing returns. Focus on other factors like reviews and location.
6. Limitations
Price competitiveness definition: Uses same-star average as benchmark; ideal measure would include competitor prices
Correlation vs causation: Observational data cannot prove causality
Sample period: Data may not reflect current post-pandemic travel behavior