1
$\begingroup$

I want to define customer churn accurately for the data showing seasonal patterns of not-purchasing.

Our customers purchase on the regular basis most time of the year, with approx. 97% of all orders having less than 31 days gap between them. However, about 75% of our customers will have at least 1 (max 9) long breaks between two orders: ranging from 32 to 200 days each. This pattern is characteristic for festive seasons: Christmas, Easter, summer holidays etc. Even though those orders with long gaps account for about 3% of all orders, less than 1% of them will become a "final" or last order, so they are not good at predicting churn.

How could I approach this problem to be able to better define and then model churn? Any suggestions are welcome. Feel free to ask for more info if needed

thanks, Kasia

$\endgroup$
1
$\begingroup$

I guess one way to model that problem is to assume that on normal days the waiting times between visits are distributed as some reasonably "compact" distribution, for example $\tau \sim Exp(1/2)$ however in festive season the waiting times are distributed as a mixture of original distribution and some much more extended distribution, for example N(20,5$^2$). You can then fit for those parameters (you may want to replace the normal and exponential distribution by something else). Here is an example likelihood for the waiting time between visits in a festive season. $$P(\tau|t_0,t_1,s_1,f) = f \exp(-\tau/t_0) + \frac{1-f}{\sqrt{2\pi} s_1} \exp (-\frac {(\tau-t_1)^2}{2s_1^2})$$

$\endgroup$
  • $\begingroup$ thanks, @sega_sai, it makes conceptual sense to me, but I'm not sure how I could apply it in practice. For example, how would it help me to decide on the cutoff of inactive days that would classify someone as churned or not? I program in R, if you could give me some hints how to approach this solution in this environment, it would be great, otherwise perhaps there's a term or procedure that describes it better that I could look up specifically for R? Thanks for your help $\endgroup$ – Kasia Kulma Nov 28 '16 at 14:23
  • $\begingroup$ I'm not R user, so I can't help there. But as a simplified practical advice, I'd probably start from collecting the delta's in shopping times for the non-festive times. Fit the the distribution of those by some model (say exp(-t/t0) with maximum likelihood (google how to do it in R). Then separately fit the festive times distribution with the mixture model from my post. And then for each individual either evaluate the likelihood ratio between mixture model and simple exp(), or use the mixing fraction f, to indicate that that the customer took a break. $\endgroup$ – sega_sai Nov 28 '16 at 21:30
0
$\begingroup$

After much research of different approaches, I'm going to try defining

area of extreme inactivity with very high probability to churn. This idea really makes sense from business point of view -- instead of detecting churners the day the leave the game forever, we're now focusing on early detection and prediction of disinterested players, and have several weeks to incentivize them to keep playing

The approach was quite well described in this article . I'm still happy to hear from the StackExchange community about alternative approaches

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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