How it works
The model learns from history: how players behaved in the weeks before they left. Every day it gives each active player a risk score from 0 to 1. The strongest signals:
- A broken rhythm: a usual deposit day or interval has been missed. It is the earliest signal of churn.
- Falling bets and deposits against the player's own average, not the average for the base.
- Failed deposits: several declined payments in a row.
- Withdrawals: withdrawing the whole balance, a slow or rejected withdrawal.
- Complaints and support requests that have not been resolved.
How to use it
A score above the threshold triggers an action matched to the reason for the risk. A declined payment: another payment method. A complaint: resolve the issue first. A broken rhythm: a message the same day with their game. If an offer is needed, it comes on the player's usual terms, without raising the deposit. Players who have already left need reactivation.
Players with self-exclusion, limits, risk signs or an open dispute over money get no offers, whatever their score. If a player has set a limit or said they want to play less, that is their decision, not churn for CRM.
How to measure
The model's accuracy is also checked on the control group: what share of the flagged players left without any action. And separately: what share of all players who left had been flagged by the model in advance.
Common mistakes
- A bonus for everyone the model flags. Some players would have stayed anyway, and some leave because of payments and complaints that a bonus does not fix. Costs go up, with no effect.
- No control group. Without one, you cannot tell whether the action kept the player or they were never going to leave.
- The model is not updated. The product, traffic and payments change, and old signals predict less well. Check the forecast against actuals every month.