Predictu
Admin

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.

Access: Operator dashboard access is controlled by the 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

KPIDescriptionUpdate Frequency
Total UsersCount 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 VolumeTotal trade volume for this operator in the last 24 hours.Real-time
MTD RevenueMonth-to-date net player losses (the house edge from spreads and settlements).Every 5 minutes
Operator ShareThe 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:

TokenDefaultDescription
--brand-primary#22c55ePrimary accent color (buttons, links, highlights)
--brand-secondary#16a34aSecondary accent (hover states, active indicators)
--bg-primary#0a0f0aMain background color
--bg-secondary#0f1a0fSecondary background (cards, panels)
--bg-elevated#142014Elevated surface (modals, dropdowns)
--text-primary#e8f0e8Primary text color
--text-secondary#9ca89cSecondary 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).

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.

Cache invalidation: After saving branding changes, it may take up to 5 minutes for the CDN cache to refresh. Operators can force a cache bust by appending ?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
Security: Never add * 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.

SettingDefaultDescription
new_tier_limit$10Per-trade limit for new users (max $50)
regular_tier_limit$100Per-trade limit for regular users (max $500)
vip_tier_limit$1,000Per-trade limit for VIP users (max $5,000)
auto_promote_enabledtrueAuto-promote users from new to regular
auto_promote_days7Days before auto-promotion eligible
auto_promote_trades5Minimum trades before auto-promotion
daily_loss_limit_enabledfalseEnable daily loss limits
allowed_categoriesallWhich market categories are visible to this operator’s users
callback_urlnullS2S callback endpoint for trade/user events
callback_retry_count3Number 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
Note: Operators cannot pause trading, resolve markets, set custom spreads, or modify exposure caps. These are God Mode-only actions.

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.

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

FilterOptions
UserSearch by username or user ID
MarketSearch by market name or ID
Date rangeStart and end date pickers
SideYES / NO / All
StatusOpen / Resolved / All
AmountMin / max amount range
OutcomeWin / 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 is negotiable. The 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

ReportContentsFormats
Trade historyAll trades for a date range with full detailsCSV, JSON
User listAll users with tier, classification, volume, P&LCSV, JSON
Revenue summaryMonthly revenue breakdown with operator shareCSV, PDF
Position snapshotAll open positions at a point in timeCSV, JSON
Risk eventsRisk events for a date rangeCSV, 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.
Key security: Secret keys must never be exposed in client-side code. If a secret key is compromised, rotate immediately. The 24-hour grace period ensures the operator has time to update their server configuration without downtime.

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: 89ms

Operator 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:

PermissionCapabilities
view_dashboardView KPIs, charts, and reports (read-only)
manage_usersBan/unban users, adjust balances, change tiers (except VIP)
manage_tiersChange user tiers including VIP promotion (if enabled)
manage_brandingEdit colors, upload logo, configure embed
manage_configEdit operator-specific configuration settings
manage_keysView and rotate API keys, configure callback URL
export_dataDownload reports and export data
view_riskView risk events and exposure data