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!

Telegram
@Gamble_GC
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.