Hotel Projection & Booking Pace Analysis Tool (SQL-Based)

Compare future performance against historical benchmarks and recent trends

This tool enables Revenue Managers to analyze On-the-Books (OTB) data, monitor pick-up trends, and assess forecast accuracy by leveraging historical data snapshots that simulate forward-looking performance β€” offering a more strategic view than relying solely on current data..

Booking Pace-to-Projection Tool is built for revenue managers to track On-the-Books (OTB), Pickup trends, and forecast accuracy β€” using real historical data snapshots instead of today's data to simulate forward-looking performance.

🧠 Importance of Booking Pace β€” Resort-Focused Analysis

Booking Pace Answering How do transient room nights booked for the next 90 days compare to the room nights on the books at the same time last year?:

  • Are we ahead or behind compared to last year?
  • Are bookings slower this year?
  • Do we need to adjust pricing, promotions, or stop-sells?

For resorts with long booking windows (30–90+ days), pace analysis helps forecast shoulder/peak periods, identify booking slowdowns, and refine channel and pricing strategies.

πŸ”„ What We are covering Here?

"Use link to jump to section"

πŸ”Ή 1. Performance Summary Comparison

β€’ Metrics Compared:
  • Projected Room Nights vs. Actual Pick-Up
  • On the Books (OTB) now vs. OTB same days out in previous periods
  • Variance over multiple time frames (Last Year, 1 Period Ago)

Enables Revenue Manager to answers
  • πŸ€”How do transient room nights booked for the next 90 days compare to the room nights OTB for same time last year?:
  • πŸ˜•How Bookings performance looking forwards compares to same time last year looking forwards.
  • πŸ“Š Variance between projected pickups and actual pickups from the same lead time (last year and last period)
  • πŸ“‰ Variance in OTB now vs. what was on the books at the same days-out last year and last period

πŸ”Ή 2. OTB Variance to Last Year
Question:
  • How do transient room nights booked for the next 90 days compare to those on the books at the same time last year?
  • Compare forward-looking OTB values now vs. forward-looking OTB values from the same date last year

πŸ’‘ Why This Matters:

  • πŸ“ˆ Spot changes in weekday booking behavior
  • 🧭 Understand seasonality by day of week
  • πŸ’° Evaluate promo/rate effectiveness
  • ⚠️ Flag underperforming dates early
  • πŸ“¦ Layer segmentation for deeper insights (Direct, OTA, TO, etc.)

πŸ”Ή 3. Pick-Up Variance Analysis
  • Pick-Up Variance to Last Year (Proj PU - LY Actual PU)
    1. Measures whether projected pick-up exceeds or trails last year's actual pick-up for the same days out
  • Pick-Up Variance to 1 Period Ago (Proj PU - 1 Period Ago PU)
      Compares current projected pick-up to what was picked up 1 period ago, for the same arrival window.

Definitions:

  • Proj PU = Projected pick-up required to meet target
  • LY Actual PU = Last year's actual pick-up at same days out

πŸ”Ή 4. OTB Mix % by Rate Type
Question:
  • What is the weekly distribution of on-the-books room nights by rate type for the next 90 days?
  • Helps track how rate mix shifts as arrival dates approach

πŸ”Ή 5. Segment ADR Trends
  • Segment ADR:
    1. Average rate on the books per rate type, updated weekly for the next 90 days
  • ADR Change from Last Week:
    1. Week-over-week ADR variance by rate type, same days out perspective.

πŸ”Ή 6. Detail Section
Scope:
90-day forward-looking view, comparing projections to historical data over multiple timeframes.
  • These Sections covering:
    1. Transient Actual vs. Projection
  • Compare current projections to historical actuals from:
    1. Last Year
      1, 2, and 3 periods ago "Weekly" or "MOnthly"
  • Transient On the Books
    1. Compare current OTB to previous OTB values from:
      1, 2, and 3 periods ago
      Last Year
  • Booked to Actual/Projection
    1. Evaluate projected pick-up vs actual pick-up over the same timeframes
  • Booked Segments
    1. Transient room nights on the books for each rate type.

πŸ”Ή 7. Rate and Price Sensitivity
  • OTB ADR :
  • Current vs. last week’s average rate for regular room nights.
  • Price Sensitivity:
    1. Percentage of price turndowns relative to total transient interest.
      Formula:
  • Price Turndowns / (Transient OTB + Price Turndowns)

πŸ”Ή 8. Additional Demand :
Compares additional demand generated this year to the same period last year.

πŸ”Ή 1. Performance Summary Comparison Purpose:
Compare current performance against last year and recent trends (e.g., 1 period ago).

  • πŸ€”How do transient room nights booked for the next 90 days compare to the room nights OTB for same time last year?:
  • πŸ˜•How Bookings performance looking forwards compares to same time last year looking forwards.
  • πŸ“Š Variance between projected pickups and actual pickups from the same lead time (last year and last period)
  • πŸ“‰ Variance in OTB now vs. what was on the books at the same days-out last year and last period

πŸ”Ή 2. OTB Variance to Last Year
Question:
  • How do transient room nights booked for the next 90 days compare to those on the books at the same time last year?
  • Compare forward-looking OTB values now vs. forward-looking OTB values from the same date last year

πŸ”Ή 3. Pick-Up Variance Analysis

  • Pick-Up Variance to Last Year (Proj PU - LY Actual PU)
    1. Measures whether projected pick-up exceeds or trails last year's actual pick-up for the same days out
  • Pick-Up Variance to 1 Period Ago (Proj PU - 1 Period Ago PU)
      Compares current projected pick-up to what was picked up 1 period ago, for the same arrival window.

Definitions:

  • Proj PU = Projected pick-up required to meet target
  • LY Actual PU = Last year's actual pick-up at same days out

πŸ”Ή 4. OTB Mix % by Rate Type
Question:

  • What is the weekly distribution of on-the-books room nights by rate type for the next 90 days?
  • Helps track how rate mix shifts as arrival dates approach

πŸ”Ή 5. Segment ADR Trends

  • Segment ADR:
    1. Average rate on the books per rate type, updated weekly for the next 90 days
  • ADR Change from Last Week:
    1. Week-over-week ADR variance by rate type, same days out perspective.

πŸ”Ή 6. Detail Section
Scope:
90-day forward-looking view, comparing projections to historical data over multiple timeframes.

  • These Sections covering:
    1. Transient Actual vs. Projection
  • Compare current projections to historical actuals from:
    1. Last Year
      1, 2, and 3 periods ago "Weekly" or "MOnthly"
  • Transient On the Books
    1. Compare current OTB to previous OTB values from:
      1, 2, and 3 periods ago
      Last Year
  • Booked to Actual/Projection
    1. Evaluate projected pick-up vs actual pick-up over the same timeframes
  • Booked Segments
    1. Transient room nights on the books for each rate type.

πŸ”Ή 7. Rate and Price Sensitivity

  • OTB ADR :
  • Current vs. last week’s average rate for regular room nights.
  • Price Sensitivity:
    1. Percentage of price turndowns relative to total transient interest.
      Formula:
  • Price Turndowns / (Transient OTB + Price Turndowns)

πŸ”Ή 8. Additional Demand :
Compares additional demand generated this year to the same period last year.

Since we’re using historical data, we simulate what OTB looked like at a specific point in time (e.g., 2019-06-01), instead of relying on CURRENT_DATE.

🚫 Please do not get lost while reading β€” Too Much KPIs together, but we’ll break it down step-by-step.

πŸ“ Dataset Logic Overview

  • Snapshot Date: e.g., 01-Aug-2018
  • Filter: Only bookings on file as of the snapshot
  • Arrival Month: Used for grouping
  • Weekday Split: From Friday to Thursday
  • Output: Total room nights per weekday per month

πŸ“Œ Example Output (Room Nights)

Month Of   Fri  Sat  Sun  Mon  Tue  Wed  Thu  Total
Jan-19     527  656  673  649  764 1024  858   5151
Feb-19     821  578  854  644  696  739  899   5231
...
Dec-19     681  765  980  777  996  517  459   5175
  

🧠 Strategic Takeaways

  • Weekday Strategy: If Wednesdays perform better than Fridays, promote shoulder nights or raise ADR midweek.
  • Compression Forecast: Identify months at risk of early sellout.
  • Rate Sensitivity: Later combine this with ADR to evaluate rate-volume trade-offs.
  • Forecasting Accuracy: This sets the foundation for comparing projected vs. actuals.
How This Query WORKS

compares monthly room nights between what was forecasted and what was actually realized, for better visibility into forecast accuracy and performance.
πŸ” Key Features:

  • Forecast vs. Realized: It uses forecast type e.g( "OTB", "Realized", Forecast", "Projected") to differentiate the predicted vs. actual room nights.
  • Days Out: Calculates lead time from the snapshot (reservation_status_date) to the actual arrival.
  • As-of Date (Snapshot): Keeps track of the point-in-time when the data was valid, useful for pacing.
  • Status Filter: Includes only meaningful statuses (Confirmed, Check-in, Check-out) to avoid noise from cancelled/no-shows (modify this logic if needed).
  • Date Range: Filters only from May to September 2019 for the analysis window.
  • Pivoted Format: Data is restructured to show Forecast, Realized, and their Difference side by side for each month.
Purpose:

This query compares forecasted vs realized room nights sold per month, helping you identify how accurate your forecasting was.

Used Tools: SQL Server, Excel, Tableau

Author: Ayman H. Salem – Revenue Strategist

🏨 1. "On The Book" Mix To Last Year
On The Book Mix To Last Year Table
< h5 id ="Current Mix-section">πŸ“Š 2. Current Mix To Last Year Forecast - LY Actual Current Mix To LY Forecast Table
Charts - "On The Book" Mix
Chart 1
Chart 2
Chart 3
Chart 4
Charts - Current Mix vs LY Forecast
Chart 5
Chart 6
Chart 7
Chart 8
β€’ On The Books (OTB): Reservations that are currently confirmed and in the system for future dates.
β€’ Mix: The proportion (percentage) that each segment/channel contributes to the total OTB bookings. β€’ To Last Year: Comparing this year’s OTB mix to the same point in time last year (e.g., 90 days out, same reservation status date).



In 2019, you sold 946 fewer rooms on that Month/Week (e.g., Friday) compared to 2020.
β€’A positive number would mean you sold more in 2020 than 2019

Current Mix To Last Year Forecast- LY Actual
In hotel forecasting terms, "Last Year Actual" (LY Actual) typically refers to: The actual number of rooms sold (or actual performance) on a specific arrival date last year β€” not just bookings, but the actualized check-ins.

So, LY Actual β‰  Bookings made last year, it’s:

More Explination
Current Mix – (Last Year Forecast – Last Year Actual)

β†’ This measures if the current year’s OTB (CY Mix) is compensating for the gap between last year's forecast and what actually materialized Component What it does cy_mix Current year’s On The Books (forecast_type = 'OTB') ly_forecast Last year’s forecasted room sold (forecast_type = 'LY Forecast') ly_actual Last year’s actual performance (only Check-In / Check-Out) ly_gap The under- or overperformance last year: ly_forecast - ly_actual diff Your current performance compared to that gap: cy_mix - (ly_forecast - ly_actual)

NOTE

OTB Variance & Pickup Analysis

How much your confirmed bookings (with buffer) are ahead or behind the gap between LY forecast and actuals. It factors in how overestimated or underestimated LY forecasts were β€” giving a more refined measure than a straight CY - LY comparison

What β€œOTB Variance to 1 Period Ago” should mean:

β€’ Compare Confirmed bookings (OTB) for 2020 to Confirmed bookings for the same period last year (2019) β€” either: o Same calendar day (e.g., Jan 15, 2020 vs Jan 15, 2019), or o Same lead time (e.g., 30 days before arrival in 2020 vs 30 days before arrival in 2019 β€” more complex).

"On The Book" Variance To 1 Period Ago "Month"
OTB Variance Table
Pickup Variance To 1 Period Ago "Month"
Pickup Variance Table
Charts - OTB Variance
Chart 9
Chart 10
Chart 11
Chart 12
Charts - Pickup Variance
Chart 13
Chart 14
Chart 15
Chart 16

Understanding the Difference Between the Two Queries

πŸ€“ Don’t worry β€” it only looks scary. You've got this!

βœ… 1. "On The Book Variances To 1 Period Ago"
How does On the Books performance looking forwards compare to performance 1 period ago.: How does On the Books (OTB) performance looking forward compare to how it looked one period ago?
Data Source: forecast_type = 'OTB'
Metric: Projected room nights
Method: Compare the current OTB for future arrival dates to what the OTB was one period ago (e.g., a week or a month ago).
Output: Absolute values by month and weekday (no subtraction).
Use it to: Assess if your booking pace is improving or slowing down.

πŸ€“ Don’t worry β€” it only looks scary. You've got this!

πŸ“Š Sample: On The Book Variance to 1 Period Ago
Month Of Fri Sat Sun Mon Tue Wed Thu Total
Jan-20907592598538566104611995446
Feb-207658097426124905046084530
Mar-20623100093510728706637675930
Apr-20701100878157772280110745664
πŸ“Œ Pick Up Variance To 1 Period Ago (Proj PU - 1 Period Ago Actual PU)
What it answers: How does the projected pick-up compare to what was picked up one period ago for the same arrival window?
Data Source:
- forecast_type = 'Forecast' for current projected PU
- forecast_type IN ('Check-In', 'Check-Out') for historical actual PU

🧭 Please don’t get lost...

...
πŸ“Š Sample: Pick Up Variance to 1 Period Ago
Month Of Fri Sat Sun Mon Tue Wed Thu Total
Jan-20936615740534673105211825732
Feb-207148217435564306276774568
Mar-2054697791311177607727095794
Apr-2072394380161069581110565639

πŸ’‘ Why is there a difference?
Because you’re comparing two different behaviors:
- OTB Variance: What’s already booked now vs. what was booked last period
- PU Variance: What you forecast will be booked vs. what was actually booked last period

😲 Rememebr

WE ARE NOT separating or comparing OTB vs LY Forecast (or LY Actual)

Table showing total room nights (projected) per weekday and month for the year 2020, but combining the following forecast types:

  • 'OTB' β†’ your current bookings
  • 'LY Forecast' β†’ last year’s forecast (made in 2019 for 2020)
  • 'LY Actual' β†’ actual room nights realized in 2020

But here's the key:

  • βœ… You’re aggregating all three types into a single number
  • ❌ You're not separating or comparing OTB vs LY Forecast (or LY Actual)

"On The Book" Variance To 1 Period Ago
OTB Variance Table
Pickup Variance To 1 Period Ago
Pickup Variance Table
βœ… Final Output: A month-by-month report showing:
  • Month
  • Current OTB
  • Last Month OTB
  • OTB Variance
  • MoM % Change

πŸ“Š Why This Is Important for a Revenue Manager:

  • Tracks Booking Momentum: Shows whether the current month booking volume is up or down vs. the previous month. Helps assess performance trends and booking pace.
  • Channel Contribution Focus: Focuses on specific distribution channels (OTA, Direct, etc.) for mix analysis and to prioritize high-performing sources.
  • Revenue Forecasting Insight: OTB room nights are a leading indicator of future revenue. Declining MoM bookings may indicate weak demand, prompting pricing or promotional adjustments.
  • Supports Seasonality & Strategy: Can incorporate seasonal logic (currently commented out in the query) for better planning during peak or low periods.
  • Data-Driven Decisions: The MoM % change helps quantify trends to guide:
    • Marketing spend decisions
    • Revenue optimization
    • Targeted sales initiatives

🧠 Summary

This is a MoM On-The-Books booking trend analysis by distribution channel. It helps revenue managers identify shifts in booking patterns, adjust strategies, and optimize revenue opportunities in real time.

Segment Overview

OTB Mix %
OTB Mix Table
Segment ADR
Segment ADR Table
Segment ADR % Last "Month"
ADR Change Table

πŸ“Š Resort OTB Mix % (Historical, Monthly)

OTB Mix %
Segment ADR Table

What this shows: This query helps simulate how your resort's On-The-Books (OTB) looked 90 days before arrival, broken down by month and rate segment.

How it works:

  • πŸ—‚οΈ Grouped by: Month of arrival and rate segment (e.g., TO, OTA, Direct, etc.)
  • πŸ“Š Output: Each segment’s share (%) of the total OTB room nights for that month
  • πŸ“… Timeframe: Typically filtered for high season, e.g., arrival_date BETWEEN '2020-06-01' AND '2020-08-31'
  • πŸ“ Snapshot logic: Only bookings confirmed 90 days before arrival (resorts often rely on longer lead times)

🧠 Resort-Specific Notes

  • Replace market_segment with your actual segment or channel (e.g., rate_type)
  • Make sure snapshot_date (or status_date) is correct β€” this defines what was considered "on the books" at that time
  • This logic works well with stacked bar charts or area graphs in Tableau for clear visualization

πŸ“˜ Example Table Explanation

This table provides a monthly view of OTB mix by segment. All figures are as of 90 days prior to the arrival month. Example:

Aspect OTB Variance To 1Pd Ago PU Variance To 1Pd Ago
Metric Current On-The-Books Forecasted Pick Up
Compared To OTB 1 period ago Actual PU 1 period ago
Data Source Only OTB Forecast + Check-In/Out
Behavior Observed How bookings evolved How new bookings are expected to behave
Result
Month TO (%) Direct (%) OTA (%) Group (%) Corporate (%) Total Rooms
Jan-20 82.3% 12.1% 30.2% 0.0% 5.6% 121
Apr-20 18.7% 24.5% 52.6% 41.9% 35.9% 234
Sep-20 89.6% 6.3% 4.1% 0.0% 0.0% 312

πŸ’‘ Strategic Interpretation

  • High TO %: Suggests reliance on Tour Operators. Consider diversifying to improve ADR.
  • Strong OTA months: May indicate short-lead FIT demand β€” ideal time to test last-minute rates.
  • Group/Corporate activity: Peaks in shoulder months β€” align with event/conference calendar.
  • Direct underperformance: Explore digital campaigns or loyalty offers to grow direct share.

πŸ“ˆ Use Cases for Revenue Strategy

  • πŸ“Œ Identify seasonality shifts and adjust segmentation mix accordingly
  • πŸ’° Align pricing with channel sensitivity β€” e.g., hold rate on strong Direct months
  • πŸ“‰ Reduce dependency on low-ADR segments like TO during shoulder or peak months
  • 🧠 Inform marketing campaigns, promo timing, and group strategy

πŸ”— Want to go deeper? Read the full breakdown here on the blog.

OTB Mix %

OTB Mix % stands for "On The Books Mix Percentage." It represents the proportion of room nights or revenue that a specific market segment contributes to the total rooms or revenue currently booked ("on the books") for a future arrival period.

Segment ADR Table

If you have the following On The Books (OTB) reservations for a future month: M

Market Segment OTB Room Nights
OTA 300
Direct 150
TA/TO 50
Total 500

Then the OTB Mix % is:

Market Segment OTB Room Nights Mix %
OTA 300 60%
Direct 150 30%
TA/TO 50 10%

πŸ”Ή Why it's Important:

Insight

🧠 How to Read a Row Take this example:

Week Of TO Direct OTA Website Corporate
06-Jan 147.47 96.39 101.23 132.29 109.02

means:
β€’ During the week of 6th January, the average daily rate was:

πŸ“Š What You Can Do With It You can analyze:

πŸ” Patterns to Look For

Visit My Blog