I need to predict attrition of customers who use product that has fixed time period (1 year) licence. I have monthly feature usage data, for example the product has 5 features f1, f2, f3, f4 and f5, I have the usage frequency of these features at a month level and I have data only for 12 months. If the product is licenced on a monthly basis, I could easily formulate the problem as a time varying covariates survival model. However, yearly subscription has made it hard for to formulate the problem as everyone would be attriting at the end of the year not monthly.

Example Data:

User month login_usg tckts_rsd dwnld_reports func1_usg func2_usg attritted   
Test_user   1   20  2   30  12  12  0   
Test_user   2   41  3   23  3   3   0    
Test_user   3   32  4   12  4   4   0    
Test_user   4   67  5   3   2   5   0   
Test_user   5   54  0   4   4   5   0      
Test_user   6   8   3   5   6   6   0    
Test_user   7   56  6   43  7   7   0    
Test_user   8   78  8   6   3   4   0    
Test_user   9   54  4   23  4   3   0    
Test_user   10  6   3   45  5   2   0    
Test_user   11  43  2   43  6   87  0    
Test_user   12  12  5   6   7   5   1    
  • 1
    $\begingroup$ the way you describe the fact it is a fixed 12 month contract suggests its inappropriate to treat it as survival analysis, but more like 'logistic' regression - does the customer renew or not. and you could then analyse eg first using all 12 months of data, then you could think about a) only using first x months of data, b) predicting full 12 month usage from current x month usage, and then using this forecast for subscription renewal task $\endgroup$
    – seanv507
    Mar 22, 2019 at 12:01
  • $\begingroup$ @seanv507, why not turn that into an official answer? $\endgroup$ Mar 23, 2019 at 1:13
  • $\begingroup$ @seanv507, I have tried to model this data with static models (logistic regressions, random forest), I was getting AUC close to 1 for validation data. This is because the overall feature usage of the attriting customers is significantly lower than the engaged customers as they would stop using the product after few months and wait for the licence to expire. So, I wanted to model this problem with usage behavior at different points in their journey, which could be better suited for the problem at hand. $\endgroup$
    – Vishnu
    Mar 23, 2019 at 16:35

1 Answer 1


the way you describe the fact it is a fixed 12 month contract suggests its inappropriate to treat it as survival analysis, but more like a standard classification problem- does the customer renew or not.

If I understand, the problem is that you want to predict using all the data available ( eg the users who have not completed the full 12 months subscription).

I would suggest splitting the problem into two. Given full 12 months usage patterns predict whether customer will cancel or not (this is the standard classification problem). Secondly build models to predict future usage patterns. So eg you could build a model to predict the next 3 months usage based on the current 3 months (or have absolute rather than relative time predictions). This would allow you to use all consumers who had completed that 6 months period (rather than just customers that had completed the full 12 months). you would then use your forecasted usage patterns to put in your standard classifier. Third step/option would be to build models to predict renewal based on the usage patterns for different time periods. eg inputs might be #months below/above minimum usage, or you could build a model for each time period....


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.