Home » Uncategorized

Churn in a hotel booking site

Someone said customer churn?

Nowadays everyone knows what is customer churn and how to predict and how to handle it. Even the junior data scientists have worked on a part of it (at least). Seniors have already created a prediction model to predict that a customer is going to leave or not.

But is that really simple? The answer is NO of course. Because even if you have some train and test set and you calculated an accuracy of predicting churn with a high percentage, this measure may not be enough. Because it is not possible to separate your model’s results from actual happenings (there are many other factors which may effect company or customers).

So are we really doing churn with a proper methodology and approach?

Here you can learn if you do not know or check what have you done…

Step 1: Problem

Let’s assume that you are working for a company which displays hotels’ rooms where consumers can hire the rooms and your company basically gets a small commission (booking.com, kayak.com, hotels.com, …)

The business department wants to know which customers (do not confuse with consumer!, customer the person or company who provides rooms, consumer is the person or company who hires to rooms) are going to churn. The problem definition and problem modelling are the most important phases of the analytical project development. So the definition is not that simple.

Let’s look at the phrase again:

“Business department wants to know which customers will churn”

Now start asking questions:

WHICH CUSTOMERS: You need to narrow down your target customers. Does the business department want to focus on customers who are already “churned”? Does the business department want to focus on customers who has just (newly) joined to our site? Does the business department want to focus on customers who have contract with us (so they cannot leave for one year)? “NO” because they are focusing on customers who have not churned, who are our customer for at least 6 months who do not have contracts…

** Note that, even if the business department wants to predict churn for new customers, you need to make this another project, because it can confuse the model (because the new customers will have no behaviour data). Keep your model and problem as simple as possible. Also avoiding unnecessary or unrelated target (the customers who have already contract with us cannot leave – so they cannot churn, using this data will confuse our model) will give better results.

WHY (the business department wants to predict customers who will churn): Because they want to try to prevent customers to churn, which will help number of customers to not be decreased.

HOW (they can prevent)? They may (take some action) call the customer and say “hello, how are you?, everything is OK with you?, are you happy with our services?”. “site visit” and asked about their opinions about our company, offer some discounts (from the commisions), make campaigs for those customers send a small present and so on… And if they ask you to which action to take for which customer, tell them that, this is another project (do not make your problem complicated).

CHURN or NOT CHRUN: How the “churn” is defined? If a customer was providing 10 rooms monthly to us (to be rented) and now, it is not providing any, is it a churn? (yes/no: The answer should be given by business department – let’s say business department said “yes”).

March 2016: 10 rooms

April 2016: 9 rooms

May 2016: 11 rooms

June 2016: 0 rooms

As you see, in June the the customer has churned (according to business departments definition). But what if the customer has sold their all rooms by itself for one month (with making a good campaign and/or advertisement). Or what if the customer was doing renovation (to its room, changing carpets, painting walls etc…). So they will probably come back next month and will provide rooms again. So they have not churned? Yes.. No.. ? It seems complicated. In this situation, you may need to consider the time. If a customer was providing rooms (about 10 per month) and last three months they have not, that means they have churned (see the example below).

March 2016: 10 rooms

April 2016: 9 rooms

May 2016: 11 rooms

June 2016: 0 rooms

July 2016: 0 rooms

Agust 2016: 0 rooms

How do we define the duration that must be passed to ensure and conclude that a customer really churned?

This is also another problem that you can calculate using statistics by looking at the data (more will be explained in another article)

There can be another situation that; a customer was providing 10 rooms per month and now it has been providing (for three months let’s say) only 1 room per month. So has the customer churned? Yes.. No.. ? What is business department is telling us, how do they judge this action?

March 2016: 10 rooms

April 2016: 9 rooms

May 2016: 11 rooms

June 2016: 1 rooms

July 2016: 1 rooms

Agust 2016: 1 rooms

If the business department says “yes they are churn”, this also creates another problem. What if same scenario happened but now the customer has been providing us 2 rooms. Has the customer churned? Yes.. No.. ? What if the same scenario happens for 3 – 4 – 5 rooms? How to determine the “limiting” number of rooms (is it a certain limit that if a customer has provided below the limit, we can conclude that the customer has churned)?

Those questions must be answered by business department HOWEVER we need to narrow down the possible answers such that providing some insight and statistical information to them, so they can make a better judgement. We need to suggest most possible values for contraints by calculating and/or estimating them from the input data. (this will also be shown in another article).

WHEN: Let’s say, we have made our design, constructed a model and obtained a good accuracy. However our model predicts (even with 95% accuracy) the customer who are going to churn in next day! That means our business department have to prevent (somehow, as explained before) those customers to churn in “one day”. Because next day, they will not be our customers. Taking an action to “3000” customers (let’s say) in one day only is impossible. So even our project predicts with very high accuracy, it will not be usefull. This approach also creates another problem: Consider that N months ago, a customer “A” was a happy customer and was working (providing us) with us (let’s say, it is a customer with %100 efficiency – happiness) and tomorrow it will be a customer who is not working with us (a customer with %100 efficiency – happiness). And we can predict the result today. So most probably, the customer has already got the idea to leave from our company in the last day. This is a deadend and we can not prevent the customer to churn at this point – because it is already too late.

So we need to have a certain time limit… Such that we need to be able to warn the business department “M months” before (customer churn) thus they can take action before the customers leave. Here comes another problem, what is the time limit… 2 months, 2.5 months, 3 months…? How do we determine the time, that we need to predict customers churn before (they leave)?

This is also another problem and will be explained in another article.

Business department will ask you to predict looooong before the customers leave but as we know from the experience it is not possible to predict future events if there is a huge delay. That means it is very difficult to predict a customer’s churn long time before (like 1 year). Because mostly, there is no such data or factors one year before. The reason why the customer leaves may have happened only 3-4 months ago, so one year ago the customer was fine (was a happy customer).

So you will try to minimize the time, and business department will try to maximize it… This is a trade off. But you need to convince business department that knowing a customer will churn one year before, will not be usefull for them (they need to wait 7-8 months to take an action).

WHY (the customers leave): Another question is what is the reason of leaving? Why the customers leave? You need to ask this question to business department over and over to get an idea of the situations and/or features that may effect the result. This will help us to while preparing the dataset such that those features and/or situations must be included. For example, business department may say, if a customer calls and complains more than three times, they probably leave. Thus we create and include a feature called “number of complains in last 6 months”. With the information about those situations obtained from business department will play a key role in prediction also. You can find relevant features (also) by analyzing the possible features by checking (correlation, information and some other feature selection algorithms) whether they are relevant or not. But this is very time consuming. Also, you need to “dream” what kind of variables – features can be related and then test them that are they really relevant or not? So at initial state, you do not know which features to include (you can just pick randomly).

WHO leaves?: One more question is to be asked is, which kind of customers leave according to their demographics? For example, the customers who have small number of rooms is more likely to leave than the customers who has huge number of rooms (let’s say you have verified this – with t-test for example). Another example is, if a customer is from Germany and it is a very new company (like 1-2 years), it churns more than average. That means, the demographical data may also have important features for making this kind of prediction.

HOW MUCH churn?: This is a question you can ask to the data to learn, how many percent of your customer churn each month? Is it %5, or %2, or even %10 of your customer may churn every month. This will give you an idea that in the prediction results, you need to have %10 of them marked/predicted as that “they will churn”.


So as you see, even defining the problem has many sub steps. Also please consider that I have NOT included every detail, that means there are many other cases/criteria that you need to handle.

NEXT STEPS ARE COMING…