What this widget shows
The same comparison widget appears three times, once for each bonus family:
- Tournament Bonus Payouts
- Challenge Bonus Payouts
- No Deposit Bonus Payouts
Each version shows the same six rows across Today, Yesterday, This month, and Selected date. The family is fixed by the widget instance; changing dates never changes the family.
Rows
- Total Payouts is the sum of converted successful payout amounts.
- Transaction Count is the sum of distinct payout-transaction counts produced for the grouped source buckets.
- Unique Players is the largest grouped distinct-player count, not one global distinct count across all currency groups.
- Average Payout is converted payout sum divided by Transaction Count; it is zero when the count is zero.
- Maximum Payout is the largest converted grouped maximum.
- Non-Cash Payouts is the sum of converted non-cash payout amounts.
Only successful bonus-payout transactions assigned to the displayed family are included.
Revenue Payout and Net Cash Hands are not rows in this widget. Older notes using those names refer to a different or obsolete inventory.
Date columns
- Today, Yesterday, and This month are calculated by the report source.
- Selected date uses the accepted Start date and End date values.
- Initial Start date is today minus seven calendar days and End date is today. With inclusive date bounds, that can cover eight calendar dates; it is not a proven rolling 168-hour window.
- Accepting either picker value applies the current pair to the Selected date request. It does not submit or save a persistent form.
The report does not expose one verified business timezone. Its date helper mixes UTC-derived and local-calendar construction before timestamp ranges are queried, so bucket membership can differ around timezone boundaries.
Currency and payout basis
The visible amount-row labels include EUR, but the traced calculation only proves that each currency bucket is divided by the current exchange-rate value loaded when the report runs. It does not establish:
- the configured reporting or base currency;
- the exchange-rate provider or owner;
- the rate timestamp;
- whether the rate is opening, closing, average, or another basis;
- a historical transaction-time rate;
- one shared rounding boundary across all intermediate values.
A missing or zero rate makes that converted bucket contribute zero. Do not use the EUR label alone as proof of the conversion basis.
The traced sources select successful bonus-payout transactions and do not establish separate refund, reversal, or chargeback treatment. These figures must not be treated as independently reversal-aware liability totals.
Actions
- Refresh force-revalidates the current family and date pair. It has no artificial 1.5-second delay and does not submit a Formik form.
- Download CSV exports the same six-row family and active date pair. Export bypasses the dashboard JSON cache path.
- Accepting a date changes the Selected date request immediately; it does not start the same local Refresh spinner.
Common questions
Why can Unique Players look lower than expected?
The source keeps the maximum distinct-player count found in any grouped currency bucket. It does not recompute one deduplicated player set across all currency groups.
Why can the default range show eight dates?
The initial Start date is seven calendar dates before today and the End date is today. Both bounds are included by the report window.
Why do the labels say EUR if the rate basis is not confirmed?
That is the current UI label. The calculation path proves rate division, but not the production reporting-currency configuration or rate governance behind it.