GH GambleHub

Operator panel and business indicators

1) Panel purpose

The operator panel is an operational summary of the product and operations (players, bets, payments, risk/compliance) with the possibility of drilldown to the cause of the event and action (assign, escalate, pause, promo). The main goals are:
  • give the overall pulse of the business (real time/almost real time);
  • highlight deviations/risks and place of "fire";
  • speed up the solution: from the KPI card → to a specific list/ticket/screen.

2) Roles and personalization

The panel is different for different roles (see "Interfaces by roles and access"):
  • C-level/Directorate: aggregates by brand/region, trends, forecasts.
  • Operations/sports: live load, bets/margin/odds, cancellations.
  • Payments/Finance: Deposit Conversion, TtW, April/Decline, Chargebacks.
  • Risk/compliance: KYC/AML statuses, sanctions, FRM signals, limits.
  • CRM/Marketing: LTV/CAC, Retention/Revaps, Segments/Campaigns.

Personalization: widget order, favorite slices (country/provider/channel), "duty mode" (notifications and large numbers).

3) Interface hierarchy

Hat: date/time zone, brand/geo/display currency selection.
KPI (hero-cards) band: 6-8 key metrics for today + delta to benchmark/yesterday/week.
Trends and distributions: line (GGR/NGR), columns (deposits by method), donuts (mixes).
Operational tapes: alerts (SLA, risk, PSP), task queues.
Drilldowns: clicks deepen to segment/object (payment method → specific rejected).

4) Key KPIs and formulas (basic)

DAU/MAU: Active players per day/month.
New Depositors (ND): new depositors for the period.
Deposit Conversion: registration → first deposit.
ARPPU: 'Revenue/Paying Users'.
GGR: 'Bets − Winnings'.
NGR (net gaming income): 'GGR − Bonuses − Jackpots − Provider Commissions − GGR Taxes'.
Hold (sports): '1 − (Payments/Acceptance of bets)'.
Time-to-Wallet (TtW) -The median time from request for output to receipt.
KYC Pass Rate: 'Passed/Initiated'.
Approval Rate: 'Approved/Requested'.

Chargeback Rate: 'Chargebacks/Processed Payments.'

FRM Alerts/1k Tx: number of fraud signals per 1,000 transactions.
Retention D1/D7/D30: return by cohort.
LTV ^ t: cumulative NGR per user at time t.
RTP (slots): 'Payouts/Bets' by game/provider.

Important: one semantic metric in the data layers for the entire product (no "two GGRs").

5) Widgets and display patterns

KPI card

Title, value (table digits), delta (arrow/percentage), mini-sparkline.
Color: green growth for useful metrics (NGR, conversion), red growth for negative (refusals/chargeback).
Click: drilldown to table/graph with filter.

Trends

Smoothed lines, confidence interval/threshold (SLO).
Today/Week/30 Days/Cohorts radio button.

Distributions

Bar chart: deposits by method, share of deviations by PSP, rates by league/provider.

Live Tape

SLA events (PSP delay, KYC queue), large winnings, load peaks, sanction flags.

Tables

Summable footers, fixed columns, grade/filter, CSV export.

6) Cuts and filters (mandatory)

Time: today/UTC vs locale, hourly intervals, weekly/monthly windows.
Geo/Jurisdiction: Country, Region, License.
Platform/channel: web/app/affiliate.
Payment methods/PSP.
Provider/game/sports/league/market.
User segments: VIP, novice, reactivated, risk profiles.

All filters are composable; URL addressable state, is "Reset."

7) Signals, alerts, thresholds

Static thresholds: TtW> 2h, Approval Rate <80%, KYC backlog> N.
Dynamic (anomalies): deviation from the seasonal model> 3 σ.

Compound rules: "PSP-X failure growth> 5 pp and traffic from GEO-Y ↑."

Channels: curtain in the panel, e-mail/Slack/Push; "accepted/resolved" tracking.

8) Data freshness and performance

SLO freshness: operational KPIs ≤ 60 seconds, aggregations - ≤ 5 minutes, financial reconciliations - T + 1.
"Updated 00:45 back" indicator at the panel level and on the widget.
Front: WebSocket/SSE for increments, batch paging when paused.
Animations - only 'transform/opacity', no heavy filters.

9) Data architecture (very brief)

Streaming: event bus (for example, Kafka) → stream processing (Flink/Spark) → speed-layer (Redis/ClickHouse).
Batch: raw logs → DWH (BigQuery/Snowflake) → storefronts/semantic layer (dbt/metric-layer).
Metrics layer: uniform KPI definitions for all clients (panel, reports, API).
SCD/cohorts: we keep the versioning of attributes and cohorts for retensh/LTV.

10) Multi-brand/multi-geo/multi-currency

Brand/License/GEO selector, stacked or small multiples.
Currency display - in brand account currency + equivalent (see Currency switching).
Time zone - fix for report (brand locale vs operator).

11) A11y, localization, dark theme

Contrast not lower than AA; tab order, 'aria-label' on button cards.
Texts/formats of dates/currencies - by locale; RTL mirroring (see RTL guide).
Dark/contrasting theme for night shifts; focus rings are visible.

12) Anti-patterns

30 + KPI cards "in small scattering" without hierarchy.
Inconsistent formulas of the same metric in different widgets.
Color as the only carrier of meaning.
"Dumb" panel: alerts without CTA and owner.
Data "yesterday" without a freshness indicator.
Blocking loaders in full screen with each filter.

13) Design system tokens (example)

json
{
"dashboard": {
"gap": 12,
"cardRadius": 12,
"kpiHeight": 96,
"sparkHeight": 24
},
"palette": {
"good": "#2e7d32",
"bad": "#c62828",
"warn": "#ef6c00",
"muted": "#607d8b"
},
"motion": { "inMs": 140, "outMs": 100 },
"a11y": { "contrastAA": true, "tabularNums": true }
}

14) Examples of interface snippets

KPI Card (HTML)

html
<button class =" kpi" aria-label =" NGR today, plus 7 percent to yesterday">
<header> NGR today </header>
<div class="value">₴ 12 340 000</div>
<div class="delta up">+7. 1%</div>
<svg class="spark"></svg>
</button>

Semantic metric (pseudo-SQL/DSL)

sql metric NGR as
SELECT SUM(bets. amount - wins. amount - bonuses. amount - fees. amount - ggr_taxes. amount)
WHERE brand =:brand AND ts BETWEEN:from AND:to;

Alert rule (pseudo)

json
{
"if": "psp. decline_rate(country='TR',psp='X') > 0. 15",
"and": "delta('15m') > 0. 05",
"then": { "notify": ["payments-oncall"], "priority": "high", "runbook": "psp-x-declines" }
}

15) Typical iGaming Scenarios

Payments

The "Approval Rate by PSP" widget → drills to the list of rejected with reason codes.
"Time-to-Wallet by method" → SLA card; click - specific queues.

Sports

Live bets/sec, Hold by league, alert for margin deviation.
Overheated markets (sharp skew) → recommendation block/manual limit.

Casino

RTP/volatility by provider, top games/outflow, alert "abnormal RTP

Risk/Compliance

KYC backlog и pass rate; FRM signals; sanction flags.
Clicking on an alert → a player's card with actions (freeze/verify/escalate).

16) Metrics of the panel itself

Engagement panels: DAU panels, time in session, clicks on drilldowns.
Alert MTTA/MTTR: Time to reaction and time to close incident.
Accuracy complaints: calls "numbers do not converge" (<0.5%).
Freshness breaks: Proportion of freshness SLO violations.
Actionability: percentage of alerts followed by action (> 70%).

17) QA checklist

Data and consistency

  • Unified metrics layer definitions.
  • Threshold/color direction correct (bad growth = red).
  • Each widget has a source of time and freshness.

UX

  • Up to 2-3 clicks for key reasons.
  • Filters are cumulative, URL state is addressable.
  • KPI cards are available from the keyboard and Narrator.

Performance

  • Filter switching ≤ 300 ms (incognito profile).
  • No CLS; graphics are virtualized at high volumes.
  • Real time is updated without "twitching."

А11у/Topic

  • Contrast ≥ AA; focus rings are visible.
  • Dark/contrasting theme is readable; color is not the only signal.

18) Documentation in the design system

Компоненты: `KpiCard`, `TrendChart`, `BreakdownBar`, `AlertFeed`, `DataFreshnessBadge`.
Metrics: formula dictionary, units, plus/minus signs.

Guidelines: "How to add KPIs," "How to set alerts," "How to validate sources."

Do/Don't Gallery: overloaded panels vs focus on 6-8 KPIs, color ≠ meaning, drilldown without dead ends.

Brief Summary

A strong operator panel is a single definition of metrics, a clear hierarchy of widgets, instant alerts and clickable reasons. Personalize for the role, show the freshness of the data, keep the action 1-2 clicks from the number and observe availability. Then the "pulse of the product" will become manageable - from payments and KYC to margin and retention.

Contact

Get in Touch

Reach out with any questions or support needs.We are always ready to help!

Start Integration

Email is required. Telegram or WhatsApp — optional.

Your Name optional
Email optional
Subject optional
Message optional
Telegram optional
@
If you include Telegram — we will reply there as well, in addition to Email.
WhatsApp optional
Format: +country code and number (e.g., +380XXXXXXXXX).

By clicking this button, you agree to data processing.