Operator guideEN

Reporting / Player Exclusions

Audit report for exclusion records, exclusion ownership, and active versus inactive restriction coverage.

How to use this guide

Start with the main guide

Follow the explanation and examples first. Extra definitions and formulas are available below when you need them.

What this page shows

Player Exclusions is the exclusion audit report for restriction records and their current activity state. It combines active or expired exclusions with player identity, exclusion ownership, and record-count context.

When to use it

  • review active versus inactive exclusions
  • filter by exclusion type or exclusion owner
  • inspect how many exclusion records belong to one player

How to read it

The summary cards show the top exclusion counts for the current query:

  • Active Exclusions
  • Self-Exclusions
  • Permanent Exclusions
  • Total Excluded Players

These cards count distinct players in the report summary, not table rows. The table and pagination are record-oriented.

The table is record-oriented:

  • one row is one exclusion record
  • Times Excluded shows how many total exclusion records the player has in report history
  • Status reflects whether that record is currently active or expired

Action and filter behavior

  • Refresh is the primary apply action. It copies the currently edited filter controls into the active query state and immediately re-runs the report.
  • Reset Filters restores the default last-week view: Start Date = today - 7 days, End Date = tomorrow, Status = Active Exclusions, and no user-id or exclusion-type narrowing.
  • Export CSV uses the currently active filter state and requests the full result set rather than the visible page slice.
  • pressing Enter in the filter fields also applies the staged filters.
  • clicking Unique Player ID opens that player's profile.
  • changing page or rows per page reloads the table for the active filter set.

Known caveats

  • Excluded By exists in the report data, but the current page does not expose it as a filter
  • All Exclusions is a visible Status option, but current traced behavior still behaves like active-only instead of truly unfiltered active plus expired data
  • Times Excluded is calculated from all exclusion records for the player, not only the currently filtered page
  • exclusion type is derived from three source families: responsible-gaming limits, restricted-user records, and disabled-user state
  • the visible summary cards expose only four counters; operator, regulatory, inactive, and total-record counters are returned by the report but are not shown as cards
  • Unique Player ID is a clickable chip that deep-links to /player/:userId
  • date filters apply to exclusion_start_date; they do not filter by exclusion end date
  • date replacements expand Start Date to start-of-day and End Date to end-of-day before filtering

Filters that change the result

  • User ID
  • Exclusion Type
  • Start Date
  • End Date
  • Status
  • rows per page
More details

Definitions and formulas

Open only the section you need. The relevant section opens automatically when you request help for a specific item on screen.

Calculations9 topicsOpen details

Exclusion type derivation

One visible exclusion label can come from different restriction sources.

Transform
The report derives exclusion type from responsible-gaming limits, restricted-user records with exclusion reasons, and disabled-user state.

Active status

`Active` and `Expired` are report truth states, not visual-only chips.

Transform
`Status` is derived from exclusion end-date or disabled-user activity state and current time, then filtered by the `showActive` request flag.

All Exclusions status caveat

In the current traced flow, `All Exclusions` behaves like active-only instead of active plus expired.

Transform
The page maps `All Exclusions` to an omitted active-status flag, but the report service defaults an omitted flag to active-only.

Times Excluded

Helps operators see repeated restriction history for the same player.

Transform
`Times Excluded` counts all exclusion records for the player from the exclusions CTE, not only the currently visible filtered subset.

Summary distinct player counts

Visible cards are player counts, not row counts.

Transform
Summary counters use `COUNT(DISTINCT e.user_id)` for active, inactive, permanent, self, operator, regulatory, excluded-by-self, excluded-by-operator, and total player counts. Only `total_exclusion_records` uses `COUNT(*)`.

Refresh and apply flow

Unsaved filter edits do not affect the table until `Refresh` is used.

Transform
The page keeps editable filter controls separate from the active query state. Pressing `Refresh` copies the staged controls into the active state, resets pagination to page 1, and then re-fetches the report.

Default reset window

Reset returns the page to the default last-week active-exclusions audit view.

Transform
`Reset Filters` restores `Start Date = today - 7 days`, `End Date = tomorrow`, and `Status = Active Exclusions`. User-id and exclusion-type filters are cleared.

Date filter scope

The date range is inclusive by commenced date; it does not filter by `Date Ended`.

Transform
Backend filters `exclusion_start_date >= startOfDay(startDate)` and `exclusion_start_date <= endOfDay(endDate)`.

Export full result set

CSV export is for the active filtered result set, not just the current table page.

Transform
The export action sends `limit=1000000`, `pageNo=1`, and `exportCsv=true`; the export path also forces size to `1000000` and offset to `0`.
Columns10 topicsOpen details

Unique Player ID

Clickable player identifier chip that opens the player profile route.

Username

Email

Type of Exclusion

Date Commenced

Date Ended

Reason

Truncated reason text with a tooltip that reveals the full backend reason.

Excluded By

Display name of the exclusion owner. Self-originated rows fall back to `Self`.

Times Excluded

Count of all exclusion records for this player across report history, not only the rows visible on the current page.

Status

Visible chip rendered as `Active` or `Expired`.

Filters6 topicsOpen details

Start Date

Staged lower bound for `exclusion_start_date`; applied by Refresh or Enter.

Type
date
Default Value
today - 7 days

End Date

Staged upper bound for `exclusion_start_date`; the report expands the value to end-of-day.

Type
date
Default Value
tomorrow

User ID

Exact report filter on player id; applied by Refresh or Enter.

Type
text

Exclusion Type

Staged exact filter on the derived exclusion type.

Type
select
Options
All Types, Self-Excluded, Permanent, Operator-Excluded, Regulatory-Excluded

Excluded by

Supported `excludedBy` request filter that is not rendered in the current filter card.

Type
select
Visibility
api_only

Status

Type
select
Options
Active Exclusions, Expired Exclusions, All Exclusions
Caveat
The current `All Exclusions` value omits `showActive`, but the service default is active-only.
Summary cards4 topicsOpen details

Active Exclusions

Visible count of distinct players with active exclusions in the active report query.

Self-Exclusions

Visible count of distinct players with self-excluded rows in the active report query.

Permanent Exclusions

Visible count of distinct players with permanent exclusion rows in the active report query.

Total Excluded Players

Number of distinct players represented by the current result set.

Page sections8 topicsOpen details

Filter Player Exclusions

Filter card with staged controls that become active when `Refresh` is used.

Press Enter in any field or click Refresh to apply filters

Page instruction that Enter applies staged filters.

Player Exclusions List

Record-oriented table where each row is one exclusion record.

Loading bar

Linear progress shown while the active report request is loading.

No exclusions found

Empty table state when the backend returns no rows for the active filters.

Table pagination

Report pagination with row-size options 10, 20, 50, and 100.

Showing range summary

Footer text showing current visible row range out of `totalCount`.

Export CSV

Full-query CSV export using the active filter snapshot.

Metrics10 topicsOpen details

Active Exclusions

Count of distinct players with active exclusion rows in the current query.

Aliases
player exclusions active exclusions
Formula
COUNT(DISTINCT CASE WHEN e.is_active = true THEN e.user_id END)

Self-Exclusions

Count of distinct players with exclusions classified as self-imposed restrictions.

Aliases
self exclusions, player self exclusion count
Formula
COUNT(DISTINCT CASE WHEN e.exclusion_type = 'self-excluded' THEN e.user_id END)

Permanent Exclusions

Count of distinct players with permanent exclusion rows in the current report query.

Aliases
permanent exclusions
Formula
COUNT(DISTINCT CASE WHEN e.exclusion_type = 'permanent' THEN e.user_id END)

Total Excluded Players

Number of distinct players represented by the current exclusion result set.

Aliases
total excluded players, unique excluded players
Formula
COUNT(DISTINCT e.user_id)

Total Exclusion Records

Total number of exclusion records in the current report summary, including records not surfaced as cards.

Aliases
total exclusion records
Formula
COUNT(*)
Comparison Notes
Returned in the summary object, but not rendered as a visible card on the current standalone page.

Inactive Exclusions

Summary-only count of distinct players with inactive or expired exclusion rows in the current query.

Aliases
expired exclusions, inactive player exclusions
Formula
COUNT(DISTINCT CASE WHEN e.is_active = false THEN e.user_id END)
Comparison Notes
Returned in the summary object, but not rendered as a visible card on the current standalone page.

Operator Exclusions

Summary-only count of distinct players with operator-excluded rows.

Aliases
operator excluded players
Formula
COUNT(DISTINCT CASE WHEN e.exclusion_type = 'operator-excluded' THEN e.user_id END)
Comparison Notes
Returned in the summary object, but not rendered as a visible card on the current standalone page.

Regulatory Exclusions

Summary-only count of distinct players with regulatory-excluded rows.

Aliases
regulatory excluded players
Formula
COUNT(DISTINCT CASE WHEN e.exclusion_type = 'regulatory-excluded' THEN e.user_id END)
Comparison Notes
Returned in the summary object, but not rendered as a visible card on the current standalone page.

Excluded By Self

Summary-only count of distinct players whose exclusion source type is self.

Aliases
self owned exclusions
Formula
COUNT(DISTINCT CASE WHEN e.excluded_by_type = 'self' THEN e.user_id END)
Comparison Notes
Returned in the summary object, but not rendered as a visible card on the current standalone page.

Excluded By Operator

Summary-only count of distinct players whose exclusion source type is operator.

Aliases
operator owned exclusions
Formula
COUNT(DISTINCT CASE WHEN e.excluded_by_type = 'operator' THEN e.user_id END)
Comparison Notes
Returned in the summary object, but not rendered as a visible card on the current standalone page.
More help

Related pages

Reporting

Canonical entrypoint for standalone reporting pages outside the main Dashboard widgets.

Reporting / Affiliate Events Report

Audit log of the events and saved amounts the platform sent to the affiliate system, with per-currency successful totals, CSV export, suspicious-traffic visibility, and a guarded force-send override.

Reporting / Bonus Performance

Grouped bonus performance report for activations, amounts, deposits, withdrawals, GGR, and NGR by bonus item.

Reporting / Card Approval Rates

Snapshot report of card deposit approval rates for NetworxPay, Paydex, and Carouseller, split by Trusted and NonTrusted players, with today versus the previous 30 days and today top decline reasons.

Reporting / Change Notification Detail

Detail page for one audit entry, including actor metadata, description, and before/after comparison views.

Reporting / Change Notifications

Audit list for recorded configuration, administrator, and system change entries with filters for actor, entity, and change type.