quant_metrics is a curated set of risk and performance metrics for a trader. It is where the two headline scores live, smart_score and copy_score, alongside the risk-adjusted return and consistency measures they are built from.
The field set is fixed and documented: exactly nine fields, each a number or null. It is not a raw database dump, and it does not grow silently as we add internal columns. New internal metrics stay internal until they are curated into this contract.
How to get it
quant_metrics is an expanded field. It is omitted from trader responses unless you ask for it:
GET /api/v1/trader/{address} and POST /api/v1/traders/batch. The field is present only when the trader has computed metrics; when present, all nine keys are present.
The two headline scores
Both scores are 0-100 and higher is better. They answer different questions.smart_scoremeasures skill: how good is this trader, on a risk-adjusted basis, relative to everyone else?copy_scoremeasures copyability: how safely could you follow this trader, after discounting traits that make a strategy hard to replicate?
smart_score is a weighted blend of the trader’s cross-sectional percentiles and a few absolute measures:
copy_score starts from that same base and subtracts penalties for hard-to-replicate behaviour, then clamps to 0-100:
| Penalty | When it applies |
|---|---|
| -20 | Fewer than 50 markets traded (thin track record) |
| -15 | Positions are highly concentrated |
| -15 | Position sizing exceeds about 2x Kelly (over-betting) |
| -10 | Worst single-trade loss exceeds 30% |
| -10 | Edge is inconsistent |
smart_score and a much lower copy_score: genuinely skilled, but running a book that is risky or impractical to mirror. When you are ranking traders to follow or copy, read copy_score. When you are ranking pure skill, read smart_score.
The component metrics
These are the underlying measures. They are absolute values, not ranks.| Field | Meaning |
|---|---|
sharpe_30d | Sharpe ratio over the trailing 30 days (risk-adjusted return; higher is better). Magnitude can be large for small samples. |
sharpe_7d | Sharpe ratio over the trailing 7 days. |
profit_factor | Gross profit divided by gross loss; greater than 1 is profitable. Capped at 1000 when there are effectively no losses. |
edge_consistency | Stability of the trader’s edge over time, 0-1 (higher is more consistent). |
The percentile ranks
These place the trader against the whole population, 0-100. They are the inputs the scores lean on, exposed directly so you can see where a number sits in the field.| Field | Meaning |
|---|---|
sharpe_percentile | Percentile rank of the trader’s Sharpe ratio versus all traders. |
pf_percentile | Percentile rank of profit factor versus all traders. |
consistency_percentile | Percentile rank of edge consistency versus all traders. |
Reading the values
nullmeans insufficient trade history, not zero. Every field is a number ornull. Anullfield is one we cannot compute yet for this trader; treating it as0will rank a brand-new wallet as the worst possible trader rather than an unknown one.- Values refresh periodically. The scores and percentiles are recomputed by the cross-sectional ranking job, not on every request. A trader’s percentile moves as the rest of the population moves, even if their own trades do not.
- Scores are 0-100; components are absolute.
smart_score,copy_score, and the three percentiles are bounded 0-100.sharpe_30d/sharpe_7dandprofit_factorare unbounded (profit factor is capped at 1000), so compare them against the percentile fields for context.
Full response shape
Related
- Signal scoring names every score the API exposes and which to reach for.
- Grades explains the headline
S-Fgrade, the long-run quality verdict that sits above these metrics. - Expanding responses covers the
expandparameter and the other expandable fields. - Trust metadata exposes per-field provenance, including for
quant_metrics.