I am trying to work out if a subscription value has done one of the following:

No change - no change from current month to previous month
New business - did not have a subscription the previous month and current month has a subscription
Upsell - current month subscription is higher than previous month
Downsell - current month subscription is lower than previous month
Churn - current month subscription is zero compare to previous month
Recovered - the subscription churned (based on the above definition) however the subscription come back within a year. EG churned in May 17 then the subscription come back Dec 17.

My data consist of date, subscription and amount. From there I need to work out the monthly movement to then be able to show that movement in one of the above buckets.