Post on 23-Feb-2016
description
transcript
Science of Hotel OptimizationRooms Revenue Workshop
Day 1: Data
Day 2: Analysis
Day 3: Optimization
SOHO Day 2 2
10 minute break every 50 minutes.
50 minute periods.
© Origin World Labs
http://www.forsmarthotels.com/sohodocs
SOHO Day 2 3
Ask every question.
Dozens of Books, Lectures, Courses in 4 hrs.
Contribute examples.
Give me a Pace.
I will go back.
© Origin World Labs
SOHO Day 2 4
Day 2 Objectives
Hour 1Add analysis columnsModels
Hour 2Let’s Count - FrequencyDemand Analysis – The Manual
Way
Hour 3-4Demand Analysis – The Math WayDynamic Optimization (if possible)
© Origin World Labs
SOHO Day 2 5
SOHODAY1.xlsx SOHODAY2.xlsx
Before Class
1. Joined tables from Day 1
2. Removed Cancel, No Shows, Comps.
3. Vlookup for COMPANY_NAME
4. Convert all to text.
5. Deleted columns
In-class
1. Gross up rates column
2. Days_out column
3. Month and Weekday column
4. Add month-weekday classification
© Origin World Labs
SOHO Day 2 6
BUILD FOR OTHERS
© Origin World Labs
SOHO Day 2 7
Nested Excel functions
• Function variable is another function.
• Combine two or more functions to deliver one answer.
• Innermost function first.
• Keeps worksheet clean.
• Hard to follow.
• May slow calculation speed.
© Origin World Labs
=ROUND(A4*Sum(A1:A3),0)
1. Sum cells.
2. Multiply by A4.
3. Round to the tenth place.
SOHO Day 2 8
Analysis Column: GROSS_RATE
1. Get the margin with vlookup.2. Markup the Net rate3. iferror then RATE_AMOUNT4. Roundup to nearest 10.
© Origin World Labs
When building nested Excel functions, go step-by-step.
=ROUNDUP(IFERROR(
[@[RATE_AMOUNT]]/VLOOKUP([@COMPANY],Margin[#All],2,FALSE)
,[@[RATE_AMOUNT]]),0)
GROSS RATE MARKUP
SOHO Day 2 9
Analysis Column: ARATE
1. Roundup to nearest multiple of 25.
© Origin World Labs
=CEILING([@[GROSS_RATE]],25)
Analysis RATE
SOHO Day 2 10
Analysis Column: DAYS_OUT, ADAYS_OUT
1. Subtract Insert from Reserv date.2. Round to the next whole number.
© Origin World Labs
Can’t use roundup because same day bookings will become -1.
=CEILING([@[RESERVATION_DATE]]-[@[INSERT_DATE]]
,25)
DAYS_OUT
1. Round to the next multiple of 30.
=CEILING([@[DAYS_OUT]],30)
Analysis DAYS_OUT
SOHO Day 2 11
MONTH & WEEKDAY
1. Get month number.
© Origin World Labs
=MONTH([@[RESERVATION_DATE]])
MONTH
1. Get weekday number (sun=1)
=WEEKDAY([@[RESERVATION_DATE]])
WEEKDAY
SOHO Day 2 12
WEEKPART
1. If weekday number is less than 6
© Origin World Labs
WEEKPART
=IF([@WEEKDAY]<6,"WEEK","END")
2. Then show “WEEK” for weekday
2. If not, show “END” for weekend
SOHO Day 2 13
PERIOD
1. Get month number from MONTH column.
2. Add a hyphen for easier reading.
3. Get weekpart from WEEKPART column.
© Origin World Labs
=[@MONTH]&"-"&[@WEEKPART]
MODEL PERIOD
SOHO Day 2 14
OWL’s vision for The Big RM Reset
Clerical RMDistribute the Right Rates and Manage Inventory.
Analytical RMTo take data, to be able to understand it, to process it, to extract value from it, to visualize it and to communicate it.
© Origin World Labs
SOHO Day 2 15
Decision Models
Mental Models
Benefits• Fast • Simple• Inexpensive
Math Models
Benefits• Less biased• Complex• Rules-based• Reusable
© Origin World Labs
Problems• Bias• No Rules• Personal
Problems• Assumptions• Expensive
SOHO Day 2 16
The Model
“Remember that all models are wrong; the practical question is how wrong do they have to be to not be useful.”
“The purpose of models is not to fit the data but to sharpen the questions.”
© Origin World Labs
George Edward Pelham Box, Empirical Model-Building and Response Surfaces (1987)
Samuel Karlin,Eleventh R. A. Fisher Memorial Lecture, Royal Society (April 1983)
“The approximate nature of the model must always be borne in mind…”
SOHO Day 2 17
The Fundamental Model of RM
© Origin World Labs
How many units can I sell at each price point?
Prices (P)
Quantity (Q)
High
High
Low
Low
We’d like to put this relationship into a mathematical model.
Demand Curve
SOHO Day 2 18
The Fundamental Question of Hotel RM
© Origin World Labs
How many rooms can I sell at each rate?
Rate (P)
Rooms (Q)
High
High
Low
Low
Hotel Demand Curve
SOHO Day 2 19
Not that simple.
• Can’t you just go to your data table and count.• Unfortunately, it’s not that simple.• These data points have variation.
© Origin World Labs
Rate (P)
Rooms (Q)
High
Low
Low
(L,H)High
(H,L)
SOHO Day 2 20
Let’s Count - Random Events
• Every problem in RM involves uncertainty.
• Uncertainty means that a process is random.– Website visits– Conversions– Calls to reservations– Booking a room– Group sales– Restaurant visits– Check-in– No shows– Cancellations
• We need to count how often we can expect a random event to occur.
• How often an event occurs if the FREQUENCY.
© Origin World Labs
SOHO Day 2 21
Frequency Table
SQL CodeSELECT PERIOD, ARATE, RESERVATION_DATE, Count(ROOM) AS COUNT_ROOMFROM SOHODAY2.ElementsWHERE MARKET_CODE='TRANSIENT'GROUP BY PERIOD, ARATE, RESERVATION_DATE
MSQuery Modified VersionSELECT `Elements$`.PERIOD, `Elements$`.ARATE, `Elements$`.RESERVATION_DATE, Count(`Elements$`.ROOM) AS ‘COUNT_ROOM’FROM `C:\SOHODAY2.xlsx`.`Elements$` `Elements$`WHERE (`Elements$`.MARKET_CODE='TRANSIENT')GROUP BY `Elements$`.PERIOD, `Elements$`.ARATE, `Elements$`.RESERVATION_DATE
© Origin World Labs
SOHO Day 2 22
Tip: Put calculations on Manual
© Origin World Labs
SOHO Day 2 23
Let’s count – Expected Rooms Sold
Frequency – How often an event happens.
© Origin World Labs
For each Period:1. Sum the number of times each rate was paid.
SUMIFS(Frequency[''COUNT_ROOM''],Frequency[ARATE],$A3,Frequency[PERIOD],B$2)
2. Divide each count by total # of days that the rate appeared.COUNTIFS(Frequency[ARATE],$A3,Frequency[PERIOD],B$2)
3. Rounddown to the ones place and clean the errors.=+IFERROR(
ROUNDDOWN(SUMIFS(Frequency[''COUNT_ROOM''],Frequency[ARATE],$A3,Frequency[PERIOD],B$2)/COUNTIFS(Frequency[ARATE],$A3,Frequency[PERIOD],B$2),0)
,0)
SOHO Day 2 24
Demand Curve – The Manual Way
Core Assumption – Those that paid a higher price will pay a lower price.
Start from the highest rate and add the pickup to the next highest rate.
© Origin World Labs
SOHO Day 2 25
Pivot Chart
Always try to graph your data.
© Origin World Labs
SOHO Day 2 26
INDEX(MATCH)
© Origin World Labs
INDEX($A$133:$A$195,MATCH(B197,B$133:B$195,0))
1. Find the row where this is
2. In this column
3. Get the info in this row
4. In this column
SOHO Day 2 27
WARNING
We are going to make a huge modeling mistake on purpose.
© Origin World Labs
SOHO Day 2 28
Demand Estimate – The Math Way
Using the equation for a line, we can create an equation for demand.
y = mx + b
© Origin World Labs
Rooms Sold Slope Rate Intercept
A measure of steepness.
Where the line crosses the y-axis or the number of rooms sold when the rate is $0.
SOHO Day 2 29
We need to extract two points from the data
1. How many rooms sold when we charge a low rate? (L,H)
2. How many rooms sold when we charge a high rate? (H,L)
© Origin World Labs
Rate (P)
Rooms (Q)
High
Low
Low
(L,H)High
(H,L)
SOHO Day 2 30
Defining an Equation for a Demand Line
1. Find the two points.
2. Find the Slope.
3. Use the slope and one data point to find the intercept.
4. Rework the equation to find the Price curve.
5. Use both equations to find the Revenue curve.
© Origin World Labs
SOHO Day 2 31
ARRAY FORMULAS
Turn any function into a criteria function.
© Origin World Labs
MIN(IF(FREQ[PERIOD]=B$2,FREQ[ARATE],""))
1. If a row in the ARATE column is related to this PERIOD.
2. Then include it in the search for finding the minimum.
SOHO Day 2 32
Find the Slope.
• Change in Rate divided by the change in Rooms Sold• Always constant, always negative.
© Origin World Labs
Change in Rooms Sold
Change in Rate
Slope =Low Rate – High Rate
High Rooms Sold – Low Rooms Sold
SOHO Day 2 33
Use the slope to find the intercept
© Origin World Labs
For 1-Week, Slope = -.0824
102 = -.0824(100) + b
Data Point (100, 102)
102 + 8.244898= b
110.25 = b
Rooms = -.0824*Rate+110.25
SOHO Day 2 34
Graph “1-Week” Demand Equation
© Origin World Labs
Now I can analyze any rate.
SOHO Day 2 35
Revenue Curve, 1-Week
© Origin World Labs
Revenue = Rate * Rooms
Revenue = Rate * (-.0824*Rate + 102.27)
Revenue = Rate * (-.0824*Rate + 102.27)Distribute
Revenue = -.0824*Rate2 + 102.27*Rate
Rooms = -.0824*Rate+110.25
SOHO Day 2 36
Price Curve, 1-Week
© Origin World Labs
Rate = Rooms - Intercept
Rate = Rooms - 102.27
Rooms = Slope * Rate + Intercept
Slope
-.0824
SOHO Day 2 37
Revenue Graph
© Origin World Labs
SOHO Day 2 38
Derivative of Revenue Curve, 1-Week
© Origin World Labs
Revenue = -.0824*Rate2 + 102.27*Rate
The derivative of the revenue curve basically helps us calculate where the curve reaches its highest value.
Step 1 Multiply -.0824 by 2 and drop the second power on Rate
Revenue = -.1649 * Rate + 102.27 * Rate
Step 2 Drop the second Rate Revenue = -.1649 * Rate + 102.27
Revenue Change = -.1649*Rate + 102.27
SOHO Day 2 39
Optimal Rate
© Origin World Labs
Solve for Revenue Change = 0
-.1649*Rate = -110.24
Rate = $668.56
SOHO Day 2 40
The math is great, but the model is USELESS.
• Aggregating data increases errors.• Break down the model even further.
© Origin World Labs