Churn rate is an important metric for predicting the lifetime revenue of a customer in a Software-as-a-Serivce (SaaS) business. Similarly, a customer's usage of the SaaS product can give insight into the costs of servicing the customer. In this tutorial we show how to implement a probabilistic model of both churn and usage, using PyMC3, a popular probabilistic programming framework.
Churn rate---the rate at which customers stop patronizing a business---is an important metric for predicting the lifetime revenue of a customer in a Software-as-a-Serivce (SaaS) business. However, to forecast total lifetime value of the customer, the costs associated with the customer must be considered as well. While many models assume a fixed margin per customer, SaaS businesses usually have detailed metrics of a customer's usage of services, leading to a more accurate measure of cost.
In this tutorial we present a joint probabilistic model of both usage and churn, based on the work of Hardie and Ascarza. In this model, both usage and churn are functions of a latent process representing a customer's "commitment level." The commitment level is itself modeled using a hidden Markov model. Given a dataset of actual customer usage metrics, the parameters of the model are estimated using Monte-Carlo simulation.
We will give an overview of the model and demonstrate an implementation with the PyMC3, a popular probabilistic programming framework. We will show several insights to be gained from the model forecasts, including identifying customers at-risk for churn and predicting service capacity demand.
Ref: E Ascarza, BGS Hardie. "A joint model of usage and churn in contractual settings". Marketing Science 32 (4), 570-590