Airavat is in Private Alpha. Request early access at airavat.xyz

Filters

Filters define which trades you care about. They combine trader performance criteria, market attributes, trade parameters, and manual whitelists/blacklists into a reusable configuration. Every Automation is powered by a filter.

Looking for starting shapes? Most users build one of four canonical filter setups (Whitelist, Cohort, Hybrid, or Specialist). See Filter Setups for step-by-step recipes. This page is the component-level field reference.

Creating a Filter

  1. Go to the Filters tab
  2. Click the + button to open the Filter Builder
  3. Enter a Filter Name (required)
  4. Configure one or more components (see below)
  5. Click Save

The Filter Builder opens with three components active by default: Trader Criteria, Market Criteria, and Trade Criteria. You can remove any component you don’t need, and add Whitelists or Blacklists using the dropdown menus.

Filter Components

A filter is a stack of components, each answering a different “should this trade match?” question. There are two kinds:

  • Criteria describe a quality bar: the trader has to be good enough, the market has to be liquid enough, the trade has to be big enough. Set thresholds, then any trader/market/trade above the bar passes.
  • Whitelists and blacklists are manual overrides: a curated list of specific traders or markets you want to include or exclude regardless of the criteria. Use them when you’ve spent time validating a list and want to follow it directly, or when you want to permanently exclude something noisy.

A filter can combine up to seven components: Trader Criteria + Whitelist + Blacklist (trader side), Market Criteria + Whitelist + Blacklist (market side), and Trade Criteria. The combination logic is OR within each side, AND across sides. See How Components Combine below. At least one component must have constraints for the filter to save.


Trader Criteria

Use this when you want to follow a class of traders rather than specific addresses: “smart whales” rather than “this list of 20 wallets”. Set thresholds on the metrics that capture what “smart” means to you (Sharpe for risk-adjusted return, Trader Score for an opinionated composite, Closed Positions for sample-size, etc.). Any trader whose lifetime stats clear all the bars matches.

Set min and/or max for any combination:

FieldWhat it meansRangeExample use
Win RatePercentage of closed positions that were profitable (dollar-weighted)0 to 100%Min 55, traders who win more than they lose
Sharpe RatioRisk-adjusted return. Above 1 is good, above 2 is excellent-∞ to +∞Min 1.5, strong risk-adjusted performers
Sortino RatioLike Sharpe but penalizes only downside volatility-∞ to +∞Min 2, strong risk-adjusted performance ignoring upside vol
Total PnLNet profit/loss across all closed positions in USD-∞ to +∞Min 5000, meaningfully profitable traders
Total VolumeTotal dollar volume traded across all positions0+Min 100000, traders with real skin in the game
Max Drawdown %Largest peak-to-trough decline in portfolio value0 to 100%Max 30, exclude traders with large drawdowns
Kelly FractionOptimal bet sizing based on win rate and payoff ratio. Higher = stronger edge0 to 100Min 10, traders with meaningful edge
Risk-Adjusted ReturnTotal return divided by max drawdown. A simpler complement to Sharpe.-∞ to +∞Min 5, return that justifies the worst drawdown
Closed PositionsNumber of positions closed or resolved0+Min 20, sufficient track record
Total TradesTotal individual trades executed0+Min 50, experienced traders
Profit FactorGross profits / gross losses. Above 1 = profitable overall0+Min 1.5, consistently profitable
Trader ScoreComposite 0 to 100 score across performance, risk, consistency, edge, experience0 to 100Min 70, strong overall traders

Trader Criteria are evaluated against a trader’s lifetime stats, not a sliced view. If you want to filter on recent form (e.g. “Sharpe > 2 over 30 days within Politics”), use Advanced mode in the Traders tab to identify the survivors and copy them into the Trader Whitelist on this filter. See Sliced Metrics for the full lifetime-vs-slice mental model.

Market Categories (OR logic): Also in this section. Select one or more tags (e.g., “Politics”, “Crypto”). Matches traders who have positions in markets with any of the selected tags.


Market Criteria

Use this to restrict where a trade can happen. Two common reasons: liquidity hygiene (“only markets deep enough that I won’t take 5% slippage”), and category focus (“only crypto markets” or “only politics markets that aren’t about a specific past event”). The keyword filters let you target or exclude very specific events by question text.

Constrains which markets the trade must occur in:

FieldWhat it meansExample use
Neg RiskWhether the market uses negative risk (allows trading “No” directly). Options: Any, Yes, No”Yes”, only neg-risk markets
VolumeTotal dollar volume traded on the marketMin 100000, liquid markets
LiquidityCurrent order book depth. Higher = lower slippageMin 50000, deep markets
Days RemainingDays until market resolutionMin 7, Max 90, medium-term markets
TagsCategory tags (OR logic). The market matches if it carries any selected tag”Politics” + “US Elections”, politics or US elections markets
KeywordsFilter by text in the market question or description. Each keyword is contains or not contains; multiple keywords are AND’d togethercontains "election" + contains "president" + not contains "2020" matches every market whose question contains both “election” and “president” but not “2020”

Trade Criteria

Use this to gate on the individual trade rather than the trader or the market. Two main use cases: filtering out small noise trades by setting a minimum dollar size (whale-only filters), and trading at specific price levels (e.g. “only trades on outcomes priced under 30 cents” if you’re hunting underdog bets). The Side field is fixed to BUY because filters trigger on entries; exits are handled by the automation’s own settings.

Applied to each individual trade as it happens:

FieldWhat it meansRangeExample use
SideLocked to BUY. Only buy trades trigger filters; exits are handled by the automation’s settingsBUY onlyN/A
Trade Size ($)Dollar value of the trade (size × price)0+Min 1000, whale-sized trades only
Last Traded PricePrice of the outcome token (0 to 1). Lower = less likely outcome, higher = more likely0 to 1Max 0.85, trades on underdog outcomes

Trader Whitelist

Use this when you’ve already validated a specific list of traders (via Advanced mode in the Traders tab, manual research, or Manage Whitelist from a trader profile) and want to follow them directly without relying on metric thresholds. Common pattern: criteria-driven filter for discovery, whitelist-driven filter for the traders you actually trust enough to copy with money.

Search by name or wallet address to add them. When a whitelist is active and there are no Trader Criteria, only trades from these addresses can match. When both are active, the trader can pass either side: they match if they’re on the whitelist or meet the criteria.

Trader Blacklist

Use this to permanently exclude specific traders without disturbing the rest of the filter: for traders you’ve watched and decided not to follow, traders you’ve identified as wash-traders, or anyone you want to keep out of an automation’s exposure.

Blacklists always win: a blacklisted trader never matches, regardless of any criteria they’d otherwise clear or any whitelist they’re on elsewhere.

Market Whitelist

Use this for narrowly-scoped strategies: a single market or a small handful you want to follow specifically. The pattern is the same as Trader Whitelist: with criteria active, the market can pass either side.

Market Blacklist

Use this to permanently exclude specific markets or entire categories. The blacklist takes a mix of individual markets and tags: adding a tag like “Sports” excludes every market with that tag from this filter, useful for filtering out a category that’s noisy for your strategy. Blacklists always win.


How Components Combine

The match logic is OR within each side, AND across sides:

  • Trader side: the trader passes if trader is on Trader Whitelist OR meets Trader Criteria
  • Market side: the market passes if market is on Market Whitelist OR meets Market Criteria
  • Trade side: the trade meets Trade Criteria
  • Blacklists always win, applied first: a blacklisted trader / market / category is excluded before any of the above is evaluated

A trade matches the filter when: trader side AND market side AND trade side AND not blacklisted.

This shape is the reason whitelists are useful even when criteria exist: they widen, not narrow. A trader who’s on the whitelist passes the trader side regardless of whether they meet the metric thresholds. The same is true for markets.

Tag logic, both sections use OR:

  • Trader Criteria → Market Categories: trader is active in any selected tag
  • Market Criteria → Tags: market carries any of the selected tags

Validation Rules

  • At least one component must have constraints. You can’t save an empty filter.
  • If you have no trader criteria and no trader whitelist, then Trade Criteria must include at least Trade Size or Last Traded Price

Filter Detail Page

Click any filter row to open the detail page. There are three tabs: Traders, Markets, Trades. The Traders and Markets tabs combine a paginated historical view (the universe currently matching the filter) with a live WebSocket overlay that prepends new traders/markets as they generate their first matching trade in this session. The Trades tab is purely live: no historical view, every row is a trade that arrived since the page opened.

New WebSocket entries flash briefly when they arrive so you can spot them. Streamed entries also keep a persistent dim background after the flash fades, so you can tell session-arrived rows apart from historical ones at a glance. Click any trader or market row to jump to its detail page.

Traders Tab

The trader universe currently matching the filter (paginated 20 per page) plus any new traders that have generated a matching trade during this session (prepended on top while you’re on page 1).

ColumnWhat it shows
TraderDisplay name (falls back to truncated wallet address). Avatar and verified badge shown when available.
Pos.Total positions held by the trader (open + closed)
ScoreTrader Score, color-coded (green ≥ 85, success ≥ 70, warning ≥ 50, orange ≥ 30, destructive below)
PnLTotal PnL across all closed positions, USD
W/LWins / Losses count
$W-Win %Dollar-weighted win rate
PFProfit Factor
SharpeSharpe Ratio
SortinoSortino Ratio (downside-only volatility)
Max DDMax Drawdown %, with absolute dollar amount in parentheses
KellyKelly Fraction %
RARRisk-Adjusted Return

Markets Tab

The market universe currently matching the filter (paginated) plus newly-matched markets prepended via WebSocket.

ColumnWhat it shows
QuestionMarket question (falls back to truncated condition ID)
TagsUp to three market tags
LiquidityCurrent order book depth, USD
VolumeTotal market volume, USD
EndsResolution date in ET

Trades Tab

Every matching trade in real time, newest first.

ColumnWhat it shows
DateTrade timestamp in ET
TraderTrader name (clickable)
MarketMarket question (clickable, with full question in tooltip)
OutcomeYes / No or other outcome label
SideBUY or SELL badge (BUY in primary color, SELL in destructive)
SharesShare count
PriceOutcome price (0 to 1)
ValueDollar value of the trade (shares × price)

The Trades tab is purely session-scoped: closing the page clears the table; reopening the filter starts a fresh live feed. The Traders and Markets tabs always re-fetch the current universe from the backend on open, so historical context is preserved across page loads.

Filter list, coverage counts

Each row on the Filters list has a Counts column showing how many traders and markets currently meet the filter criteria, plus an as of timestamp:

12,034 traders
3,891 markets
as of 8m ago

These are coverage numbers, not match-rate predictions: the trader count is the number of traders whose lifetime stats meet the trader-side criteria; the market count is the number of currently-active markets meeting the market-side criteria. They tell you how broadly or narrowly the filter is scoped. A filter showing “1,500,000 traders / 800,000 markets” is essentially every trade on Polymarket; “200 traders / 50 markets” is a tight beam.

When a filter is just-saved or just-edited, the counts may briefly disappear (no row shown in the cell) while the backend recomputes them. They reappear within a second or two; a 30-minute cron is the backstop.

The Filter Builder has a separate Estimate coverage button that runs a one-shot estimate against your in-progress criteria before saving. Useful for sanity-checking that a stricter Sharpe threshold or a tighter category set actually narrows the population the way you expect.

Managing Filters

  • Enable/Disable: toggle the switch on any filter row. Disabled filters won’t trigger automations.
  • Edit: click the pencil icon to reopen the Filter Builder with all fields pre-populated.
  • Delete: click the trash icon. The button is disabled with an explanatory tooltip if any automations still depend on this filter. Delete the automations first, then the filter.