OpenPoly logo
Dashboard

Trades

Review Mini App trade orders, generated fees, and operator earnings.

Trades

The Trades page reports Mini App order activity and the operator fee share generated by those trades.

Dashboard path

Operator Dashboard → Operations → Trades

Required scope: trades:read

What operators can do

  • filter by Operator-local activity date, defaulting to current local month
  • default to processed orders while retaining all operational status filters
  • filter by exact external user ID
  • filter by exact market ID
  • review order ID and executed trade ID
  • inspect compact market title/slug and dedicated Market ID alongside side, outcome, status, and activity time
  • see Gross Trade and Net Trade as signed user cash flow alongside positive generated fees and operator earnings
  • review current-page gross volume and fee/cash-flow footers
  • export all filtered rows to CSV or copy the current page as HTML
  • receive market title, slug, and ID as separate market_title, market_slug, and market_id export columns
  • choose visible columns and display 25, 50, or 100 rows per page

Change the draft controls, then select Apply filters; exports and totals use the applied filters, not unapplied edits. Dates include full days in the operator's timezone. Processed orders use processing time; other statuses use creation time. Results are newest activity first. Reset restores the current operator-local month and processed status.

Summary cards

The page reads the same filtered GET /api/operator/trades result and shows:

  • filtered trade count: summary.trade_count
  • unsigned gross trade volume: summary.gross_trade_external_amount_minor_total
  • generated trade fees: summary.fee_external_amount_minor_total
  • operator earnings: summary.operator_fee_external_amount_minor_total

Fee amounts use authenticated Operator summary.currency_code, not Polynion Credits. API derives each fee's historical Operator-currency equivalent, then applies posted historical fee-share BPS when available. Missing snapshots use current config and increment summary.current_fee_config_fallback_trade_count. All cards summarize all matching rows, not current page only.

Gross Trade and Net Trade match User Portfolio Trade History accounting. Buys display as negative user cash flow and sells as positive. Sell gross reconstructs net wallet credit plus fee; buy net is gross debit less fee. Generated Fees and Operator Earnings retain positive reporting semantics.

Quoted Fee (Credits) is a separate unit from external-currency generated fees. Do not add Credits to currency amounts or deduct fees again from a wallet-cash total already net of those fees. Market PnL accumulates these quoted fees across each user's market lifetime as reference-only columns; it measures confirmed wallet cash, not this activity-date order report.

Status filters

Supported order statuses are listed in /docs/reference/statuses.

Important operator states:

  • processed: trade flow completed
  • failed: the order is recorded as failed; inspect execution and wallet evidence rather than assuming no money moved
  • manual_review: automatic recovery stopped
  • compensation_pending: wallet debit happened and compensation/reversal follow-up may be required

Source API

The page reads GET /api/operator/trades.

Use this page for trade-fee reporting and user/order investigation. Use Balance Ops when the question is about an actual wallet debit, credit, reversal, retry, or manual-review trail.

Escalate a trade discrepancy

Record the applied date range/timezone, status, external user ID, market ID, order ID, and executed trade ID when present. An order status or fee row alone does not establish the wallet outcome. For resolved-market pending or failed/unpaid warnings, use Cash Flow Triage with all three required read scopes and collect the original operation ID/idempotency key. Use Operator Support for the sanitized evidence; never resubmit an unknown wallet mutation under a new key.

Copyright © 2026