All case studies
client
iGaming Retention

Per-player retention scoring for an online casino

We score each player individually for churn and reactivation, with the features that drove the score, and feed a prioritized worklist into the operator's retention team. Gradient boosting on raw transactions, not LLM guesswork.

Per player
Raw transactions
Gradient boosting
iGaming / Online CasinoEuropeConfidential
// automation architecture
PostgreSQLtrigger
Automationorchestration
AIintelligence
Outputdelivery
24/7, no humans
// The problem

A licensed online casino operator running a self-written platform was doing retention with cohort blasts. Analysts built segments by hand and pushed the same bonus to everyone in the segment, so the signal that a single player was about to go silent got averaged away. An off-the-shelf retention service the operator had tested scored segments, not players, and ran robocalls scripted by the operator with no per-player explanation. The analysts had no audit trail they could trust, and a large share of the calls were getting killed by anti-fraud filters anyway.

// What we built

We built the scoring layer. Four source tables - players, transactions, sessions, game events - aggregate into a per-player feature card covering full history. Account-type flags (real, test, service, bot) filter the training set, and consent flags (marketing, service, self-exclusion, responsible gaming) are checked before any retention trigger fires. A gradient boosting model trained on raw transactions, not pre-aggregated averages, returns two scores per player: churn probability over the next 7 to 30 days, and reactivation probability if already silent. Each score is returned with the features that drove it. The output flows into the operator's existing retention CRM as a prioritized daily worklist - which players to act on, in what order, and why. We do not decide the bonus or the script. The operator owns that. We rank.

// Results
01Scoring core built in roughly two weeks of Claude-assisted development; pilot is running against six-plus months of the operator's history before production rollout
02Per-player churn and reactivation scoring with feature-level explanation - analysts audit why a player is flagged, not just that they are flagged
03Gradient boosting on raw transactions, not LLM scoring - the operator's player payback period is months, and a hallucinated risk score is a real money loss
04Test, service, and bot accounts filtered out of training; self-exclusion and responsible gaming flags checked before any retention trigger fires
05Adapter against the operator's self-written platform via API - no migration off the existing stack
06Scope kept narrow: we own scoring quality and ranking; the operator owns the bonus, the script, and the telco cost

Every retention competitor we looked at scores cohorts and runs the same script across the segment. Our job is one decision per player, with the reasoning attached. The model serves the analyst, not the other way around.

2pizza.team - Engineering note
// Tech stack
PythonXGBoostPostgreSQLFastAPINext.js dashboard for the retention team
Want something similar?

Free 30-min audit. We tell you what to automate and what it costs.

From $1,000
2-6 week delivery
Fixed scope
Book a free audit