Operator guideEN

Reporting / Bonus Performance

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

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

Bonus Performance has two views:

  • Aggregated View groups bonus outcomes by bonus item or bonus-performance tag.
  • Detailed View lists player-level bonus activation rows.

The report combines activation counts, converted amounts, banking movement, and revenue fields.

When to use it

  • compare bonus items by activation and conversion results
  • inspect revenue after bonus and correction-style adjustments
  • segment by country, bonus type, or active status
  • audit player-level bonus activations by player id or Click ID in Detailed View

How to read it

In Aggregated View, the visible summary cards show four headline totals for the current query:

  • Bonuses
  • Total Deposits
  • Total NGR
  • Total GGR

The aggregated table is grouped per bonus key. Important reading rules:

  • grouping falls back to bonus id when no dedicated bonus-performance tag exists
  • Marketing Expenses is visible separately and is not subtracted into NGR
  • Status and Bonus Type only constrain activation-side data, not every banking or casino stat in the row

In Detailed View, the visible summary cards change to filtered activation-level totals:

  • Filtered Bonuses
  • Filtered Activations
  • Filtered Bonus Amount (EUR)
  • Filtered Winning Amount (EUR)
  • Filtered Converted (EUR)
  • Filtered Correction (EUR)

The detailed table is one row per user bonus activation and includes activation time, player id, email, Click ID, activation method, bonus metadata, status, bonus amount, original bonus amount, and currency.

Known caveats

  • the selected End Date is sent as the next day, while the service applies an exclusive upper bound
  • Active Only keeps only rows with activity in betting, deposits, or activations
  • withdrawal amount includes both SUCCESS and APPROVED statuses, while withdrawal count uses only SUCCESS
  • currency amounts are normalized before they reach the table
  • page subtitle talks about Bonus Performance Tag, but grouping still falls back to bonus_id when no tag exists
  • GGR is part of the aggregated summary and ordering, but the current aggregated table does not render a visible GGR column
  • Bonus is not one identical predicate across all slices: banking and casino movement use the bonus-performance tag first and fall back to the bonus id, while activation rows use the activation bonus id.
  • current filter controls update the active query immediately; Refresh reapplies the current controls and refetches the active query.
  • CSV export is visible. The export action starts with the active filter snapshot and exports the full filtered result instead of only the visible page.
  • For all countries affects aggregated CSV export only. Detailed export keeps the detailed activation-row format.

Filters that change the result

  • Start Date
  • End Date
  • Aggregated View / Detailed View
  • Bonus
  • Country
  • Status
  • Bonus Type
  • Player ID in Detailed View
  • Click ID in Detailed View
  • Order By
  • Active Only
  • For all countries for aggregated export
  • 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.

Calculations14 topicsOpen details

Grouping key

Explains why one visible bonus row can represent more than one raw bonus id path.

Transform
Banking movement uses the bonus-performance tag first and falls back to the bonus id. Casino movement uses the same tag-first grouping rule. Activation rows use the activation bonus id.

Bonus filter scope

A selected bonus id can match tagged transaction movement and raw activation rows through different source columns.

Transform
The selected Bonus values match the aggregated tag-or-id grouping key for banking and casino movement, while activation rows match the activation bonus id.

GGR

Gross gaming revenue for the grouped bonus row.

Transform
GGR is calculated as bet amount minus win amount.

NGR

Net gaming revenue for the grouped bonus row.

Transform
NGR is calculated as GGR minus bonus payout, cashback, rakeback, adjustment amount, and correction.

Casino stat exclusions

Explains why report GGR and bonus-bet-like movement may not match raw casino transaction totals.

Transform
Base bet/win amounts exclude marketing rows and selected payout/rakeback identifiers. Bonus bet amount additionally excludes correction, adjustment, freespins payout, and marketing rows.

Banking status scope

Withdrawal amount can include approved withdrawals that are not counted in the successful withdrawal count.

Transform
Deposit amount/count use `transaction_type = deposit` and `status_enum = SUCCESS`. Withdrawal amount uses `transaction_type = withdraw` and status `SUCCESS` or `APPROVED`. Withdrawal count uses only `SUCCESS`.

Active Only

Filters out completely inactive bonus rows.

Transform
`Active Only` keeps rows where the backend sees betting, deposits, or activations greater than zero.

Status and type filter scope

The row can still contain banking or casino movement for the same grouped key even when status/type filters mainly constrain activation data.

Transform
`Status` and `Bonus Type` are applied to activation rows; they do not directly filter the banking or casino movement slices.

Immediate filter apply model

Most filter changes reload the table directly; Refresh is mainly a full reapply/refetch action for the current control state.

Transform
Current visible filters update the active report request immediately. Refresh still reapplies the current control state and refetches the report, but it is no longer the only way to apply Bonus, Country, Status, or Bonus Type changes.

Currency normalization

Explains why amounts are comparable across currencies inside the same report.

Transform
Amounts are normalized by dividing source amounts by the stored conversion or exchange rate before grouping.

End Date inclusive control / exclusive service bound

The operator-selected end day is included by the page-side next-day conversion, while the report keeps an exclusive upper bound.

Transform
The page adds one calendar day to the selected End Date before submitting it. The report then applies an exclusive upper bound for banking, casino, and activation slices.

Export pagination override

CSV export is not limited to the currently visible table page.

Transform
The export action starts from the active filter snapshot. The export branch removes visible table pagination and generates CSV from the full filtered result set.

Aggregated vs detailed branch

Aggregated and detailed views answer different questions and should not be compared as the same row grain.

Transform
Aggregated View loads grouped bonus performance with banking and casino movement. Detailed View loads activation rows with users, bonus metadata, currencies, and nearby activation activity.

For all countries export

Use For all countries only when the exported aggregated file should be split by country.

Transform
Aggregated export can replace the normal aggregated CSV rows with country-split rows enriched with country display names. Detailed View uses the detailed activation CSV branch and ignores country expansion.
Filters14 topicsOpen details

Aggregated View / Detailed View

Chooses grouped bonus-performance rows or player-level activation rows.

Type
tabs
Default Value
aggregated
Behavior
Updates active query state immediately and resets page to 0.

Bonus

Selected bonus ids for the active report.

Type
multi-autocomplete
Options Source
Bonus list
Behavior
Updates active query state immediately with the selected bonus values.

Country

User country-code filter.

Type
select
Options Source
Country list
Behavior
Updates active query state immediately. Blank means all countries.

Status

User bonus status filter.

Type
select
Default Value
all
Options
all, ACTIVE, EXPIRED, WIN, CANCELLED
Behavior
Updates active query state immediately.

Bonus Type

Bonus type filter.

Type
select
Default Value
all
Options
all, deposit, freespins, no_deposit, promotion, instant_cashback
Behavior
Updates active query state immediately.

Start Date

Lower date bound for activation, banking, and casino slices.

Type
date
Default Value
one month ago
Behavior
Updates active query state immediately and is serialized as `yyyy-MM-dd`.

End Date

Operator-selected inclusive end day for activation, banking, and casino slices.

Type
date
Default Value
today
Behavior
The page sends the next calendar day; the report applies an exclusive upper bound.

Order By

Aggregated view ranking field.

Type
select
Default Value
deposits
Options
activations, deposits, ngr, ggr
Behavior
Updates active query state immediately and is disabled in Detailed View.

Active Only

Keeps only aggregated rows with betting, deposit, or activation activity.

Type
switch
Default Value
false
Behavior
Updates active query state immediately.

Player ID

Detailed View player id filter.

Type
text
Behavior
Visible in Detailed View; updates active query state immediately with trimmed input.

Click ID

Detailed View marketing tracking tag filter.

Type
text
Behavior
Visible in Detailed View; updates active query state immediately with trimmed input.

For all countries

Export-only option to split aggregated CSV rows by country.

Type
checkbox
Default Value
false
Behavior
Does not reload the table; disabled in Detailed View.

Page

Current server page.

Type
pagination-state
Default Value
0
Behavior
The visible page counter starts at the first page while the request uses the matching server page.

Rows per page

Number of rows requested per page.

Type
pagination-state
Default Value
20
Options
10, 20, 50, 100
Page sections9 topicsOpen details

Filter Bonus Performance

Filter card with immediate controls plus export-only options.

Aggregated summary cards

Four-card summary visible in Aggregated View.

Detailed summary cards

Six-card filtered activation summary visible in Detailed View.

Bonus Performance Report

Aggregated or detailed table for the active query.

Loading bar

Linear progress shown while the active report request is loading.

No data found

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

Table pagination

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

Showing range summary

Footer text showing current visible row range out of `totalCount` and whether rows are bonuses or activations.

Export CSV

CSV export for the active report query.

Metrics11 topicsOpen details

Bonuses

Number of grouped bonus rows in the current report.

Aliases
bonus performance bonuses, grouped bonuses
Formula
COUNT(*) over the grouped `stats` result set after filters and before pagination.

Total Activations

Sum of bonus activations in the current query.

Aliases
bonus performance activations
Formula
SUM(activations) over the grouped `stats` result set.
Comparison Notes
Rendered as `Filtered Activations` in Detailed View; not rendered as a visible card in Aggregated View.

Total Deposits

Total deposit amount attributed to the grouped bonus rows.

Aliases
bonus performance deposits
Formula
SUM(deposit_amount); deposit rows use `transaction_type = deposit` and `status_enum = SUCCESS`.

Total Withdrawals

Total withdrawal amount attributed to the grouped bonus rows in the current query.

Aliases
bonus performance withdrawals, total withdrawals
Formula
SUM(withdrawal_amount); withdrawal amount includes `SUCCESS` and `APPROVED`.
Comparison Notes
Returned by the report summary object, but not rendered as a visible card on the current standalone page.

Total GGR

Gross gaming revenue for the current bonus-performance query.

Aliases
bonus performance ggr
Formula
SUM(bet_amount - win_amount), excluding marketing rows and selected bonus payout/rakeback identifiers from base bet/win amounts.

Total NGR

Net gaming revenue for the current bonus-performance query.

Aliases
bonus performance ngr
Formula
SUM(ggr - bonus_payout - cashback - rakeback_calendar - adjustment_amount - correction).

Marketing Expenses

Separate marketing-cost field returned for the grouped bonus row.

Aliases
bonus performance marketing expenses, marketing amount
Formula
SUM(cash_amount * sign) for casino rows where `is_marketing = TRUE`; win rows add and bet rows subtract.
Comparison Notes
Rendered as a row column, not as a summary card, and not subtracted in the backend NGR formula.

Total Bonus Amount

Summary sum of grouped bonus amount values.

Aliases
bonus performance total bonus amount
Formula
SUM(bonus_amount) over the grouped `stats` result set.
Comparison Notes
Rendered as `Filtered Bonus Amount (EUR)` in Detailed View; not rendered as a visible card in Aggregated View.

Total Amount Converted

Summary sum of converted bonus amount values.

Aliases
bonus performance total converted amount, total converted bonus amount
Formula
SUM(amount_converted) over the grouped `stats` result set.
Comparison Notes
Rendered as `Filtered Converted (EUR)` in Detailed View; not rendered as a visible card in Aggregated View.

Total Correction Amount

Summary sum of grouped correction amount values.

Aliases
bonus performance correction total
Formula
SUM(correction_amount) over the grouped `stats` result set.
Comparison Notes
Rendered as `Filtered Correction (EUR)` in Detailed View; not rendered as a visible card in Aggregated View.

Filtered Winning Amount

Detailed View summary sum of normalized winning amount values for filtered activation rows.

Aliases
bonus performance winning amount, filtered winning amount
Formula
SUM(winning_amount) over the detailed `stats` result set.
Comparison Notes
Rendered as `Filtered Winning Amount (EUR)` in Detailed View only.
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 / 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.

Reporting / Control Verification

Monitoring workspace for integrity verification runs, compliance scoring, baseline control, and component-by-component failure review.