I've written and trained a churn model that is scheduled to run every day and make new predictions for the probability of each customer to churn within coming 365 days, from the day the scoring is done.
For example, today is 2024-02-03 and after running the scoring, each of our 3 million customers get a probability (for their churn-propensity) to churn coming 365 days. The output is something like this:
CustomerID Propensity DaysUntilChurn
528395875 0.67 82
493575722 0.98 2
452772672 0.03 354
Where the churn prediction will be 1 if Propensity >= 0.5 else 0. Naturally, the propensity to churn decreases when there are many days left for the customer to place orders before being considered as a churn. Conversely, if the customer has not placed an order within the last 364 days, there is only 1 day left until churn and the probability of this happening is high. DaysUntillChurn = 365 - DaysSinceLastOrder.
I now want to write a program that daily monitors the accuracy of this model. However, the issue is that if I make predictions on 2024-02-03, I'm going to have to wait until 2025-02-03 in order to collect the actual churn data for all customers.
One way I thought of was to save all predictions an entire year back, but unfortunately this is not viable as it entails saving 365 data sets, each with 3 million records.
How do other retail companies monitor the daily accuracy of their churn models? Are there any other tools/metrics to look at when one wants to closely monitor model performance daily?