Wheelhouse Pricing Engine: Complete Overview

April 19, 2021 | Andreas Buschermohle


Wheelhouse Pro is our most robust and professional pricing platform to date.

It was designed for ambitious operators with growing portfolios, prioritizing deep data insights and better portfolio tools, all while delivering even stronger revenue performance.

Additionally, Wheelhouse Pro will further our own goals of providing increased transparency to our customers and community.

We believe transparency is the key to empowering our users to make informed business decisions, and it is high time our space moved from ‘making recommendations’ to ‘providing explanations’.

Therefore, in the following pages, we are going to detail exactly how our dynamic pricing engine works — how it leverages data, unique statistical approaches, and (yep!) machine learning to calculate accurate prices for your unique properties.

Over the course of this write-up, we will leverage visuals, text and occasionally equations (😳) to articulate the models, quality checks, filters and data underpinning Wheelhouse’s revenue management platform, that today increases revenue by an average of 22%, per unit.

At worst, should our write-up prove to be a bit too dry or detailed, we hope detailing the model will illustrate our deep commitment to your success, and to the transparency we believe our space so desperately deserves.

At best, we hope detailing our model will give you new insights that you can leverage to drive your business’s success.

Pricing Engine: Components

The image at the top of the page illustrates the essential components of the Wheelhouse pricing engine. The three most foundational models included in the illustration above are:
As you explore this write-up, you will learn how these high-level components either include, or are amplified by, multiple additional models and statistical approaches, including:
While complex, we believe that the 22% increase in revenue these models have driven for our users has made our efforts worthwhile!

Additionally, in this write-up, we have decided to break out two important models to explore them in greater detail:
Each day, our platform ingests, cleans, and processes ~11 million new data points for every unit, in order to inform a continuously relevant and accurate set of recommendations. All of the models above play a role in that process!

Now, let us step through these models, starting with our pricing engine’s foundation, the Base Price Model.

Part 1: Base Price Model

How our model determines an accurate price for your unit at ‘normal’ demand

As stated above, the Base Price Model is the foundation of each unit’s unique pricing recommendation. The goal of the Base Price Model is to discern an accurate median nightly price for each unit by analyzing the attributes of the property.

For example, we all know that a pool, a porch, parking and other attributes can impact the desirability of a given property.

And, while the value of these individuals attributes varies greatly over the course of a year (i.e. your pool is ‘worth’ more on July 4th than on January 4th), the Base Price Model is designed to determine the value of your unit for a day with average local demand.

To do this, the Base Price model analyzes:

And a range of additional factors.

To train our Base Price Model, we use a supervised machine learning model that incorporates all active units in each market, leveraging their unit details and the median nightly price over the last year. By using the median, we can reduce the signal from events or accidental outliers in the data to make sure we primarily capture pricing for ‘normal’ days.

Our model leverages gradient boosting to produce an ensemble of decision trees, which map a unit’s features to the median price. For our customers, this approach enables us to balance model complexity with interpretability — or the ability to show you how your unit’s attributes impact your Base Price recommendation.

Let us explore an example to learn more.

Detailed in the chart below are the five largest drivers of the Base Price in the San Francisco market (Note: real data is used throughout all examples in this write-up)

Perhaps unsurprisingly, bedrooms and sleeps (the number of people that can ‘sleep’ in a unit) have the largest impact on a given night’s price. In most markets, these two attributes are key drivers of the Base Price, as they are tightly correlated with the size (and hence the price) of a unit.

We can also see that the unit type (e.g. private room, entire apartment, full house, etc.) plays a significant role in determining an accurate Base Price in San Francisco, as do the extra fees (both cleaning and guest fees) associated with each stay.

While this graph offered us a high-level understanding of the value of the attributes, let us dive in more deeply to the most impactful attribute — bedrooms. To do this, we will examine a series of sample units that have:
In fact, we can see that going from a studio (0BR) to a 1 BR barely impacts your recommended Base Price. Similarly, the impact of a 4th bedroom is de minimis, at least in San Francisco for units with 1 bathroom.

However, what you might have realized is that this example is constrained in the sense that all these hypothetical units are restricted to having 1BA and ‘sleeping’ 4. In reality, most 4BR units will both have more than one bathroom, and sleep more than 4 people.

Therefore, examining this constrained example illustrates a core aspect of our Base Price Model though, as it is intended to illustrate that an accurate Base Price must consider the value of attributes both individually and collectively.

Location Impact

How our model infers demand signals around each unit’s location

The location of a unit can dramatically impact the perceived and actual value of that unit.

To determine this impact, our model leverages our Base Price Model, by applying spatial kriging to our Base Price Model’s residuals. In our model, the ‘residuals’ refer to percentage differences between our predicted and the actual median prices for each unit, as illustrated below.

In the visual below, we can see that our model has identified a set of clustered units (yellow dots) that mostly have a median nightly price above our ‘predicted’ median price (‘predicted’ based on the unit’s attributes).
This collective pricing signal indicates that we are likely observing a high-value neighborhood, which in turn informs our location adjustment. In this case, a unit at the location of the purple dot would get a 10% increase in our Base Price recommendation.

Occupancy Impact:

How we leverage occupancy to verify our training data

One challenge in the short-term rental space is that many units are unintentionally (or intentionally!) ‘incorrectly’ priced.

Therefore, it is critical to leverage occupancy data (occupancy achieved over the prior year) to better understand how much our model should ‘weigh’ each unit’s pricing strategy. In combination with prices, the occupancy rate achieved by a unit can help us better understand whether a unit is overpriced or underpriced, relative to the market. Hence, we provide the occupancy as an input to our Base Price Model during training to tease out this relationship.

Of interest, despite units in the STR space being very unique, among the millions of units we have analyzed, the aggregate booking patterns reveal that the STR market is actually very efficient.

To explore this more, let us examine the chart below, which illustrates the relationship between a unit’s Base Price, and occupancy rates. As you can see, as the achieved occupancy increases, the Base Price associated with these units decreases.

Accuracy Evaluation

How we analyze the accuracy of our recommendations

For our model to be effective, we need to avoid overfitting and ensure that the out-of-sample error is minimized. For this, our model uses cross validation during the training process.

In our example of San Francisco, we train the Base Price Model using data from more than 5,000 units through the steps laid out above. A majority of units will have prices close to the right Base Price, while some will be priced too high or too low.

The below image is a histogram chart of a unit’s recommended prices relative to their current median price.

As you can see, most recommendations are pretty similar to the median price, i.e. have a value close to 1.0 (or 100%). However, a few units are currently underpriced and would get a recommendation as high as twice their current price, i.e. 2.0, while others are currently overpriced and would get a recommendation as low as 30% of their current price, i.e. 0.3.

The histogram shows that our Base Price Model

The final output of this model is our “Attributes-Only” Base Price Model. 

Now, let’s read about how bookings impact & modifies our Base Price Recommendation.

Part 2: Analyzing Bookings

Booking Curves

How our model determines supply and demand
With a Base Price established, we can move on to our next challenge — adjusting nightly prices based on local demand.

Unlike hotels, in the short-term rental space, the vast majority of STR supply is comprised of individual units. These individual units can only be either 100% booked or 100% vacant for a given night. Said differently, for any given night, your unit will either earn some or no money! Adding another degree of complexity to pricing the STR space is that once an individual unit is booked, you can never sell that night again.

Therefore, our model needs to be exceptional at maximizing the expected revenue from your unit, based on a series of ‘binary’ outcomes.

When we started Wheelhouse 6 years ago, our team spent 12+ months testing different statistical approaches to determine which approach could best maximize revenue outcomes, over time.
Today, those early learnings still drive our use of Survival Analysis, specifically the Kaplan–Meier estimator, to create booking curves that power our pricing predictions.

The Kaplan-Meier estimator inherently handles ‘right censoring’. This is because for any unbooked future date, we do not yet know when, or even if, that night will be booked or otherwise taken off the market. Therefore, it is crucial to be able to include this data in order to fully understand supply and demand in a dynamically changing market.

The output of Survival Analysis is a survival curve S(t). It reflects the probability of a unit not being booked by time t ≤ 0 which counts the number of days before the stay date. For Wheelhouse, we can think of this survival curve as the inverse of a booking curve.

Note: Our survival curve counts the number of stay dates before the stay date, hence why the output is negative. For example, S(-30) = 0.7 means that on average 70% of the units survived (or, are still available) 30 days before the stay date. Consequently, the complement of the survival curve 1-S(t) represents the booking curve and its final value, 1- S(t=0), is the occupancy.

The following graph shows an example of a booking curve created on the entire population of available units in San Francisco, using stay dates between 2015 and 2021. It illustrates how likely an average unit on a normal demand day would be expected to ‘book’.
By creating an overall market curve for a normal day, we have an effective benchmark to compare survival curves for any subset of units or stay dates.

This is where our modeling approach becomes particularly powerful, as it enables us to create and compare booking curves for:
Comparing these different curves allows us to see, even far in the future, differences in booking patterns.

The next challenge is to translate the differences between two booking curves into a more fine-grained understanding of how these booking patterns will impact expected demand.

To create these projections, our team developed a technique we call Gamma Warping.

Gamma Warping

How our model determines demand differences in Booking Curves
Gamma warping is a technique we created to accurately predict future demand based on differences in booking curves.
Technically speaking, gamma warping is a non-linear transformation that ‘warps’ one booking curve into the other.

For example, let us compare the booking curve Sₐ(t) in San Francisco for August in relation to the annual booking curve S₀(t) in San Francisco.

For this, we find γ (gamma) such that S₀(0) = f(Sₐ(0), γ). The warping function f is constructed such that it ensures that all adjusted survival curves stay within [0,1] and are monotonously decreasing, and vice versa the booking curves are monotonously increasing.
In the example below, we can see that even 200+ days out, August is booking faster than an average stay date.
Hence, in general, each stay date in August has a higher booking probability than the rest of the year.
In this case, the difference in survival probability between August and our baseline market survival curve results in γ=0.3164. This positive gamma value indicates that the booking probability is higher than the baseline.

The impact of gamma on the booking probability is non-linear, and thus depends on the baseline booking probability. To visualize the non-linear impact of these estimates on different baseline booking probabilities p₀, the following graph shows the booking probability resulting from an adjustment by γ=0.7.
As you can see in the illustration below, our model translates a strong demand signal (or, ‘positive gamma’) into a higher booking probability (y axis) above the baseline booking probability (x axis). However, as the curve additionally illustrates, our model does this in a non-linear fashion (hence why the purple line arches above the dotted line).

The second example below also illustrates how an initial baseline probability of booking (40%, represented by the dashed line) is transformed by different gamma values.

This chart shows that as gamma increases (x-axis), the booking probability increases as well (y-axis). At negative and positive infinity, the adjusted probability converges to 0% and 100% respectively. In between these points, the relationship increases monotonically, but non-linearly, crossing the baseline at gamma = 0.0.
In illustrating this, we are attempting to show that Wheelhouse’s Pricing Engine responds to differing levels of demand in a very dynamic fashion.

Our model does not simply assume, “Since demand is up 10%, booking probabilities increase 10%, as well”. Instead, on a market by market basis, or for any subset of units, we can create demand curves that help us understand “when demand increases by X% in your market, your unit’s expected booking probability increases by Y%”.

While complicated, it is a very powerful means to generically estimate demand in a dynamic market under a variety of circumstances.

Price Response Function

How our model translates demand signals into adjusted prices
Our Price Response Function is designed to translate predicted booking probabilities (which we outlined above) into a specific price recommendation for your unique unit.

For example, once we have determined that August is likely to have higher demand, we need to determine how much to increase prices, without dramatically lowering your probability of booking.

To develop a price response function for a market, our model looks at each unit and each stay date offered in the market, to calculate its relative price difference δ to our base price model.

We then ‘bucket’ the observations with similar price differences and apply our booking curve analysis to determine (via Gamma Warping) whether this bucket books more (γ > 0) or less (γ < 0) than the market average.

This analysis tells us how much a change in price impacts the booking probability which in term reflects the sensitivity of guests to different prices.

Using these estimates, we fit a smooth price response function:

γ = fᵣ(δ) = a + b ⋅ (δ − d)² ⋅ (δ > d)

to the data, which allows us to generalize the observed market behavior.

From the following graph, we see that as prices increase above our base price recommendation (δ > 0), booking probabilities decrease.

And, no surprise, if prices are below our base price recommendation, we can see that the booking probability increases, at least initially. Importantly though, at a certain point, lowering your prices no longer increases your likelihood to book.
Deriving this price response curve lets us know how to increase prices given a particular ‘expected occupancy’ or demand. We call this value the price multiplier.

In the following graph, you can again see that our price multiplier is not simply linear. In fact, it changes quite dynamically for projected occupancies above or below the baseline (in this example the baseline is still 40% — represented by the dashed line).
We derive the gamma value that equilibrates the expected occupancy of a booking curve with that of the baseline booking curve. We then pass this gamma value to the inverted price response fᵣ⁻¹(γ) to translate it to a price multiplier δ, which we use to adjust prices.
In this chart, we can see that on a day with ‘normal’ demand (i.e. the market occupancy will reach 40%), the price multiplier is 1.0 (or, unchanged). This means that on a normal demand day, the price we would recommend for this day is the same as our Base Price.

However, if the expected demand/occupancy is above the market baseline (i.e. anything more than 40%) our price recommendations would initially increase in a roughly linear fashion, before increasing exponentially during periods of ‘extreme demand’, to better capture market compression. Alternatively, you can see that during periods of low demand, our model will lower prices… but only slightly, and not past a certain point.

Now, with a deep understanding of how our recommendation engine analyzes individual units, their booking probabilities, and the elasticity of their prices, let us dive into how our model begins to understand and predict demand drivers for units, for a particular stay date.

Part 3: Predictive Demand Model

How we leverage pricing data to price your unit accurately in the ‘far-future’
In the pages above, we detailed how Wheelhouse determines the Base Price for each unit, and also how we more deeply analyze and understand both markets and subsets of units.

Now, let’s dive more into how we isolate drivers of local demand, and how we leverage those signals to create far-future price recommendations before booking patterns emerge (e.g. how should we price a unit 365 days from now, when only <1% of a market has booked?).

The first local demand model we employ is our ‘predictive’ model, which is intended to predict accurate prices before a market begins to book. While this model has a number of goals, its most important job is to ensure that we do not underprice units for far future stay dates.

This model is particularly important for the role it plays in pricing local events and holidays that start booking many months (or years!) ahead of a stay date, and offer the best times to capture revenue.

For our Predictive Demand Model, we analyze prices in markets, including future and historical pricing data from hotels and short-term rentals. These pricing signals contain local and historical insights that we can leverage to better ensure the far-future is accurately priced.

Additionally, to aid interpretability and effectiveness, our model can parse these pricing signals, to determine the ‘why’ behind future price increases, so we can better understand factors, including:
Let us explore each of these factors in a bit more depth.

Determining Seasonality

How we extract seasonal patterns from market pricing data
When analyzing a market, our first goal is to accurately determine the ‘seasonality’ of a market. In most markets, this seasonality curve changes slowly from day to day, and has traditionally been pretty stable from year-to-year.

Let us examine a chart that shows the average prices in San Francisco by day of year. In this chart, the dots represent the average price by day of the year. The line shows the output of our custom-designed low-pass filter that extracts the seasonality curve.

Via this method, it is clear that the high season in San Francisco is from July through October, while the rest of the year is relatively flat, in terms of seasonal demand.
Note: Pre-Covid, essentially all markets had a unique, but identifiable seasonality curve, which has been quite stable across multiple years. Post-Covid, it is too early to tell if and when traditional seasonal travel patterns, in the US and other markets, will return.

Day of Week

How weekday prices differ by market
With a seasonality curve in place, we next want to analyze pricing patterns to discern a regular, repeating pattern around ‘day of week’ pricing. This analysis is particularly important in urban markets that have meaningful business traveler demand, and for leisure markets where we often see bookings for Fridays and Saturdays increase.

To better understand this, let us examine a ‘weekend effect’ as shown in the following bar chart of ‘day of the week’ pricing for San Francisco and Austin. To better compare the two markets, we show the daily prices relative to the lowest price and how much more other days increase above that minimum.

As you can see, San Francisco’s isolated day of week pricing is mostly flat with a very modest weekend increase of 3%. However, Austin clearly shows regular high demand for weekends, with most units increasing prices more than 50% on an average weekend.

By knowing this pattern for each market, we can again more accurately interpret future pricing patterns, and accurately name these factors for our customers.

Local Events

How we localize the impact of events
Lastly, our Predictive Demand Model leverages prices to detect local events, in the far future.

While similar to our other two demand ‘filters’, this model additionally considers the location of each event when understanding how particular price signals should be translated to the broader market.

Unsurprisingly, most events only impact pricing for units proximal to the event. However, in most markets there are multiple annual events (e.g. a huge conference, event, or holiday) that are so large they drive price changes across an entire market. Due to this, our model needs to be able to both (a) identify hyper-localized pricing signals and (b) translate those signals into an estimate of the scale and breadth of each event.

We achieve this by analyzing local pricing signals, removing the Seasonality and Day of Week impact, before extracting ‘short’ price increases. These results are achieved via a custom designed high-pass filter. The result of this filter is a highly readable chart that allows both our team (and you!) to examine any market for event-driven demand.

As an example, let us examine what our model determined to be the ‘event impact’ for two different areas in San Francisco, Union Square (near downtown) and Golden Gate Park (4 miles from downtown, a popular concert area). (Note that these are projections only from our Predictive Demand Model, as of January 2020. More on this soon!)
In the first chart (above), we see event-driven demand in the Union Square neighborhood, which is very close to the Moscone Convention Center. Therefore, we see our Predictive Model reacting very dynamically over the year, and ultimately dwarfing the relatively small seasonality impact in this area.

However, in the second chart (below), we examine units near Golden Gate Park, 4 miles from downtown. In this chart, we can clearly see that the biggest events were projected to be the two music festivals — Outside Lands and Hardly Strictly Bluegrass. These events do not impact the downtown area. And, only Dreamforce, the largest of conferences, can be definitively tied to a specific price spike in the Golden Gate Park area.
Importantly, our model is also able to leverage this signal to predict when significant demand is going to spill over into other neighborhoods, albeit at a smaller price multiplier.

Part 4: Reactive Demand Model

How we leverage booking signals to price your unit accurately for actual demand
As we all know, market conditions change daily, and sometimes dramatically.

In the accommodations space, as stay dates approach, we are able to observe more bookings, and gain a more concrete understanding of demand. (While much of the accommodations space still leverages historical data to inform all pricing, we leverage actual bookings.)

Similar to our Predictive Demand Model, our Reactive Demand Model attempts to determine both how much and why demand is shifting. On a daily basis, our model re-analyzes your market, leveraging our prior referenced Booking Curves and Gamma Warping to re-forecast these three main demand drivers — seasonality, day of the week, and local events.

For a very visual example of this, let us look at our reactive demand model for downtown San Francisco, as calculated on January 1, 2020 (purple line) and March 15th, 2020 (yellow line).

As you can see, as of January 1st (purple line), our reactive demand model was projecting large demand spikes for many events in San Francisco, including Dreamforce, a huge annual event in October, in San Francisco.

However, by March 15th, you can see that event demand for Q2 (April — June) has essentially completely evaporated. Therefore the prior forecast price increases have either completely disappeared or become much more muted.
Of interest, we can also see that demand for events in Q3 had not yet fallen off a cliff. Market uncertainty is clearly visible, as we can see the demand around Dreamforce has dropped precipitously. Of course, in reality, it only got worse from here. But, this is an interesting snapshot that shows our model capturing near term changes, but not blanket-applying those patterns to a total market selloff, yet.

This output is exactly what we would expect from our Reactive Model. The model’s recommendations are entirely driven by market behavior, not speculation or historical assumptions.

Part 5: Blending Demand Models

How our models are blended so each day is more accurately priced over time
In illustrating our Predictive and Reactive Demand Models, we were attempting to show that our pricing engine creates and utilizes two estimates of future demand, daily. The reason we have these two models is that we need to both (a) infer projected demand before it emerges, and (b) respond to actual demand, as stay dates approach and booking patterns emerge.

We leverage these two models for each day’s recommendation by dynamically blending the demand models together.

On the chart below, we show stay dates on the x-axis, from today (far left) to 365 days out (far right). On the y-axis, we show the weighting (from 0% to 100%) that our Reactive model has for any future stay date. The reason the curve slopes up (from right to left) is that as a stay date approaches, our Reactive Model starts to have a much bigger impact on that day’s price recommendation.

Additionally, the spikes you see in the line show where a large number of bookings cause our Reactive Model to be more heavily weighted sooner than normal. Said differently, when we see a big demand spike and have high certainty that this is a clear market signal, our model very quickly responds to that demand.

Part 6: Calendar Controls & Response

How Wheelhouse adjusts pricing around bookings & approaching vacancies

The manner in which hosts and operators control their booking calendars can significantly impact a unit’s likelihood to book, and therefore one’s pricing strategy and expected revenue.

There are two key aspects of calendar control that impact revenue:
i.e. a single, or multiple nights, trapped between two bookings
i.e. how many days remain open, a certain number of days before a stay date
We are going to explore both of these, to help illustrate how the decisions you make around the bookings you accept can impact your expected revenue.

Vacancy Gaps

How limited availability can impact your likelihood to book
Vacancy gaps are short spans of nights for a unit where the nights before and after the stay date(s) are booked or blocked. For many short-term rentals, these short vacancy gaps have a much lower likelihood to book. This is illustrated in the following analysis of vacancy gaps in the San Francisco market.

In San Francisco, single night gaps have a probability of only 7.3% of being booked, compared to a normal day in the market, which has a booking probability of 41.1%. As this ‘vacancy gap’ gets larger (i.e. two or three nights) the booking probability for these days increases.
However, the probability of booking is also correlated to which day(s) of the week are available. For example, in San Francisco a double night gap on a weekend (i.e. Friday and Saturday night) has a 5.4% higher chance of getting booked, as opposed to two weekdays.

Thus, our pricing engine uses a combination of the vacancy gap length and the day of week to determine an appropriate discount for any vacancy gap that emerges on your calendar.

On a daily basis, our model is reviewing each unit’s calendar, to try to maximize revenue while respecting minimum stay rules and the calendar blocks that customers control.

Last Minute Pricing

How we adjust prices to help you capture last minute bookings, at the right price
In the short-term rental market, there is a tendency of hosts and owners to apply last minute discounts as a stay date approaches. In many markets, we observe this discounting schedule to be much more aggressive than what we see for hotels.

For example, let us look at the graph of how operators discount prices over time, as a stay date approaches. As we can see here, about two weeks before the stay date, average booking prices start to drop until they have dropped by almost 30% for same-day bookings.

While this varies by market and unit, Wheelhouse incorporates discounting schedules into our price recommendations as a ‘temporality adjustment’, which dynamically reduces the price as the stay date approaches.
We should note that many users choose not to discount their prices as stay dates approach. On Wheelhouse, much like with every other aspect of our model, you can either (a) choose an automated setting for your unit, or (b) fully customize your last-minute discounting strategy, in any way you please.

Part 7: Competitive Set Modeling

How we determine which units are competing with you for guests

In the STR space, automatically detecting an accurate competitive set can be quite challenging. This is due to the highly variable supply of the STR space, that sometimes creates non-intuitive competitive sets.

For example, it is not unusual to have a 1 BR unit that can sleep 4 (or even more!) guests. Due to this, it would not be unusual to find that an ‘accurate’ competitive set for this unit would include 1BR, 2BR, or even 3BR units.

Additionally complicating matters is the fact that many ‘similar’ nearby units may not actually be true competitors. (Said differently, not all 1BR places are the same!) This can be due to neighborhood boundaries, differing amenities, reviews, or more. For example, if your unit has a pool, your competitive set should likely include (at least in the summertime!) nearby units that also have pools.

Given this complexity, we have found that the most effective Competitive Set can be determined by determining which units have the most similar combination of features.

Our recommendation engine creates Comp Sets by pairing our Base Price Model (which implicitly identifies similar properties) with an Occupancy Model. We train this model in a similar fashion as our Base Price Model, to predict the occupancy of a unit. Additionally, we take the geographical distance between units into account.

In this manner, we have an expected base price, as well as an expected occupancy, for each unit in a market. However, this approach abstracts from the unit features to a more generic comparison that implicitly values similarities in e.g. amenities, bedrooms and location based on how they perform in the market.

Utilizing the differences in base price, expected occupancy, and geographic distance, we then perform a cluster analysis to identify the final recommended competitive set.
To explore this Comp Set model, let us take a sample ‘private room’ in downtown San Francisco, with zero bedrooms, i.e. a studio, and one bathroom that sleeps two.

In this case, our Comp Set model identifies a competitive set of 90 units. Among this competitive set, 68 units are also zero bedrooms, while the other 32 have one bedroom. And, while 74 of the units are also classified as ‘private rooms’, 16 of the units are entire homes/apartments.

The results are shown in the following visual, which depicts each nearby unit as a singular dot.

As you can see, some of these nearby units are considered too far away, geographically, to be truly competitive (these units are the ‘red circles’).

For the next set of more proximal units, our model removes units for which the base price and the expected occupancy do not align (these units are the ‘blue squares’). However, when both distance and similarity are a ‘match’, our model includes this unit in a default ‘competitive set’ (yellow circles, clustered at the center).

Pretty cool! But… ready to dive in even deeper?

Let us further our comp set analysis by examining the distribution of two key metrics, base price and occupancy, for the identified competitors. As we can see on the first chart, our Base Price graph shows where, amongst a comp set, this unit’s Base Price falls. In the second chart, we can see that the distribution around occupancy is actually considerably broader, though still similar, to our sample unit.
And, while some units show a larger deviation in one of these metrics (e.g. base price), these units, in turn, are more similar in the other metric (e.g. occupancy).

The third chart below offers one more vantage point to see how our Comp Set model works.

In short, when we examine the distance metric, you can see that while our competitive set model clearly favors units that are close by. But, it also considers some units farther away, if they show very similar performance metrics.

In total, Wheelhouse’s Comp Set model identifies and compares both a broad and narrow set of competitors. Over the years, our data has illustrated that it is best to price against a larger set of ‘potential competitors’, as opposed to a smaller set of ‘certain competitors’.

Additionally, due to this approach, we can show customers a broader set of ‘potential competitors’, which can be useful in providing a broader range of insights when either (a) comparing performance metrics or (b) deciding on a pricing strategy.

Part 8: Dynamic Pacing Model

How groups of units can be leveraged to perfect pricing over time
While the last-minute discounting strategy detailed above works well for individual STR units, we have learned that for multi-unit properties (hotels, or premium STR buildings), an effective pricing strategy requires a much different approach.

To handle increasingly professional portfolios in the STR space, the Wheelhouse Pricing Engine developed the concept of ‘unit types’. Unit types help properties with similar rooms (such as multiple studios, 1BR, 2BR, 2BR/2BA, etc.) to leverage a ‘portfolio’ approach to pricing. Similar to how hotel pricing works, this approach allows us to make pricing decisions based on the performance of a set of units.

In the graph below, we illustrate the risk-reward ratio changes as a set of rooms begins to book. In this scenario, let us analyze a boutique hotel that has 10 units in a particular unit type.

Before the first booking occurs, the risk of a low daily revenue figure is high. Consequently, increasing prices prior to a first booking also increases the risk of the ‘worst case scenario’ — $0 in daily revenue. Alternatively, if 9 of the 10 rooms for a stay date are already booked, the marginal risk of increasing the price for the last unit is much smaller. Therefore, as more of a property books up, the more aggressively we can potentially price the remaining available units
When we tested our pacing model on our portfolio through A/B tests, we observed an ability to drive revenue at a building level up by 0.9% to 1.5%. While seemingly small, impacts like this, in aggregate, are the foundation of our model’s success.

While one of our newer innovations, we are confident that Wheelhouse has developed the only dynamic pacing model in the STR category. We look forward to continuing to refine this, especially with our urban STR partners.


Thank you for reading more on the many unique components behind the Wheelhouse Pricing engine. In the above pages, we have detailed how our model can:
With these insights in hand, we hope you feel well equipped to leverage or modify any aspect of Wheelhouse’s pricing strategy, to more perfectly drive your business’s needs and goals.

However, we recognize that despite all the effort we put into our pricing engine, the true success of Wheelhouse depends on you. No pricing engine is complete without a skilled operator (you!) modifying our recommendations to better capture your unique business goals.

Therefore, while we love improving our model, know that our team continues to invest just as much time and energy into designing a user-friendly interface, that gives you access to a wide degree of customizable settings and strategies. This effort ensures that you always have the final determination for how to price your unique portfolio.
And lastly, should you have any questions about Wheelhouse — either our product or our pricing engine — just know that our team, especially our best-in-class support team, are ready and eager to help!

Blog search

Recent posts

Popular Tags