Operator Dashboard
The Operator Dashboard is the per-casino administration interface. Each operator (casino partner) gets their own isolated dashboard at /admin/operator, scoped to their users, trades, revenue, and configuration. Operators cannot see other operators’ data or access God Mode features.
operator_admin role. Operators can have multiple admin users, each with configurable permissions. Authentication uses the same system as the main platform with an additional operator-scope check.Dashboard (Home)
The landing page shows key performance indicators for the operator’s business at a glance.
KPI Cards
| KPI | Description | Update Frequency |
|---|---|---|
| Total Users | Count of registered users under this operator. Shows new users today. | Real-time |
| Active (24h) | Users who placed at least one trade in the last 24 hours. | Every 5 minutes |
| 24h Volume | Total trade volume for this operator in the last 24 hours. | Real-time |
| MTD Revenue | Month-to-date net player losses (the house edge from spreads and settlements). | Every 5 minutes |
| Operator Share | The operator’s portion of MTD player losses based on the revenue share agreement (e.g., operator keeps 70% of player losses). | Every 5 minutes |
Dashboard Widgets
- Volume chart: 7-day volume trend (bar chart by day)
- Top markets: Top 5 markets by volume for this operator
- Recent trades: Last 10 trades placed by the operator’s users
- Risk alerts: Unacknowledged risk events scoped to this operator
- User growth: New registrations over the last 30 days (sparkline)
Branding
The Branding section allows operators to customize the visual appearance of the embedded Predictu UI to match their casino’s brand identity.
Color Editor
Operators can set the following color tokens, which are injected as CSS custom properties into the embedded iframe:
| Token | Default | Description |
|---|---|---|
--brand-primary | #22c55e | Primary accent color (buttons, links, highlights) |
--brand-secondary | #16a34a | Secondary accent (hover states, active indicators) |
--bg-primary | #0a0f0a | Main background color |
--bg-secondary | #0f1a0f | Secondary background (cards, panels) |
--bg-elevated | #142014 | Elevated surface (modals, dropdowns) |
--text-primary | #e8f0e8 | Primary text color |
--text-secondary | #9ca89c | Secondary text (descriptions, labels) |
The editor provides a visual color picker for each token, with real-time validation to ensure sufficient contrast ratios (WCAG AA minimum).
Logo Upload
Operators upload their logo in PNG or SVG format. Two variants are supported:
- Full logo: Used in the header of the embedded UI. Max dimensions: 200×48px.
- Icon logo: Used as a favicon and in compact views. Max dimensions: 48×48px.
Logos are stored in the operator_assets bucket and served via CDN. The upload interface includes a crop tool for precise sizing.
Live Preview
A live preview panel shows how the embedded UI looks with the current branding settings. It renders a sample market card, trade dialog, and navigation bar using the operator’s colors and logo. Changes are reflected in real-time without saving.
?v=timestamp to their embed URL.Embed
The Embed section generates the code snippet operators need to integrate Predictu into their website.
Code Generator
The code generator produces a ready-to-paste HTML snippet that includes the iframe tag with the correct operator ID, allowed origins, and branding parameters. Operators can customize:
- Width/Height: Fixed dimensions or responsive (100% width)
- Initial view: Market list, specific market, or category
- Theme: Auto-detect (uses branding), or force dark/light
- Features: Toggle visibility of specific UI elements (header, sidebar, footer)
<!-- Predictu Embed -->
<iframe
src="https://app.predictu.com/embed?op=op_abc123&view=markets"
width="100%"
height="700"
frameborder="0"
allow="clipboard-write"
style="border: none; border-radius: 8px;"
></iframe>Origin Management
The iframe only loads when the parent page’s origin matches one of the operator’s whitelisted origins. Operators can manage their allowed origins list:
- Add origin: e.g.,
https://www.example-casino.com,https://staging.example-casino.com - Remove origin: Immediately revokes access from that domain
- Test origin: Sends a test request from the specified domain to verify the embed loads
* or localhost as a production origin. For development, use a separate operator profile with a dedicated API key.Embed Snippet Details
The embed snippet includes a companion JavaScript file that handles PostMessage communication between the parent page and the iframe. This enables:
- Passing the operator’s session token for seamless authentication
- Receiving trade events (trade placed, position updated) in the parent page
- Controlling navigation within the iframe from the parent page
- Responsive height adjustment (iframe resizes to content)
Operator Configuration
The Config section manages operator-specific settings that affect how the platform behaves for this operator’s users.
| Setting | Default | Description |
|---|---|---|
new_tier_limit | $10 | Per-trade limit for new users (max $50) |
regular_tier_limit | $100 | Per-trade limit for regular users (max $500) |
vip_tier_limit | $1,000 | Per-trade limit for VIP users (max $5,000) |
auto_promote_enabled | true | Auto-promote users from new to regular |
auto_promote_days | 7 | Days before auto-promotion eligible |
auto_promote_trades | 5 | Minimum trades before auto-promotion |
daily_loss_limit_enabled | false | Enable daily loss limits |
allowed_categories | all | Which market categories are visible to this operator’s users |
callback_url | null | S2S callback endpoint for trade/user events |
callback_retry_count | 3 | Number of retries for failed callbacks |
Markets
The Markets section shows all prediction markets available to this operator’s users, with operator-scoped analytics.
Market List
A table of all active markets showing: name, category, current YES price, 24h volume (for this operator), total open positions (for this operator), status (active/paused/resolved), and exposure.
Volume Analytics
Per-market volume charts scoped to this operator. Helps identify which markets are most popular with the operator’s user base, informing content strategy and promotional decisions.
Market Controls
Operators have limited market controls compared to God Mode:
- Hide market: Remove a market from this operator’s market list (does not affect other operators)
- Feature market: Pin a market to the top of the list for this operator’s users
- View exposure: See this operator’s exposure on a specific market
Users
The Users section manages the operator’s player base.
Player List
A searchable, filterable table of all users registered under this operator. Columns: username, email, tier, classification, registration date, last active, total volume, total P&L, balance.
Search
Full-text search across username, email, and user ID. Filter by tier, classification, registration date range, and activity status (active/inactive/banned).
User Actions
- Ban user: Immediately blocks the user from logging in or placing trades. Requires a reason. Banning does not affect open positions -they remain until resolved.
- Unban user: Restores access. The user’s previous tier and positions are preserved.
- Adjust balance: Add or remove funds from a user’s balance. Requires a reason and is logged in the audit trail. Common uses: promotional credits, refunds, manual corrections.
- Change tier: Promote or demote a user (subject to operator permissions -VIP promotion may be restricted).
- View detail: Opens the user detail page with ledger, positions, trades, and score.
Trades
A complete log of all trades placed by this operator’s users.
Filters
| Filter | Options |
|---|---|
| User | Search by username or user ID |
| Market | Search by market name or ID |
| Date range | Start and end date pickers |
| Side | YES / NO / All |
| Status | Open / Resolved / All |
| Amount | Min / max amount range |
| Outcome | Win / Loss / Open |
Export
Trade data can be exported to CSV for external analysis. The export respects all applied filters.
Positions
The Positions section provides a view of all positions held by the operator’s users.
Open Positions
All currently open positions. Shows user, market, side, quantity, entry price, current price, unrealized P&L. Sortable by any column. Useful for understanding current exposure from the operator’s perspective.
Resolved Positions
Historical resolved positions. Shows the same columns plus outcome (win/loss), payout amount, and realized P&L. Filterable by date range, market, and user.
Revenue
The Revenue section is where operators track their earnings from the Predictu partnership.
Revenue Sharing Model
The casino operator is the house and takes counterparty risk on all trades. Predictu takes an agreed percentage of net player losses as a revenue share (configured per operator via revenue_share_pct, default 30%). Net player losses are calculated as the sum of spread income and settlement profit - i.e., the total house edge.
net_player_losses = spread_income + settlement_profit
predictu_share = net_player_losses * revenue_share_pct // e.g., 30%
operator_share = net_player_losses * (1 - revenue_share_pct) // e.g., 70%
// Example:
// Net player losses: $10,000
// Predictu gets: $3,000 (30% of player losses)
// Operator keeps: $7,000 (70% of player losses)revenue_share_pct (Predictu’s cut of player losses) is set during operator onboarding and can be renegotiated. Typical rates range from 20% to 40%. Higher-volume operators generally negotiate a lower rate (i.e., they keep more of the player losses).Invoice List
Monthly invoices are listed with: period, net player losses, Predictu share, operator share, status (pending/paid/overdue), and download link (PDF). Operators can also see a running preview of the current month’s projected invoice.
Revenue Breakdown
- By market: Revenue contribution from each market
- By category: Revenue by market category (politics, sports, etc.)
- By user tier: Revenue from new, regular, VIP, and restricted users
- By day: Daily revenue bar chart for the current month
Risk
The Risk section shows risk events scoped to this operator’s users and activity.
Risk Events
Same event types as God Mode (see God Mode > Risk Events), but filtered to only show events involving this operator’s users or markets. Each event shows type, severity, user (linked), market (linked), timestamp, and acknowledgment status.
Available Actions
- Acknowledge: Mark an event as reviewed
- Escalate: Flag the event for God Mode admin review
- Ban user: Quick action to ban the user associated with the event
- View user detail: Navigate to the user’s full profile
Exposure
The Exposure section shows the operator’s exposure across their active markets.
Per-Market Caps
Each market shows: current operator exposure, per-market cap, and utilization percentage. Markets approaching their cap are highlighted in yellow (80%+) or red (95%+).
Operators can see but cannot modify exposure caps. If a cap needs adjustment, the operator must request it from their Predictu account manager or escalate through the dashboard.
Aggregate View
A pie chart showing exposure distribution across market categories, and a gauge showing total operator exposure vs. their allocated cap.
Settlements
The Settlements section provides a history of all market resolutions that affected this operator’s users.
Resolution History
A table of resolved markets: market name, resolution outcome (YES/NO/VOID), resolution timestamp, total payouts to this operator’s users, total house profit/loss, and number of affected positions.
Settlement Detail
Clicking a settlement shows the individual position outcomes: user, side, quantity, entry price, payout, and P&L. This provides full transparency into how each market resolution affected the operator’s user base.
Reports
Operators can generate and download reports for their own data.
Available Reports
| Report | Contents | Formats |
|---|---|---|
| Trade history | All trades for a date range with full details | CSV, JSON |
| User list | All users with tier, classification, volume, P&L | CSV, JSON |
| Revenue summary | Monthly revenue breakdown with operator share | CSV, PDF |
| Position snapshot | All open positions at a point in time | CSV, JSON |
| Risk events | Risk events for a date range | CSV, JSON |
Settings
The Settings section manages the operator’s account-level configuration.
Contact Information
Operator name, primary contact email, billing email, support email, phone number, and company address. This information appears on invoices and is used for communication about incidents and billing.
API Keys
Operators can view and manage their API keys:
- Public key: Used in the embed code and client-side requests. Visible in full.
- Secret key: Used for S2S API calls. Shown only once at creation, then masked.
- Rotate keys: Generate a new key pair. The old keys remain valid for a 24-hour grace period before expiring.
- Key status: Active, expiring (in grace period), or expired.
Callback URL
The S2S callback URL where Predictu sends real-time event notifications. Operators can:
- Set URL: Enter the HTTPS endpoint for receiving callbacks
- Test: Send a PING callback and verify the response
- View logs: See recent callback delivery attempts with status codes and response times
- Configure retries: Set retry count (1–5) and backoff strategy
// Example callback delivery log:
[2025-03-18 14:32:01] POST https://api.example-casino.com/callbacks/predictu
Type: TRADE_PLACED
Status: 200 OK
Latency: 142ms
[2025-03-18 14:31:58] POST https://api.example-casino.com/callbacks/predictu
Type: USER_REGISTERED
Status: 200 OK
Latency: 89msOperator Permissions Matrix
Not all operator admin users have the same capabilities. The following permissions can be assigned per-user within an operator’s admin team:
| Permission | Capabilities |
|---|---|
view_dashboard | View KPIs, charts, and reports (read-only) |
manage_users | Ban/unban users, adjust balances, change tiers (except VIP) |
manage_tiers | Change user tiers including VIP promotion (if enabled) |
manage_branding | Edit colors, upload logo, configure embed |
manage_config | Edit operator-specific configuration settings |
manage_keys | View and rotate API keys, configure callback URL |
export_data | Download reports and export data |
view_risk | View risk events and exposure data |
