I have a dataset of customer contracts that specify a start date and if applicable an end date. Each month a customer is up for renewal. Below is an example of how the data is organized in excel:

ID   Customer Start Date   Customer Drop Date
1    Jan. 2018             Dec. 2018
2    Feb. 2018             July 2018
3    Mar. 2018             

Using the above example, I'm trying to predict whether customer 3 will drop in Jan. 2019, Feb. 2019, Mar. 2019, etc.. Essentially I'm trying to calculate the probability that a customer that's still active will renew their contract for a given month after Dec. 2018. What is the remaining life-time value?

Should I graph the the length of all historic contracts and see what distribution they match? If so how would I apply the distribution to the open contracts?


3 Answers 3


What you are trying to do is called Churn Prediction. Unfortunately, the dataset you have is not enough to train a model. You need a variety of different features for a proper prediction model.

For example, you need demographic data for the customers, but most important, data related to customer's actions. For example, if you have a mobile network company, you might need features as:

  1. Age
  2. Sex
  3. Country

  4. Daily usage (number of call minutes, SMS or mobile data)

  5. Previous day usage
  6. Mobile package (details about the contract etc)

In general, the more data you have around your problem, the easier would be to build such a model.


I agree with Tasos, You need more information about the customer, Which area the customer lives in. Training the model just on Historical Renewal data is not a good predictable model at all as It does not account for uniqueness of different customer. It will not predict good at all or very much miss and hit predictions.


Firstly you need to understand (or explain here), what it the kind of your business. According to what you said, it seems like a "Contractual Business" which is subscription based. Since, there are different solutions to these types . Identifying this will help you pinpoint and search solutions effectively on Google. More on this can be found here enter image description here

Additionally, you need to explain the problem and answer few questions .i.e.

  • How many subscriptions does a avg customer has in the historic subscription data? is it like utility bills which they pay every month?
  • Is it common for customers to unsubscribe and subscribe again, one or many times in their lifetime (just check the data for last 3-4 years)?

Moreover, if such things are unknown, you will need other important information about your customers apart from their subscriptions (like @Tasos said).

Following is a python library which does it for the businesses which are Non-Contractual in nature.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.