Runoff Function
Run off an existing baseline or historical balance over time.
How does the Runoff Function Work
If you are forecasting active users or revenue, you usually need to handle two separate groups: new incoming users and your existing historical base. The cohort() function handles new additions, the runoff() function handles the decay from a single baseline. This is useful when you don't really care how the historical balance was accumulated, and you have some sense on how they might decay in the future.
Use runoff() to decay your existing, mature portfolio from the moment your actuals end. You define a starting point (an anchor), and apply your retention curve to project how that existing population will decay over future periods.
Underlying Math
Arguments
The function requires three primary series to run.
Balances (Required): The series containing your existing balances (e.g., your historical active users).
Retention (Required): Your retention curve over time.
The retention curve represents cohort age, not calendar dates. The first value represents the start of the runoff, the second value is the retention rate one period after the start of the runoff, and so on. The retention curve always starts from your very first time period, regardless of when your runoff actually starts.
Anchor (Required): Tells the engine exactly where the runoff should start. For example, passing a condition like is_last('Historical') ensures the runoff anchors to the final historical period and begins decaying from that specific balance.