Operator guideENplayersreportkpimetrics

Players / KPI Summary

Grouped player-level KPI snapshot inside the player workspace, covering player info, deposits, withdrawals, casino totals, bonus cost, and predictive metrics.

Reader view

Clean portal guidance

This page keeps the operator explanation, field and action descriptions, and screenshots visible without exposing repo paths, raw sidecars, or editorial-only implementation details.

Narrative content

Page body

What this page shows

Player KPI Summary is the densest summary surface in the player workspace. It groups dozens of player-level metrics into operator-readable cards such as player info, casino stats, deposits, withdrawals, bonus and rakeback, live-casino activity, game activity, predictive values, and FE fallback fields.

When to use it

Use this tab when you need a compact snapshot of the player without opening multiple other tabs.

It is most useful for:

  • lifetime or cumulative player totals
  • recent deposit and withdrawal context
  • bonus-cost and rakeback review
  • quick retention or LTV-style signals

How to read it

The page is grouped by business domain rather than by raw backend field names. Current FE groups include:

  • Player Info
  • Casino Stats
  • Deposit Info
  • Withdrawal Info
  • Bonus & Rakeback
  • Live Casino Stats
  • Games & Activity
  • LTV & LTP
  • Misc
  • Others

Treat this screen as a snapshot card wall, not as a transactional history.

The FE also lets operators:

  • collapse or expand KPI cards
  • hide specific categories with the category filter menu
  • trigger a KPI rebuild request for the current player

Known caveats

  • The FE reads this data from /api/core/users/:userId/kpi, not from the standard /api/admin/* report routes.
  • The payload is a persisted KPI snapshot from nx.user_kpi_summary; it is not a live transactional report query.
  • Rebuild goes through the core KPI update route and marketingIdentifyService, and can switch to stored-procedure mode when useProcedureKPISummary is enabled in system settings.
  • A rebuild request can legitimately return without a full recalculation when core activity-window or minimum-interval guards decide the snapshot is still fresh enough.
  • Labels like Total NGR and Total GGR on this tab must be interpreted from the core KPI payload, not from generic market terminology.
  • The Others card is a FE fallback bucket for non-empty payload keys that are not assigned to one of the curated KPI groups. It is a presentation fallback, not a backend business category.
  • LTP here means lifetime-to-profit horizon metrics derived by the advanced KPI model. They are distinct from player-level Predicted Player LTV.
  • High-value fields that can fall into Others include support keys such as key1, key2, visitCountBeforeRegistration, lastKpiRebuildAt, lastKpiSourceAt, and lastKpiSyncAt.

Verification status

  • status: verified_backend_and_core
  • last verified: 2026-04-18
  • note: FE route, core controller/service, persisted nx.user_kpi_summary owner, rebuild path, and KPI-related system settings are traced. Metric-level values are documented as core-owned snapshot fields unless a narrower upstream formula is explicitly traced elsewhere.
Calculation notes

Calculations

calculation

Player KPI snapshot

Formula Text
Core-owned KPI payload returned by `GET /api/core/users/:userId/kpi`, backed by the persisted `nx.user_kpi_summary` row for the selected user.
Operator Note
This tab is a grouped snapshot surface. Treat visible totals as persisted KPI fields, not FE-computed aggregates.
Verification Status
verified_backend_and_core
calculation

KPI grouping

Formula Text
The FE groups raw KPI payload keys into operator sections such as Player Info, Casino Stats, Deposit Info, and LTV & LTP.
Operator Note
Group headers are FE presentation only. They do not change the underlying metric values.
Verification Status
verified_backend_and_core
calculation

Others fallback group

Formula Text
Any non-empty KPI payload key not assigned to a curated FE group is rendered inside the FE-only `Others` card.
Operator Note
`Others` is a presentation fallback bucket, not a backend business category.
Verification Status
verified_backend_and_core
calculation

KPI rebuild action

Formula Text
The FE calls `POST /api/core/users/:userId/kpi`; the controller passes `forceRebuild` from body/query/header into `updateUserKpiSummaryService`, which delegates to `marketingIdentifyService` and can use stored-procedure mode when core KPI settings enable it.
Operator Note
Rebuild affects payload freshness and source recalculation, not the FE grouping rules.
Verification Status
verified_backend_and_core
calculation

Total NGR

Formula Text
Core-owned persisted KPI field `nx.user_kpi_summary.total_ngr`, exposed in FE as `userKpiSummary.totalNgr`.
Operator Note
Read this value as the player's stored KPI snapshot field, not as a live ad hoc report calculation.
Verification Status
verified_backend_and_core
calculation

Total GGR

Formula Text
Core-owned persisted KPI field `nx.user_kpi_summary.total_ggr`, exposed in FE as `userKpiSummary.totalGgr`.
Operator Note
Read this value as the player's stored KPI snapshot field, not as a live ad hoc report calculation.
Verification Status
verified_backend_and_core
calculation

KPI procedure mode

Formula Text
When `useProcedureKPISummary` is enabled in core system settings, KPI rebuild can call `sp_update_user_kpi_summary` before the row is re-read from `nx.user_kpi_summary`.
Operator Note
The exact upstream source mix can differ by deployment mode, but the FE always reads the same core snapshot route.
Verification Status
verified_backend_and_core
calculation

Bonus Cost and Available Marketing Budget

Formula Text
`computeBonusMetrics` builds `bonusCost` as `totalAmountConverted + totalRakebackCalendarWins + 0.1 * (totalBonusBets - totalBonusWins) + 0.1 * totalDepositAmountWithBonus`, then derives `availableMarketingBudget` as `totalGgr * 0.2 - bonusCost`.
Operator Note
The same builder also computes 30-day variants and the ratio fields used for bonus-cost budgeting.
Verification Status
verified_backend_and_core
calculation

Bonus Cost Ratio guard cases

Formula Text
`computeBonusMetrics` returns the ratio field as `1` when GGR is negative, `0` when cost is zero, `999` when GGR is zero but cost is positive, and otherwise `bonusCost / totalGgr`.
Operator Note
This explains why the FE can show `999%` instead of a normal percentage when the player has cost but no GGR base.
Verification Status
verified_backend_and_core
Field dictionary

Fields

field

Global User ID

Cross-brand or cross-system player identifier when present in the KPI snapshot.

Visual Type
identity
field

Brand Code

Brand code stored in the KPI snapshot for multi-brand context.

Visual Type
text
field

User ID

Internal player identifier mirrored inside the KPI payload.

Visual Type
identity
field

Email

Player email copied into the KPI snapshot from the profile summary builder.

Visual Type
text
field

First Name

Player first name copied into the KPI snapshot from the profile summary builder.

Visual Type
text
field

Last Name

Player last name copied into the KPI snapshot from the profile summary builder.

Visual Type
text
field

Date of Birth

Date-of-birth field carried into the KPI snapshot from the profile summary builder.

Visual Type
date
field

Language Code

Current profile language code copied into the KPI snapshot.

Visual Type
text
field

Country Code

Current player country code copied into the KPI snapshot.

Visual Type
text
field

Currency Code

Current player currency code copied into the KPI snapshot.

Visual Type
text
field

Last Login

Last login timestamp copied into the KPI snapshot from the profile summary builder.

Visual Type
datetime
field

Affiliate PID

Affiliate ownership or referral identifier shown in the player info group when present.

Visual Type
identity
field

Balance

Current player balance copied into the KPI snapshot from the profile summary builder.

Visual Type
amount
field

Total NGR

Net gaming revenue value returned by the player KPI payload.

Visual Type
amount
field

Total GGR

Gross gaming revenue value returned by the player KPI payload.

Visual Type
amount
field

Total Deposit Amount

Lifetime deposit amount for the player in this summary payload.

Visual Type
amount
field

Total Deposit Count

Lifetime number of deposits surfaced by the KPI payload.

Visual Type
count
field

Total Deposit Amount With Bonus

Deposit total that includes bonus-linked deposit participation from the payment KPI builder.

Visual Type
amount
field

Last Successful Deposit Method

Last successful deposit method string returned for quick payment-context checks.

Visual Type
text
field

Payment Methods

Combined payment-method summary returned by the payment KPI builder.

Visual Type
text
field

Total Withdrawal Amount

Lifetime withdrawal amount for the player in this summary payload.

Visual Type
amount
field

Total Withdrawal Count

Lifetime number of withdrawals surfaced by the KPI payload.

Visual Type
count
field

Last Withdrawal Date

Timestamp of the player's latest withdrawal in the payment KPI summary.

Visual Type
datetime
field

Failed Payment Count

Count of failed payment attempts exposed by the KPI payload.

Visual Type
count
field

Bonus Cost

Bonus spend or cost value attached to the player KPI payload.

Visual Type
amount
field

Bonus Cost Ratio From GGR

Ratio between computed bonus cost and player GGR, with guard handling for zero or negative GGR.

Visual Type
ratio
field

Total Rakeback Calendar Amount

Calendar-based cumulative rakeback amount shown in the bonus and rakeback group.

Visual Type
amount
field

Total Rakeback Calendar Amount Last 30 Days

Recent 30-day rakeback-calendar amount exposed by the bonus and rakeback KPI builder.

Visual Type
amount
field

Available Marketing Budget

Remaining marketing budget derived from player GGR and the computed bonus-cost model.

Visual Type
amount
field

Available Marketing Budget 30 Days

30-day version of available marketing budget after recent bonus-cost deductions.

Visual Type
amount
field

Total Amount Converted

Total converted amount exposed in the bonus and rakeback section.

Visual Type
amount
field

Live Casino Lifetime GGR

Live-casino-only lifetime GGR value returned by the KPI payload.

Visual Type
amount
field

Live Casino First Played Date

Earliest live-casino activity timestamp returned by the play-per-type KPI builder.

Visual Type
datetime
field

Live Casino Last Played Date

Latest live-casino activity timestamp returned by the play-per-type KPI builder.

Visual Type
datetime
field

Live Casino Lifetime Bet Count

Live-casino-only lifetime bet count from the play-per-type KPI builder.

Visual Type
count
field

Live Casino Lifetime Bet Amount

Live-casino-only lifetime bet amount from the play-per-type KPI builder.

Visual Type
amount
field

Live Casino Lifetime Win Count

Live-casino-only lifetime win count from the play-per-type KPI builder.

Visual Type
count
field

Live Casino Lifetime Win Amount

Live-casino-only lifetime win amount from the play-per-type KPI builder.

Visual Type
amount
field

Top Game Name

Game title surfaced as the top or most important game signal in the KPI payload.

Visual Type
text
field

Top Game Image

Thumbnail URL for the top game returned by the game KPI builder.

Visual Type
text
field

Top Game Provider Name

Provider name attached to the top-game signal in the game KPI builder.

Visual Type
text
field

Top Provider Name

Provider with the highest counted gameplay volume in the game KPI builder.

Visual Type
text
field

Favorite Device Type

Device-preference signal derived by the KPI device builder.

Visual Type
text
field

Total Game Count

Total game count shown in the games and activity group.

Visual Type
count
field

Most Played Game Name

Most frequently played game title returned by the game KPI builder.

Visual Type
text
field

Biggest Win Game Name

Game title attached to the player's biggest recorded win in the game KPI builder.

Visual Type
text
field

Biggest Win Bonus Type

Bonus-type hint inferred for the player's biggest win in the game KPI builder.

Visual Type
text
field

Last Activity

Last activity timestamp or marker exposed in the games and activity group.

Visual Type
datetime
field

Churn Probability

Predictive churn signal used to prioritize player follow-up.

Visual Type
ratio
field

Predicted Player LTV

Predicted lifetime-value-style estimate for the individual player.

Visual Type
amount
field

Predicted Segment LTV

Predicted LTV estimate for the matched player segment rather than the single player.

Visual Type
amount
field

Predicted Segment LTP Days

Predicted lifetime-to-profit horizon in days for the matched player segment.

Visual Type
number
field

Predicted Segment LTP Months

Predicted lifetime-to-profit horizon in months for the matched player segment.

Visual Type
number
field

LTP Days

Player-level lifetime-to-profit horizon in days returned by the advanced KPI model.

Visual Type
number
field

LTP Months

Player-level lifetime-to-profit horizon in months returned by the advanced KPI model.

Visual Type
number
field

Key 1

Low-level support value that can appear in the FE `Others` card when non-empty.

Visual Type
text
field

Key 2

Low-level support value that can appear in the FE `Others` card when non-empty.

Visual Type
text
field

Visit Count Before Registration

Number of visits attributed before the player registered, exposed only when present in the KPI snapshot.

Visual Type
count
field

Last KPI Rebuild At

Timestamp of the latest rebuild attempt recorded by the KPI pipeline.

Visual Type
datetime
field

Last KPI Source At

Timestamp used by the KPI pipeline to track the newest contributing source event.

Visual Type
datetime
field

Last KPI Sync At

Timestamp of the latest external sync recorded in the KPI snapshot.

Visual Type
datetime
Operational notes

Notes

item

The FE supports a force-rebuild header `x-kpi-force-rebuild` on update calls.

item

The FE groups KPI payload keys into named cards and sends any remaining non-empty keys to the `Others` card.

item

`getUserKpiSummaryService` returns the persisted `UserKpiSummary` row; the FE does not compute the KPI payload itself.

item

`updateUserKpiSummaryService` delegates rebuild to `marketingIdentifyService`.

item

KPI rebuild mode is influenced by core settings such as `useProcedureKPISummary` and `kpiSummaryForceRebuild`.

item

Rebuild eligibility is also affected by activity-window and minimum-interval guards inside the marketing KPI service.

item

Visible live-casino, game-highlight, and bonus-cost fields on this page are formed by the `play.ts`, `playPerType.ts`, and `game.ts` builders, not by FE-only reshaping.

Related references

Related pages

pagePlayers / Banking

Banking tab inside the player workspace with transaction filters, a paginated banking grid, analytics cards, CSV export, and automatic-withdrawal availability.

pagePlayers / Detail Workspace

Main player workbench at `/player/[playerId]` with tabbed sections, player-level actions, and modal-based operator workflows.

pagePlayers / Fraud Detection

Fraud-detection tab inside the player workspace with fraud risk assessment, related fraud reports, IP analysis, and identity-graph filtering.

pagePlayers / Game Report

Per-player game or provider report inside the player workspace, filtered by date option and grouped either by game or by provider.

pagePlayers / Inbox

Inbox tab inside the player workspace for reviewing sent notifications, filtering by read state or notification type, and resending or deleting messages.

pagePlayers / KYC Status

KYC tab inside the player workspace for browsing user documents, checking third-party verification state, and approving, rejecting, or re-requesting documents.