All Case Studies
HospitalityTime SeriesNLPForecasting9 min read

SPI Beach Resort Analytics

Revenue Management & Guest Intelligence for a South Padre Island Resort

PythonProphetBERTopicPandasRecharts

$340K

Revenue Uplift

annual

3

Top Complaint Drivers

identified

89%

Forecast Accuracy

14-day

01The Challenge

A mid-size resort on South Padre Island was leaving revenue on the table. Room rates were set seasonally — the same price for Spring Break week as the quiet week after, the same rate whether a fishing tournament was in town or not. Meanwhile, guest satisfaction scores were slipping, and the GM couldn't pinpoint why.

Three specific problems drove the engagement:

  • Static pricing: Rates changed only 4 times a year (spring, summer, fall, winter). High-demand events like Spring Break and fishing tournaments were priced the same as adjacent weeks.
  • Review blindness: Over 2,500 guest reviews across Google, TripAdvisor, and Booking.com — but no systematic way to extract actionable themes or track sentiment over time.
  • No demand forecasting: Staffing, inventory, and rate decisions were made on gut feel. The GM knew "March is busy" but couldn't predict two weeks out with any precision.

Data Landscape

The data landscape: 3 years of property management system (PMS) booking data (~45,000 reservations), 2,500+ guest reviews scraped from 3 platforms, local event calendars, and daily weather data. No existing analytics beyond occupancy reports.

02Our Approach

We built three interconnected intelligence layers: demand forecasting to predict occupancy 14 days out, NLP-driven review analysis to surface guest pain points, and a dynamic pricing simulation showing the revenue gap between actual and optimized rates.

  • Prophet time-series forecasting with seasonal decomposition for 14-day demand prediction
  • BERTopic transformer-based topic modeling to extract complaint drivers from 2,500+ guest reviews
  • Dynamic Pricing Engine event-aware pricing simulation comparing actual rates to optimized revenue-maximizing rates
  • RevPAR Decomposition breaking revenue-per-available-room into rate and occupancy contributions by month
  • Pandas + Recharts data pipeline and interactive revenue dashboard for the management team

Booking Data

45K+ reservations

Review NLP

2,500 reviews analyzed

Prophet Forecast

89% 14-day accuracy

Pricing Simulation

Actual vs optimal

Revenue Dashboard

Daily KPI tracking

03Key Findings

Occupancy by Room Type & Month

Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Standard
62.1
74.2
95.7
85.5
80.2
85.8
97.8
87.3
61.4
70.8
75.7
61
Ocean View
60.9
69.7
91
76
70
90.5
90.6
82
48.5
70.3
66.2
58.1
Suite
56.6
55.9
78.5
69.3
60.3
79.4
81.2
68.6
45.6
58.2
63.8
50.8
Beachfront
57.6
64.2
80.1
72.2
67.3
84.3
86.9
71.7
51.1
58.9
63.9
54
Low
High

Average occupancy rates across all room categories. March (Spring Break) and July peaks are clear, with Beachfront rooms commanding premium rates but lower fill rates. September is the consistent trough.

Guest Sentiment Trend

Monthly average sentiment score (1–5) with sub-topic breakdown. Overall sentiment improved from 3.8 to 4.1 after the resort addressed the top 3 complaint drivers identified by BERTopic: pool cleanliness, check-in wait times, and AC reliability.

Actual vs Optimized Pricing

Monthly ADR (average daily rate) comparison. The dynamic pricing model recommends higher rates during peak demand events and modest discounts during troughs — a $340K annual revenue opportunity.

RevPAR Decomposition

Revenue per available room broken into base, rate effect, and occupancy effect. March and July show strong contributions from both rate and occupancy; September's drag comes entirely from low occupancy.

04Business Impact

Annual Revenue
$4.2M$4.54M
+$340K
Spring Break RevPAR
$267$312
+17%
Off-Season Occupancy
58%67%
+9 pts

Projected Annual Value

$340K projected annual revenue uplift

The pricing simulation showed the resort was underpricing Spring Break by 17% and overpricing September by 8%. Implementing event-aware dynamic pricing in the first quarter captured the majority of the identified revenue gap.

The NLP review analysis identified three specific complaint drivers that were dragging down satisfaction: pool area cleanliness during peak weeks, check-in wait times exceeding 20 minutes on Fridays, and aging AC units in the Standard rooms. Addressing these moved the overall sentiment score from 3.8 to 4.1 within two quarters.

05Technical Details

Demand Forecast (Prophet)

  • Granularity: daily, per room type
  • Regressors: local events, weather forecast, day-of-week
  • Seasonality: yearly (multiplicative) + weekly
  • Accuracy: MAPE = 11% on 14-day rolling holdout

Review Analysis (BERTopic)

  • Corpus: 2,500 reviews from Google, TripAdvisor, Booking.com
  • Embedding: all-MiniLM-L6-v2 sentence transformer
  • Topics discovered: 12 (top 3 actionable)
  • Sentiment: VADER compound scores per review

Pricing Simulation

  • Method: constrained optimization on ADR × occupancy
  • Constraints: max 25% rate swing vs current, min 40% occupancy floor
  • Validation: backtested on 12-month holdout period

Facing similar challenges?

Let's discuss how data science can drive results for your business.