Sliced Metrics
Every trader stat in Airavat (PnL, Win Rate, Sharpe, Trader Score, all of them) is computed twice: once for the trader’s entire history, and again for narrower slices of recent activity. A slice is a combination of a market category and a time window, for example, “Politics over the last 30 days” or “Crypto over the last week”.
The slice you choose decides which numbers you’re looking at. Lifetime numbers tell you who someone has been; slices tell you who they are right now.
Why this matters
A whale who was a god at sports markets in 2023 but has gone cold this quarter looks great on lifetime stats and mediocre on a 30-day slice. If you copy-trade them based on lifetime stats, you’re trading someone who has already turned. The slicing system lets you condition on recent form, not a permanent record.
Common reasons to reach for a slice:
- Recent form: “Show me traders whose 30-day Sharpe is still > 2, old stars don’t count”
- Domain expertise: “Show me 90-day Win Rate within Politics only, global Win Rate hides their politics edge”
- Hot streaks: “24-hour Total PnL ranking, biggest movers right now”
- Cooling off: filter your existing whitelist by sliced score to drop traders who are slipping
How slicing works
A slice is (category, timeWindow):
- Category is a market tag the trader has been active in: Politics, Crypto, Sports, Entertainment, etc. The default
ALLmeans “any market”. - Time Window is one of
24h / 7d / 30d / 90d / 180d / all. The defaultallmeans “lifetime”.
The default slice (ALL, all) is the trader’s lifetime stats. Every other combination is a sliced view that filters the underlying positions before computing the metrics.
| Slice | What it represents |
|---|---|
(ALL, all) | Lifetime, all markets, the default everywhere |
(ALL, 30d) | Recent form, all markets |
(Politics, all) | Lifetime within politics only |
(Crypto, 7d) | Recent form within crypto only |
Where slicing appears in the UI
Traders tab (top filters)
Two dropdowns above the table: Filter by category and Filter by time. Whichever combination you pick, every column in the table reflects that slice. So the “PnL” you see on the trader table is the trader’s PnL for that category and that window, not their lifetime PnL.
Trader detail page (per-page slicing)
The same two dropdowns sit at the top of every trader’s profile. Switching them re-slices the trader’s metric cards and the equity curve to that slice. The Open Positions, Closed Positions, and Trade History tabs always show the trader’s full activity (positions don’t move into or out of slices), but the headline counts in the metric cards reflect the slice. The URL preserves your selection so the back button restores your view.
Advanced mode (Traders tab)
The Advanced mode criteria panel within the Traders tab matches traders against their sliced metrics, using the same category and time-window selectors. Set the slice first, then the criteria; results show traders who meet the threshold within that slice.
Filter Builder (Trader Criteria)
The Trader Criteria component has a Market Categories picker. Selecting tags here matches traders who are active in any of those categories (OR logic). The thresholds (Win Rate, Sharpe, etc.) on a saved filter are evaluated against the trader’s full lifetime metrics, not the per-category slice. (If you want a slice-aware filter, use the Trader Whitelist with traders you’ve validated in Advanced mode using a slice.)
Eligibility: why some metrics show no value
Every slice has a minimum-trades threshold. Traders with too few closed positions in (category, timeWindow) aren’t ranked there. Their sliced metrics show a placeholder instead of a noisy estimate.
The threshold for receiving a Trader Score is currently 20 closed positions. Individual metrics (Sharpe, Sortino, Profit Factor, etc.) may also be null in a slice when the underlying sample is too thin to be stable; they render as a placeholder the same way.
This is why a hot trader who’s only closed a handful of positions in the last 24 hours will show a placeholder on a 24h slice. There isn’t enough data to compute meaningful values.
Lifetime vs slice: when to use which
| Use lifetime when… | Use a slice when… |
|---|---|
| You’re hunting for a long career edge | You want to filter for current form |
| Comparing risk-adjusted returns across years | Catching a cooling trader before they hurt your PnL |
| Track record over hundreds of trades is the signal | Recent regime or category-specific edge is the signal |
| Trader has a small total trade count | Slice would be even thinner, lifetime aggregates more |
A common workflow: lifetime to find candidates, slice to validate they’re still on. Build a list of traders with strong lifetime Sharpe + Win Rate + Trader Score, then switch to Advanced mode in the Traders tab, select the same criteria with a (ALL, 30d) slice, and see who survives.
Data freshness
Sliced metrics are recomputed on the same cadence as lifetime stats. The trader-stats worker runs continuously across all traders, with each trader processed at most every 24 hours unless something forces a re-run. The “Last seen” column on the Traders tab is trade freshness; the metrics behind a slice may be slightly stale relative to the very latest fill but converge within hours.
For a sliced view of a trader who hasn’t traded in the slice’s window, you’ll see placeholders everywhere even if their lifetime stats are healthy. That’s working as designed: no signal in that slice means no metric.