Traders
The Traders tab is where you discover, rank, and shortlist the traders worth paying attention to. It’s the primary entry point into Polymarket Analytics: a searchable, sortable table of every active trader with a comprehensive performance profile attached to each one.
Choosing what you’re looking at: lifetime vs slice
Two dropdowns above the table decide which set of metrics you’re seeing:
- Filter by category: pick a market tag (Politics, Crypto, Sports, etc.) or leave as
All categories - Filter by time:
Last 24 hours / Last week / Last month / Last 3 months / Last 6 months / All time
Together these define a slice. The default (All categories, All time) is each trader’s lifetime stats. Any other combination filters the underlying positions before computing the metrics. The performance columns (Score, PnL, W/L, $W-Win %, PF, Sharpe, Sortino, Max DD, Kelly, RAR) reflect whatever slice you’ve selected. The Trader name and the Active timestamp are always global.
This is the primary mental model to bring: you’re not looking at a fixed leaderboard, you’re looking at the leaderboard for whatever slice you chose. Switch the slice and the table re-sorts itself around traders who are strong in that window.
For a deeper explanation of when to use a slice vs lifetime, see Sliced Metrics.
Using the Trader Table
Columns
| Column | What it means |
|---|---|
| Trader | Display name (falls back to truncated wallet address). Avatar and verified badge shown when available. |
| Pos. | Total positions (open + closed) |
| Score | Trader Score (0 to 100, color-coded). Details below. |
| PnL | Total profit/loss in USD for the selected slice |
| W/L | Win and loss count |
| $W-Win % | Dollar-weighted win rate. Weights each position by size, not just count. A trader who wins big and loses small reads higher than the raw count would suggest. |
| PF | Profit Factor (gross profit / gross loss). Above 1.0 means net profitable. |
| Sharpe | Risk-adjusted return: (avg return − risk-free) / volatility. Higher = better return per unit of risk. |
| Sortino | Like Sharpe but penalizes only downside volatility. Higher = better return per unit of bad risk. |
| Max DD | Largest peak-to-trough equity decline, shown as both percent and absolute dollars |
| Kelly | Kelly Fraction, optimal bet size based on the trader’s edge and odds. Higher = stronger edge. |
| RAR | Risk-Adjusted Return: total return divided by max drawdown. A simpler complement to Sharpe. |
| Active | Time since the trader’s most recent trade |
Most columns have hover tooltips with longer explanations.
Sorting and search
Click any column header to sort; click again to flip direction. Default is PnL descending (most profitable first within the current slice). The search bar matches by display name or wallet address; results are debounced.
Pagination
20 traders per page. Previous/Next buttons at the bottom.
Adding a trader to a filter (Manage Whitelist / Blacklist)
Hover any row and two icons appear next to the trader name: a green + (whitelist) and a red + (blacklist). Click either one to open the Manage Whitelist or Manage Blacklist modal.
The modal has two controls: a Create new filter button at the top, and a Manage inclusion/exclusion dropdown below. The dropdown opens a searchable list of every filter you own, with the trader’s current status against each one. The mental model: “this is where I decide which of my filters care about this trader”.
For each filter row in the dropdown:
- The right-side affordance shows Add (when the trader isn’t on this side) or Remove (when they already are). It reveals on hover or keyboard arrow.
- A row marked Blocked indicates the trader is already on the opposite side of that filter. A tooltip explains: a trader can’t be on both the whitelist and blacklist of the same filter.
- The
(N)next to each filter name is how many traders are already in that side’s list. A quick sanity check before you add another.
If none of your existing filters fit, click Create new filter to spin one up with the trader pre-added on the chosen side.
Advanced Mode
The Traders tab includes an Advanced mode for ad-hoc discovery: set criteria, see what matches, and if the results look useful, save them as a Filter with one click. Use it to test ideas before committing to a saved filter, or to validate that traders you’ve already shortlisted still meet your bar in a recent slice.
Switching to Advanced mode
Toggle from the standard table view into Advanced mode using the Advanced button at the top of the tab. In Advanced mode, the table is replaced by a criteria panel on the left and results on the right.
Picking a slice
A Stats filter row appears with two dropdowns: Category and Time. The criteria you set are evaluated against the trader’s sliced metrics for that combination, for example “Sharpe above 1.5 over the last 30 days within Politics”.
This is the key reason to use Advanced mode over the saved-filter flow: saved filters evaluate Trader Criteria against lifetime stats, but Advanced mode lets you ask “who’s on a hot streak in this category right now?” The default (All categories, All time) is lifetime, matching the saved-filter behavior.
For when to use slicing vs lifetime, see Sliced Metrics.
Setting criteria
The left-side panel shows all available criteria fields. Set min/max ranges to narrow your results. Inputs are debounced (~600ms). Results update shortly after you stop typing.
| Field | Range | What it filters |
|---|---|---|
| Trader Score | 0 to 100 | Composite quality metric |
| $-Weighted Win Rate | 0 to 100% | Dollar-weighted percentage of winning closed positions |
| Sharpe Ratio | -∞ to +∞ | Risk-adjusted return |
| Sortino Ratio | -∞ to +∞ | Like Sharpe but only penalizes downside volatility |
| Total PnL | -∞ to +∞ | Cumulative profit/loss in USD for the slice |
| Max Drawdown % | 0 to 100% | Largest peak-to-trough equity decline |
| Kelly Fraction | 0 to 100 | Optimal bet-sizing fraction. Higher = stronger edge. |
| Closed Positions | 0+ | Track-record depth in the slice |
| Total Trades | 0+ | Total individual trades |
| Profit Factor | 0+ | Gross profits / gross losses |
| Total Volume | 0+ | Total dollar volume traded |
| Risk-Adjusted Return | -∞ to +∞ | Total return / max drawdown |
| Market Categories (tags) | (none) | OR-logic: trader has activity in any selected tag |
The same fields are available in saved Filters, but here you can experiment without saving anything.
View modes
Bucketed Distribution View
Shows how traders distribute across metric ranges. For each dimension (e.g., Trader Score), you see buckets like “70 to 80” with the count of traders in that range and aggregate stats (average PnL, average Sharpe, average win rate).
This view answers shape-of-the-population questions: “How many traders have a Sharpe above 2 in this slice?”, “What’s the average PnL of traders with win rates between 60 and 70%?”
Available dimensions: Trader Score, $-Weighted Win Rate, Sharpe Ratio, Sortino Ratio, Total PnL, Max Drawdown %, Kelly Fraction, Closed Positions, Total Trades, Profit Factor, Total Volume, Risk-Adjusted Return.
List View
A filtered, sortable table of individual traders matching your criteria. Same columns as the main Traders tab. Click any row to navigate to the detail page. 20 rows per page.
Save as Filter
Once you’ve found criteria that surface interesting results, click Save as Filter. This takes you to the Filter Builder with your criteria pre-populated, ready to name and save. From there, you can attach Automations to automate alerts or copy trading.
Note: the saved filter evaluates Trader Criteria against lifetime stats, not the slice you used in Advanced mode. If your criteria depend on a recent slice (e.g. “Sharpe > 2 over 30 days”), the saved filter won’t reproduce that behavior. Instead use Advanced mode to identify a list of traders that survive in that slice, then copy them into the filter’s Trader Whitelist.
Typical workflows
Find traders with current edge in a category:
- Set stats category to “Politics”, stats time window to “Last 90 days”
- Set Trader Score min
70, Closed Positions min20 - Switch to List view, sort by Sharpe Ratio descending
- Click into top 5 to spot-check the equity curves on each profile
- Save as a filter or add the survivors to an existing filter’s whitelist
Validate your existing whitelist still works:
- Switch to Advanced mode with a slice like
(All, 30d) - Set a stricter version of your filter’s criteria (e.g. higher Sharpe minimum)
- Switch to List view
- Cross-reference with traders currently in your filter’s whitelist. Anyone missing from the recent-slice results is a candidate to remove
Trader Score
The Trader Score is a composite 0 to 100 metric combining percentile rankings across five dimensions:
| Dimension | What it measures |
|---|---|
| Performance | Total returns and PnL |
| Risk Management | Drawdown control, position sizing discipline |
| Consistency | Stability of returns over time |
| Edge | Win rate, profit factor, ability to find value |
| Experience | Trade count, market diversity, time active |
Color codes:
| Range | Label | Color |
|---|---|---|
| 85 to 100 | Excellent | Green |
| 70 to 84 | Strong | Light green |
| 50 to 69 | Average | Yellow |
| 30 to 49 | Below average | Orange |
| 0 to 29 | Poor | Red |
Traders below the minimum closed-position threshold for the active slice show no Trader Score (a placeholder is rendered). See Sliced Metrics, Eligibility.
Trader Detail Page
Click any row to open the full trader profile. Like the Traders tab, the detail page has its own Filter by category and Filter by time dropdowns at the top. Switching them re-slices every metric and chart on the page (the URL preserves your selection).
Four tabs:
Performance
The default tab. Combines a summary card grid with the trader’s realized equity curve below.
Summary cards include: Realized PnL, Wins / Losses, Total Positions, Trade Frequency, Last Active, Sharpe Ratio, Sortino Ratio, Max Drawdown, Risk-Adjusted Return, Trader Score, Profit Factor, Total Volume, Total Trades, Open Positions, and (when present) Markets the trader is active in. Every card respects the active (category, time window) slice from the dropdowns at the top of the page.
Trade Frequency is reported in fills per unit of time. Polymarket records each on-chain OrderFilled event as a single fill, so a multi-fill order produces multiple events; the rate the card shows is fills per window (/hr, /day, /wk, or /mo, auto-scaled to the trader’s pace).
The realized equity curve below the cards shows cumulative realized PnL over time, downsampled for smooth rendering. Each closed (and resolved) position is a step in the curve. Use this to see when the trader made their money: steady accumulation, single big winner, or recent drawdown all look distinct on the chart. A caption above the chart shows the curve’s start and end values, time range, and how many closed positions feed it.
Open Positions
Currently active positions:
| Column | Description |
|---|---|
| Market | Market question |
| Outcome | Outcome held (e.g. “Yes” or “No”) |
| Status | Position state (open, pending, etc.) |
| Size | Token count |
| Entry | Average entry price |
| Current | Current market price |
| Unrealized PnL | Current profit/loss with % return |
Sortable by any column. Click a row to jump to the market detail page.
Closed Positions
Fully exited positions:
| Column | Description |
|---|---|
| Market | Market question |
| Outcome | Outcome held |
| Status | Closed / resolved |
| Entry | Average entry price |
| Realized PnL | Final profit/loss with % return |
| Closed | When the position was exited |
Default sort: most recently closed first.
Trade History
Every individual buy/sell:
| Column | Description |
|---|---|
| Date | Trade timestamp in ET |
| Side | BUY or SELL |
| Shares | Token count |
| Price | Execution price |
| Value | USDC value (shares × price) |
| Outcome | Outcome traded |
| Tx Hash | Polygon transaction hash, linked to Polygonscan |
Sortable by every column except Tx Hash.
Adding to filters from the detail page
The trader detail header has the same green and red + buttons as the trader rows on the Traders tab. They open the same Manage Whitelist / Manage Blacklist modal. Convenient when you’ve drilled into a trader’s profile and want to add them to a filter without going back.
Important notes
- All PnL and performance metrics are gross. Polymarket trading fees are not deducted. Factor that in when sizing edge.
- Metrics may show no value if the trader has too few closed positions in the active slice. That’s a feature, not a bug. See Sliced Metrics.
- Trader stats are recomputed on a rolling cadence; live trade activity (the “Active” column) updates faster than the underlying metrics.