Phase 72.5.2.11 adds @v2/churn-prediction-model, the player churn prediction
model for accounts likely to stop playing in the next 7 days.
The model composes @iris/analytics retention thresholds and uses
buildV2ChurnPredictionModelSurface to transform hashed-account engagement
telemetry into an interpretable logistic-regression score. It accepts
v2.player.account.created, v2.player.session.started,
v2.player.session.ended, v2.player.session.activity, and
v2.cosmetic.purchased events. Raw account IDs are not accepted or emitted.
Policy#
- Policy ID:
v2-churn-prediction-model-v1 - Source library:
@iris/analytics - Model type: interpretable logistic regression
- Prediction horizon: 7 days
- Required output: churn probability, risk banding, feature driver attribution
- Privacy: account-level joins use
accountIdHash; raw account IDs are never exposed - Retention action guardrail: re-engagement must use cosmetic grants, free-weekend invites, or non-paywall reminders; paywall pressure is forbidden
Output#
The surface emits:
- per-account
churnProbabilityand low/medium/high/critical risk bands likelyToChurnWithin7Daysdecisions using a default 0.65 risk threshold- feature values for days since last session, recent/previous session frequency, session-length drop, active days, purchases, and tenure
- top feature drivers and ethical recommended action for each prediction
- aggregate risk distribution and top at-risk player rows
Gates#
check-v2-churn-prediction-model.py validates the contract, service package,
source tokens, tests, docs, workflow wiring, Horde gates, and the Phase 72
checklist item. Required gates are churn-prediction-model-service-present,
churn-prediction-model-seven-day-horizon,
churn-prediction-model-risk-scoring, churn-prediction-model-feature-drivers,
and churn-prediction-model-ci-wired.
Targeted verification:
pnpm --filter @v2/churn-prediction-model run typecheck
pnpm --filter @v2/churn-prediction-model run test
python V2/ue/Tools/check-v2-churn-prediction-model.py