Page body
What this widget shows
Game Reports is the most detailed Dashboard widget in this wave. It supports two different report modes:
GamesProviders
Even though both are shown in one widget, they do not use the same backend path.
When to use it
Use this widget when you need to answer questions like:
- which games generate the most wagered amount or GGR?
- which providers are most active?
- how many active players or bets are tied to a game or provider group?
- what changes when I switch between live/raw and aggregated logic?
How to read it
Games tab
The Games tab reads from the gaming performance report path and supports:
group bygame, subcategory, or countryorder bywagered, won, GGR, NGR, players, or bets- optional country filter
- optional subcategory filter
- search across title, identifier, provider, country, and grouping key
Aggregated Modeand custom-dateApply Filters
The summary chips in this tab are mainly backend-owned and include:
- distinct games
- active players
- bet / win count
- GGR
- NGR
Providers tab
The Providers tab reads from the game report provider path and shows:
- total providers
- total rounds
- total GGR
- average house edge
Those four summary chips are calculated in the frontend from the loaded provider rows.
Avg House Edge is a simple arithmetic average of the visible provider HE % values from the loaded provider response. It is not weighted by rounds, GGR, or player count.
The visible widget actions are:
RefreshExport CSVAggregated ModeStreamer dataon theProviderstab only- custom-date
Apply Filters - FE-only search in the current tab
Data source behavior
This widget has the clearest live-vs-aggregated logic on the Dashboard.
Gamestab:- aggregated mode can switch the backend to analytics schema
- if the selected window includes today, the backend can split the range:
- historical closed days from analytics
- current UTC day from raw/live tables
Providerstab:- uses the game report provider service
- the source badge comes from the provider report response when available
This is the widget where the source badge is the most meaningful for users comparing current-day versus historical performance.
Common questions
Why do Games and Providers not match exactly?
Because they are not built from the same endpoint or grouping path.
What does Aggregated Mode really do here?
In Game Reports, the backend actually consumes the aggregated/live choice. If the period includes today and analytics mode is enabled, the backend can merge historical analytics rows with current-day raw rows.
The FE also force-disables Aggregated Mode when the selected date option becomes today.
Why do I sometimes see an Unknown provider style bucket?
The backend keeps an unmapped-provider fallback when provider mapping is missing.
Why do search results feel broader on the Games tab?
Because the search checks multiple fields: title, identifier, provider name, game type, country code, country name, and group key.
Why do summary chips not shrink when search narrows the table?
Because search is FE-only. The Games summary comes from the backend summary object, and the Providers summary is calculated from the full loaded provider row set before FE search filtering.
Known caveats
GamesandProvidersare different data products inside one widget.- Provider summary cards are frontend-derived from row data.
Gamessummary chips use the backend summary object rather than a frontend recomputation.- For windows that include today in analytics mode, the backend uses a UTC split-and-merge strategy.
Streamer datais only visible on theProviderstab.