Exploratory Community

How to build a churn model


If my stripe data was all monthly or annually then I would have no issues building a churn model.

The issue that some payments are monthly and others are annual so creating the cancelled column becomes tricky. And I need that cancelled column to build a churn model.

I see 3 possible solutions

Solution A) Initially break the data into monthly and annual, build the models, recombine the precictions.

Solution B) Create more advanced logic for the cancelled column to take into account whether or not someone is still active.

Solution C) Somehow convert all the annual plans into virtual monthly plans with 12 months of payments - this would entail replacing one annual plan transaction with 12 monthly plan transactions

Has anyone had any success solving this problem?

Which way worked best?

Sample code or screenshots would be greatly appreciated


I haven’t tried A, but would make sense if the behavior of annual subscribers and monthly subscribers are significantly different.
About B, simply keeping the canceled column FALSE until the cancel actually happens regardless of yearly or monthly might be a good starting point. If you have a way of knowing subscriber’s intent to end the subscription at the period end before the period end actually comes, you could utilize it to adjust the end month and canceled flag of the yearly subscription on the data.
About C, Exploratory’s Cox Regression Analyatics View or Survival Forest Analytics View takes start date and end date as an input. So subscription data being yearly or monthly would not matter here.

1 Like

I’m working my way down approach B as it seems as though its the easiest solution. Thank you.

1 Like