# Subscription Based Revenue Prediction

My dataset is on revenues from subscription-based (no commitment, can cancel any time). We have people signing up every year, continue paying for a few years and then gradually cancel the subscription.

Total revenue for a year comes partially from subscribers who joined in the previous years (and are still active) and also from those who joined this year.

In this scenario, how can I forecast the revenue for a coming couple of years? In the sample data shown below, we can see how those who joined in FY2003/04 & FY2004/05 are contributing towards revenue for years till FY2017/18.

One possible method I could think of is to add revenues for each Revenue Year and then do a simple time series forecasting for years FY2018/19 & FY2019/2020. But we might be missing valuable information like people who joined very early (during FY2003/04s) tend to stay longer than those who joined in the recent past.

I would appreciate if anyone can suggest any appropriate method to handle this. I am comfortable with Excel, R & Python and most generic machine learning algorithms. Thank you

• Determine your churn rate(s) and new customer acquisition rate. – Luck Feb 4 '20 at 23:01

### Benchmark Model

As @Luck has commented the very basic of statistics would be to use your data to predict what proportion of existing customers cancel subscriptions each year, and how many customers you can acquire each new year.

This method takes no account of the original year of acquisition, nor does it account for customer lifecycle.

To calculate these figures you will need to restructure your data so that you have:

Year    Customers At Start    Cancelled    New Customers
2003    100                   10           20
2004    110                   13           21
2005    118                   etc..


Use this model to forward forecast the next few years.

### Lifecycle Model

You can use aggregate data to determine the probabilities of cancellation if you believe there is a different structure based on life.

This method takes no account of trends in subscriber profiles over the years.

You will need to restructure your data to:

Customer Acquistions    Cancel in 1Y   Cancel in 2Y   Cancel in 3Y   etc..
10000                   1000           150            125


Use this model to forward forecast over the next few years accounting for aging and newly acquired customers.

### Trending Lifecycle Model

If you use the data as structured you can derive a lifecycle model essentially for each starting year. Now the data will be more scattered (if you have small samples) and you may not have an observable trend. If you do have an observable trend you can use it to forward forecast a lifecycle model for future customers. Personally I would definitely construct the above two models first from the data you have. There is danger this model overfits whereas the first two are likely to more generalist.