Churn, subscription, dunning
  • 01 Feb 2024
  • 7 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Churn, subscription, dunning

  • Dark
    Light
  • PDF

Article summary

Subscription statuses

Subscription statuses within the system can exist in one of four states.

Subscription TypeDescriptionNotes
COMPLETED User has an active subscription and should have access to your platform. The subscription record is updated from webhook notifications from payment providers like (IOS, Android, Roku, and Web).If the user has a valid subscription, we keep them as 'COMPLETED'. For example, when a user is due for renewal, we call the IOS/Android/Roku API to retrieve the auto-renew status value. If their “auto_renew_status” is 1, the subscription is renewed.
If a user is already subscribed and in a completed state, you cannot extend a user's entitlement period.
When the "auto_renew_status" is "0", then the subscription is cancelled. If the expiry date is in the past, then the user's status is updated to "Cancelled".
CANCELLEDWhen a user cancels the subscription (Voluntary churn), then the subscription status is updated to CANCELLED state.

 





SUSPENDED A user account can be suspended because of payment failure. User must resubscribe to gain access to SVOD content.


DEFERRED_CANCELLATION When a user cancels an active subscription before the end of the billing cycle. This means disabling the auto-renewal of their credit card. Users can access content until the end of the subscription date. After that, the status automatically changes to CANCELLED.
Deferred users won't be able to apply pre-applied offer codes as they have already turned off the auto-renewal.

Users cannot upgrade with DEFERRED_CANCELLATION status, they should be in a completed state. If they wish to upgrade, you can cancel the current subscription and ask the user to purchase the Annual subscription or the user can wait till the expiry of their monthly subscription and can purchase after that.


                                                                                                 Workflow for subscriptions in the Cancelled and Suspended states

Other subscription statuses

The other possible statuses can be found in "listSubscription" OR "listPurchases" API. This is different from the ListPayments API.

Note
Google Play store purchases can be in PAUSED/HOLD state typically due to declined credit card payment. ViewLift analytics considers these statuses as Active subscriptions until they are SUSPENDED. In other words, the COMPLETED, DEFERRED_CANCELLATION, HOLD, and PAUSED are considered Active subscriptions.

Subscription Lifecycle and Statuses: the Case of Peter

This is an overview of the subscription lifecycle and the different statuses associated with Peter's subscription in the ViewLift platform.

Subscription Statuses

1. Completed

  • Peter has an active subscription to a recurring $10 monthly plan.
  • He has access to the purchased content as long as he continues the subscription.
  • At the beginning of each billing cycle, Peter's credit card is charged $10.
  • The billing cycle runs from the start date (e.g., February 1) to the end date (e.g., March 1).
  • This process repeats at the end of every cycle unless Peter cancels his subscription or ViewLift fails to collect the payment.

2. Deferred_Cancellation

  • If Peter decides to cancel his subscription before the end of the billing cycle, the status changes to Deferred_Cancellation.
  • Peter still retains access to the content until the end of the current billing cycle (e.g., until March 1).
  • After the billing cycle ends, ViewLift changes the status to Cancelled, and Peter loses access to the content.
  • Peter can re-subscribe to regain access to the content.

3. Cancelled

  • If Peter cancels his subscription, the status changes to Cancelled.
  • Peter will not have access to the content unless he re-subscribes.

Suspended

  • If Peter did not cancel the subscription but ViewLift fails to process the payment for renewal, then depending on the error, ViewLift can either retry charging later (this is what we call dunning). In this state, Peter loses access to paid content.
  • Dunning involves sending failure emails and multiple payment retry attempts to collect the payment. 
  • When all retries fail, his subscription enters the Suspended status.
  • If dunning is successful, Peter's subscription is renewed, and he regains access to the content.
  • If dunning fails, Peter's subscription remains suspended, and he cannot access the content.

Dunning

Dunning is a process to manage payment failures and reduce churn rate.

The screenshot above illustrates the Dunning workflow. ViewLift tried to charge the user on Feb 7th, as part of the renewal and retried 5 times as part of the dunning and all the tries failed.

Dunning allows ViewLift to retry transactions when a payment fails to go through autorenewal. The behavior and actions during dunning are as follows:

  1.  Dunning Enabled: If dunning is enabled for your account in AppCMS, the following actions take place:
        - Failed Payment Attempts: ViewLift will attempt to process the payment again after each failed attempt.
        - Failure Emails: For each failed attempt, you can set up email notifications to be sent to the dunning users.
        - Retry Schedule: ViewLift follows a retry schedule for payment attempts. Here's an example of a dunning schedule:
                - 1st failed attempt: Retry after 1 day from the 1st failed attempt.
                - 2nd failed attempt: Retry after 3 days from the previous failed attempt.
                - 3rd failed attempt: Retry after 5 days from the previous failed attempt.
                - 4th failed attempt (final): The subscription will be suspended.
  2.  Dunning Disabled: If dunning is not enabled for your account in AppCMS, the behavior is as follows:
         - Immediate Suspension: If a payment fails, the user's subscription will be immediately suspended, and they will lose access to the content.
         - Update Card Information: An email will be sent to the user informing them of the failed payment and requesting them to update their card information.

During the dunning process, Peter will still have access to the content. However, if he decides to cancel the subscription while in dunning, his subscription status will be changed from "Completed" to "Cancelled," and he will lose access to the content. ViewLift stops renewal attempts if the user cancels while in dunning.

Note that the billing cycle for dunning users is not updated until a successful payment is processed. For example, if Peter was supposed to be charged on March 1 and is still in dunning by March 7, his billing cycle will still show the start date as February 1st and the end date as March 1st. However, if the payment becomes successful in one of the subsequent attempts, the new billing cycle will start on March 1st and end on April 1st, 2022.

Notes:

  • It is not possible to upgrade a subscription for an account that is in the dunning state. 
  • If the card fails after the free trial, the user account will be suspended. If dunning is enabled, we will retry the user's payment.

Churn

We count a user as churned the day their subscription status changes to Suspended or Cancelled. If Peter is suspended or cancelled for any reason on April 1st, 2022, he is counted in the churn the same day. If there is no dunning, the user is suspended with effect from March 1st and will be considered as churned on March 1st. On the other hand, if the user is on dunning and cancels his subscription on March 7, this will be the day he is counted as churned.

Calculating subscriber churn rate in Billing

Churn rate = (Number of churned subscriptions / Total number of subscriptions) * 100

1. When a user subscribes to your platform, they are added to the Subscribed Users list.

2. When a user's subscription expires or they cancel auto-renewal, then their account is suspended and the subscriber is added to Churn and deducted from the Subscriber list.

3. When the expired subscriber again re-subscribes, then the subscriber is added back to the Subscribers list but not deducted from Churn.

All Subscriptions = New subscriptions + Re-subscriptions + Recurring subscriptions

Calculating churn rate

To calculate churn rate, we take a reporting range, such as from September 17th to September 24th. During this period, we track the daily churned subscriptions which may be as follows:

  • September 17th: 27 churns
  • September 18th: 27 churns
  • September 19th: 40 churns
  • September 20th: 47 churns
  • September 21st: 78 churns
  • September 22nd: 129 churns
  • September 23rd: 83 churns
  • September 24th: 27 churns

In this case, the total churn for the given reporting range is 458.

To calculate the churn rate, ViewLift compares the churn total for the selected range to the churn total for the corresponding period before. In this example, let's assume the churn total for the 8 days before (from September 9th to September 16th) is 252. Then the churn rate is calculated as:

Churn rate = ((458 - 252) * 100) / 252 = 81% increase in churn rate.

This calculation helps us understand the change in churn rate over time based on the comparison of churn numbers between different periods.

Notes

  • All in-app purchases and renewals are handled by the respective app stores. ViewLift can't charge the users but only sync the subscription status from the respective stores. Once we receive the webhook from the app store, or when the user opens the app, the updated status gets synced.  For STRIPE, ViewLift can charge the users from the next renewal date.

Q. How to reactivate a suspended subscription?
When a user account goes into a suspended state, this is usually due to failed payment. Historically, users in this state need to resubscribe to regain access. The second option to reinstate entitlement is to change via the user database. However, note that manually modifying the database is not recommended unless there's specific intent to do so such as payment gateway issues. 


Was this article helpful?