Logo GH

Forecast outflow of players

Forecast outflow of players

The purpose of outflow forecasting is to identify players at risk of not returning in advance and launch controlled actions (re-activation, RG limiters, personal offers), maximizing value and minimizing harm. Below is the end-to-end framework from data to operation.

1) Definitions and framework

Accounting unit: user (user/master_id) - default.
Churn rule: No target activity ≥ T days (for example, 14/30). Fix activity: ≥1 session/rate/deposit.
Forecast horizon: H days (outflow risk in the next 7/14/30 days).
Cutoff date: date of formation of features; labels should not use the information later than cutoff.

💡 In the passport of metrics: unit, activity, T, H, TZ, exceptions (bots/QA/fraud).

2) Point-in-Time

Target (classification): 'churn _ next _ H = 1' if the player is not active even once in the window (t, t + H] and then fulfills the T rule.
Time-to-event (survival): time to outflow or censorship; good for cap/queue scheduling.
Sliding slices: Generate teaching examples on different dates with lags to keep the future flowing.
Windows of truth: wait for confirmation of T outflow until the mark is fixed (delayed truth).

3) Features and windows

Recency/Frequency/Monetary: days with last activity/deposit, intensity beyond windows 7/ 14/30/90, ARPPU/frequency.
Behavior and content: game categories, variety, run-length, time of day/week.
Marketing: opening fluffs/letters, reactions to offers, unsubscribes.
Risks/RG/fraud: flags and counters, neatly - like guardrails.
Calendar: holidays/matches/salary days, seasonal features (dow, dom, wom).
Identities/devices: platform/OS/device changes, IP/ASN stability.
Online/offline parity: fichestore with the same recipes and cut time.

4) Simulation

4. 1 Classification (outflow risk to H window)

Logistic regression (interpretable), GBM/Random Forest (strong baselines), Tab/Seq-NN.

Thresholds for the cost of errors, not for the "beautiful ROC."

4. 2 Survival/Hazard (time to outflow)

Kaplan-Meier (curve form), Cox PH/AFT, discrete-time hazard (log by day with calendar).
They give the probability of outflow in time, allow you to plan the frequency of contacts and mouthguards.

4. 3 Sequential and hybrids

RNN/TFT/Transformer with temporary features and skip masks.
Hybrid: binary risk and time to event → better decision making.

4. 4 Uplift models

Increase in contact retention is predicted; apply if there is a log of actions/experiments.

5) Evaluation and calibration

Class imbalance: main - PR-AUC, Recall@FPR≤x%, Precision @ k.
Probability calibration: Brier, reliability plots; Platt/Isotonic.
Time: backtesting with folds spread across the calendar (rolling origin).
Stability: variation of metrics across segments (country/channel/platform).
Survival: integral error on the risk curve, calibration S (t).

6) Thresholds, hysteresis and decision policy

Separate the zones:
  • 'score ≥ τ_block' → strong intervention (personal offer/call)
  • 'τ _ review ≤ score <τ_block' → soft contact (push/e-mail)
  • 'score <τ_review' → no effect

Hysteresis: the input threshold is higher than the output threshold so as not to "blink."

Cooldowns: minimum intervals of repeated touches per user/channel.
Guardrails: ROMI≥0, zhaloby≤Kh, RG restrictions, contact frequency.

Decision table example

ConditionContextActionCooldownGuardrails
`risk≥0. 85` & `value_q≥0. 8`VIPpersonal offer L7dROMI≥0
`0. 65≤risk<0. 85` & `no_session≥7д`mass segment. push + e-mail script5dzhaloby≤Kh
`RG_risk≥τ`anypause + RG tip1dFPR≤1%

7) Solution economics

Expected value:
[
EV = p_{\text{uderzhaniya	action} }\cdot LTV_{\text{future}}

p_{\text{vred} }\cdot Harm - Cost
]

Optimize thresholds and channel allocation over EV rather than bare CR.

8) Experiments and causality

A/B: contact/offer strategies; main metric - retention uplift (D7/D30), guardrails - complaints/RG.
Quasi-experiments: DiD/synthetic control during regional rollouts.
Uplift score: Qini/AUUC, uplift @ k.

9) Deploy and online circuit

Scoring: p95 ≤ 100-300 ms; Request idempotence, 'correlation _ id'.
Orchestrator: guaranteed delivery, retry/backoff, DLQ, rate-limit per channel/user.
Solution Log: 'signal→score→decision→action→outcome' with model/policy versions.
Feature parity: identical features online/offline; time slices - strictly up to cutoff.

10) Monitoring and drift

Quality: PR-AUC/Recall @ FPR on sliding window, calibration; share in 'block/review' zones.
Drift: PSI/KL by key features, target share shift, "new" patterns.
Operations: latency, timeouts,% folbacks, contact queue, complaints.
Fairness: differentiation of errors/thresholds by segments; explainability audit.

11) Pseudo-SQL/Recipes

A. churn_next_14 Labeling (Classification)

sql
WITH activity AS (
SELECT user_id, DATE_TRUNC('day', ts) AS d
FROM event_activity
),
snap AS (-- cut-off date
SELECT DISTINCT DATE_TRUNC('day', ts) AS cut
FROM event_activity
WHERE ts BETWEEN:train_from AND:train_to
),
label AS (
SELECT s. cut, a. user_id,
CASE WHEN NOT EXISTS (
SELECT 1 FROM activity a2
WHERE a2. user_id = a. user_id
AND a2. d > s. cut AND a2. d <= s. cut + INTERVAL '14 day'
) THEN 1 ELSE 0 END AS churn_next_14
FROM snap s
JOIN (SELECT DISTINCT user_id FROM activity) a ON 1=1
)
SELECT FROM label;

B. Rolling Features (7/30/90) with point-in-time

sql
SELECT u. user_id, s. cut AS cut_day,
SUM(CASE WHEN a. d > s. cut - INTERVAL '7 day' AND a. d <= s. cut THEN 1 END) AS act_7d,
SUM(CASE WHEN a. d > s. cut - INTERVAL '30 day' AND a. d <= s. cut THEN 1 END) AS act_30d,
SUM(CASE WHEN p. d > s. cut - INTERVAL '30 day' AND p. d <= s. cut THEN p. amount ELSE 0 END) AS rev_30d,
DATE_PART('day', s. cut - MAX(a. d)) AS recency_last_act
FROM snap s
JOIN users u ON 1=1
LEFT JOIN activity a ON a. user_id = u. user_id AND a. d <= s. cut
LEFT JOIN payments p ON p. user_id = u. user_id AND p. d <= s. cut
GROUP BY 1,2;

12) Artifact patterns

Passport of the outflow model (template)

ID/Version: 'CHURN _ 14D _ GBM _ v4'

Target/window: 'churn _ next _ 14', PIT slices by day

Features: RFM, content, marketing, calendar, device

Metrics: PR- AUC≥0. 45, Recall@FPR≤1% ≥ 0. 30, Brier≤X

Calibration: isotonic

Thresholds: 'τ _ block/ τ _ review' with hysteresis

SLO: scoring ≤ 150 ms p95; Generation of offline report ≤ 06:00

Owners, revision date, runbook degradation

Decision-ready report (skeleton)

"Churn 14d: risk by segment, top reasons, forecast re-activation conversions"

Risks: the share of high-risk increased in X/Y platforms (+ Δ pp)

Recommendations: increase the budget of contacts in segment A, change channel B, RG limiters in segment C

13) Security, privacy, ethics

PII minimization: tokenization of identifiers, RLS/CLS.
Transparency - top-features are available to the support.
Ethics/RG: Don't target vulnerable groups with aggressive offers; cap frequency of contacts.

14) Frequent errors

The label uses the future (label leakage), mixing TZ/windows.
ROC-AUC score at 1% target without PR-AUC/Recall @ FPR.
No calibration - thresholds are configured blindly.
Absence of hysteresis/cooldowns → "blinking" of contacts and complaints.
We did not associate the risk with EV/LTV - we "treat" those who are unprofitable to treat.
Online/offline desynchronized feature - quality drops in sales.

15) Check list before loop release

  • T/H/TZ, activity, exclusions determined; PIT procedures are completed
  • Leak-free datasets; rolling validation, benchmarks and calibration
  • Threshold policy, hysteresis, mouthguards and guardrails documented
  • Action orchestrator, idempotence, signal→decision→action audit
  • Monitoring quality/drift/fairness, alerts and runbooks
  • Uplift and/or A/B is ready; decision-ready report (with EV)
  • Model/feature/metric versions, owners, SLO registered

Total

Outflow prediction works only as a system: clear markup without leaks → informative features → a suitable model (classification and/or survival) → metrics, calibration and thresholds from the cost of errors → safe orchestration of actions → monitoring drift and fairness. Such a circuit provides solutions, not just "risks": whom, when and how to contact in order to increase retention and LTV.

Contact

Get in Touch

Reach out with any questions or support needs.We are always ready to help!

Telegram
@Gamble_GC
Start Integration

Email is required. Telegram or WhatsApp — optional.

Your Name optional
Email optional
Subject optional
Message optional
Telegram optional
@
If you include Telegram — we will reply there as well, in addition to Email.
WhatsApp optional
Format: +country code and number (e.g., +380XXXXXXXXX).

By clicking this button, you agree to data processing.