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 KYC backlog и pass rate; FRM signals; sanction flags. 16) Metrics of the panel itself Engagement panels: DAU panels, time in session, clicks on drilldowns. 17) QA checklist Data and consistency 18) Documentation in the design system Компоненты: `KpiCard`, `TrendChart`, `BreakdownBar`, `AlertFeed`, `DataFreshnessBadge`. 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. 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.Risk/Compliance
Clicking on an alert → a player's card with actions (freeze/verify/escalate).
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%).
UX
Performance
А11у/Topic
Metrics: formula dictionary, units, plus/minus signs.Brief Summary