A breakdown of churn prediction for sports
Anthem’s churn models process user bet settlement data in real time. After a bet settles, the churn models ingest this data and evaluate the player’s experience based on various attributes (attributes may change depending on the operators’ data and preferences)
Player Experience: (Attributes)
- BetId: TicketId
- SelectionIds: NON-WINNING Ticket Selection ItemIDs
- lossPct: Amount lost as a percentage of the highest among the 5 previous losses
- Bets24h: Number of bets placed in the last 24 hours
- BetsPerDay: Average number of bets per day
- ActiveDays: Activity in the last 7 days
- ActiveDaysPerWeek: Average activity per week
- Stakes24h: Total stake amount in the last 24 hours
- StakePerDay: The average stake per day
- StakeAmount: The stake amount of the triggering ticket
- BetType: The type of the triggering ticket/bet
- TotalOdds: The total odds of the current triggering ticket
- LossAmount: The loss amount of the existing triggering ticket
- BetsLost: Number of consecutive lost bets
- BetsLostLossAmount: The cumulative loss amount from a series of consecutive lost bets
Suppose a player is identified as a potential churner. In that case, a reason code is assigned to the player and an output message (API payload) is sent back to the operator enabling the operator to take appropriate actions.
Reason codes:
Here are some of the reason codes Anthem assigns to players that determine why a user is likely to churn (click on each of them to see their description in our glossary)
Here’s an example of an output message sent to the operator - API Payload:
{
"reasonCode": 2,
"schema": 3,
"playerId": 2620637,
"sessionKey": "527493046",
"expirationTime": 1670317250278,
"playerExp": {
"betId": "527493046",
"selectionIds": "1163504926,1163504927",
"lossPct": 0.25,
"bets24h": 1,
"betsPerDay": 5,
"activeDays": 7,
"activeDaysPerWeek": 4,
"stakes24h": 3.32,
"stakePerDay": 18.702222222222222,
"stakeAmount": 4.4,
"betType": "AKO",
"totalOdds": 2.18,
"lossAmount": -5,
"betsLost": 3,
"betsLostLossAmount": -15
}
}
NOTE:
All player attributes, experiences, and reason codes can adapt based on data availability, the type of data operators provide, and the operator's specific needs.