Motivation and background
We observe a large amount of data from what people are searching for and booking on Airbnb. Behind these data, there are a lot of useful insights that can help hosts better manage their listings. At the same time, it can be overwhelming for hosts to process this information if they are not shared in efficient ways.
For example, one of the most common questions we hear from hosts is: How do I pick the right price? Setting a price can be hard without reliable information about other listings in your area, travel trends, and the interest people have in the amenities you offer. In the past couple years, we launched pricing tips and Smart Pricing that help hosts to get personalized, daily pricing recommendations right in the calendar. To do this, we developed a mathematical model that’s learning how likely a guest is to book a specific listing, on specific dates, at a range of different prices. It uses different types of information, including your listing type, its location, your current price, your availability, and how far off each available date is.
As our models have gotten better at understanding the market, we have been able to learn more. And now we can share the insights that we learn with our hosts. For instance, if there is a propensity for guests to look for long term stays in an area, we can recommend setting long term discounts.
New insights for Hosts
An insight is a campaign that guides hosts to become more successful at pricing. To come up with these insights, we decided that each insight has to be:
- Personalized: Each insight showcases personalized recommendations to the listing by using listing information such as the market demand and the booking probability.
- Targeted: Each insight targets listings with certain criteria such as listing attributes and pricing settings to maximize its relevance. Only listings which fit the targeting criteria would be a shown a specific insight.
- Actionable: Each Insight should be immediately actionable with a specific action.
How we serve up the insights
To serve personalized, targeted and actionable insights to various places with which hosts interact from the host dashboard to the host calendar page, we built an extensible backend service to serve insights to multiple channels. The service is a realtime system that ingests data from a set of offline and online data sources to generate personalized insights, rank their effectiveness for different listings and contexts, and deliver insights at the right place and right time. This service is called Narad. The name Narad comes from Indian tradition — Narad used to be a divine sage and a traveling story-teller who carried news and enlightening wisdom.
Life of a request:
- When a request is received to get a list of insights for a listing, the insights backend fetches all the insights eligible for the listing.
- It uses targeting rules of each insight to filter out insights that are not relevant. Targeting rules are based on the online information of the host and the listing, and on the offline information computed using prediction models and aggregation jobs.
- It filters out insights based on fatigue rules so that hosts don’t see the same type of insights repeatedly.
- For each selected insight, it generates personalized payloads and static information. This information includes values shown to hosts such as the potential booking gain or the suggested value for the weekly discount.
- It ranks the selected insights based on the value to the host. The value of an insight is determined as a product of the inherent impact of the insight and the conversion rate of the insight. Other terms such as the repetition penalty are included to make ranking more dynamic.
How are insights represented?
Insights share many similar components. For example, different variations of insights encouraging hosts to set a weekly discount can target hosts with no weekly discount set or hosts who are only getting few long term bookings. Those insights would also share the same personalized payload, which would be the suggested amount for the weekly discount. With this in mind, the representation of insights is designed so that shared components can be easily plug-and-playable through the json config.
An insight consists of the following:
- Identifiers: This includes the insight type that is the identifier of each insight, the placement that tells which host tool this insight can be delivered to, and other grouping information.
- Targeting: This is a list of targeting conditions that need to be satisfied in order for the insight to be eligible for a given listing. There are various dimensions such as occupancy, past and future bookings, market demand, geography, listing attributes and pricing settings over which insights can be targeted.
- Payload: This determines a set of personalized information that the insight displays to the host. Example payloads range from the suggested values for host settings to the benefit to the host such as the potential booking increase.
- Copy: This contains the information to fetch the internationalized content for the UI.
Below is an example of how the backend representation of an insight (on the right) can be translated into a personalized insight shown to the host (on the left). This weekly discount insight is delivered only to the host calendar page and targets hosts with no weekly discount set. And it contains two pieces of personalized information: the potential booking increase for long term bookings, and the suggested weekly discount value.
Understanding host’s behavior on insights
Whenever a host takes an action on insights, the backend system tracks those events through Redis. Types of actions that the system tracks include impression, conversion, skip and dismiss. In order to keep insights fresh, it uses these interaction data to implement fatigue rules. The fatigue rules can be enforced through a set of dimensions such as actions, durations and counts. For example, one fatigue rule can allow max of 3 impressions in the past week for encouraging hosts to set the weekly discount. Another fatigue rule can limit a particular insight to appear after the host dismisses the insight. These configurable rules ensure that the system delivers the relevant content to the hosts with an enjoyable experience.
These interaction data are also used on ranking those insights. The system is responsible for delivering the most relevant and impactful insights to the host. The first iteration of ranking defines the total value of each insight through a set of terms. The first term is the weight which refers to the inherent impact of the insight. For example, an insight with an action that is applicable to the listing as a whole is inherently more valuable than an insight that only affects a couple available nights that the listing offers. The second term is the historical conversion rate of the particular insight. Some insights might carry high impact but draw less attention from hosts. Other insights might get a lot of conversions but not be inherently impactful. The first term and the second term keep this balance. The last term is the repetition penalty that discounts the total value of the insight if the same insight was ranked as the top insight last time. This helps providing some variance on the top position so that the same insight doesn’t appear at the top over and over even though it is the best insight in order to keep hosts more engaged.
We have seen very positive results with the introduction of insights on the host calendar page. Hosts are engaging with the insights and are becoming more successful by taking actions on them. Overall we see a lift of 2% in bookings on Airbnb. Besides this, it has also given us a platform to communicate with hosts and introduce new insights through narad very quickly. Insights have a high acceptance rate with 1 out of 5 insights being acted upon by hosts.
Here are some future works:
- Expanding the set of insights to increase personalization and capture other macro trends in the market.
- Creating better ranking algorithms to order insights by relevance and impact.
- Bringing insights to different host tools and platforms.
All of these would not have been possible without the work of Jerry Su (Frontend Engineer), Luca Beltrami (Product Manager), Clara Lam (Designer), Holly Hetherington (Content Strategist) and many others. If any of these roles sound interesting and exciting to you, let us know! We are hiring engineers, data scientists and designers on the pricing team at Airbnb.