We count churn based on subscription status. We have also tried switching to using subscription/customer min&max dates as the subscription start&end and counting churn as the month after the subscription end date. But doing it in streamlit made the charts seem really off.
I think we should address this at the data model layer. This would involve adding logic to standardize the subscription_status field since I think different platforms may have different values for it. Maybe something like active, on-hold, cancelled, inactive. We could make sure cancelled is only valid for the month after a subscription ends. And when counting # churns in a given month we would just look where status = cancelled.
This is because currently we are counting churn as where status = inactive. This may be defined differently per platform, also a subscription could potentially persist through several months as inactive but we don't want to wrongly count it.
We count churn based on subscription status. We have also tried switching to using subscription/customer min&max dates as the subscription start&end and counting churn as the month after the subscription end date. But doing it in streamlit made the charts seem really off.
I think we should address this at the data model layer. This would involve adding logic to standardize the
subscription_statusfield since I think different platforms may have different values for it. Maybe something likeactive, on-hold, cancelled, inactive. We could make sure cancelled is only valid for the month after a subscription ends. And when counting # churns in a given month we would just look where status =cancelled.This is because currently we are counting churn as where status =
inactive. This may be defined differently per platform, also a subscription could potentially persist through several months asinactivebut we don't want to wrongly count it.