MillionScan is an on-chain perpetual futures trader analytics platform. We score and surface public on-chain trader performance data, continuously monitor it, and refresh it in real time. Built for developers, researchers, and informed observers. Information only. Not investment advice.

Skip to main content

Scoring methodology

Every monitored trader carries a composite score from 0 to 68. The score is recomputed hourly and combines five metrics with fixed weights. This page lists every input + its weight + the direction it moves the score, plus the currentness gate, the entry filter that decides which traders enter the tracking pool, and the automatic exclusion rules that force the score to zero.

Score components (68-point total)

The numbers shown on a trader's Score tab are these per-component scores (e.g. "Profit factor score: 18 / 20"), not the underlying metric values. Raw metrics (PF=1.85, MDD=-12.3%, WR=58.4%, etc) aren't persisted — only the score components each metric earned.

Profit factor

Lifts score
20 pts · 29% of total

Gross realized profits ÷ gross realized losses across closed trades. Above 1.0 means wins outweigh losses; the score scales with how far above 1.0 the trader sits.

Sharpe ratio

Lifts score
15 pts · 22% of total

Risk-adjusted return — average per-trade PnL relative to its volatility. Rewards consistent earners over high-variance lottery winners.

Max drawdown

Caps / lowers score
15 pts · 22% of total

Deepest peak-to-trough drop in cumulative PnL, expressed as a percentage. A shallower drawdown earns more points — the score favours traders who stay survivable through bad runs.

Win rate

Lifts score
10 pts · 15% of total

Share of closed trades with positive realized PnL. Treated as a quality signal but not a primary driver — a 40% win rate paired with a high profit factor outscores a 60% win rate with a profit factor barely above 1.0.

Average PnL per trade

Lifts score
8 pts · 12% of total

Total realized PnL ÷ number of closed trades. Acts as a magnitude check — strong percentage metrics gain weight once the trader has moved meaningful capital per trade.

What counts as a strong score

The scoring engine bins traders into internal tiers based on the 68-point total. Tier names are kept internal, but the cutoffs are:

  • 65 + — top tier, eligible for the currentness gate below
  • 55 – 64 — strong performer, eligible for the currentness gate
  • 45 – 54 — meets the analytical threshold but below the curated set
  • Below 45 — does not pass the analytical threshold; treated as not-yet-qualified

Currentness gate

A high composite score makes a trader eligible for the curated set but doesn't guarantee inclusion. The curated set also requires five currentness checks so it reflects who's actually performing this week, not historic standouts who've gone quiet.

  • 12-close profitability

    Last 12 closed trades show net profit ≥ 10% of evaluation denominator. Single bad streak isn't fatal but a sustained losing run drops the trader out of the curated set.

  • Single-loss cap

    No single closed loss exceeds 5% of evaluation denominator. One catastrophic blow-up disqualifies even a strong 12-close run.

  • 30-day ROI floor

    Rolling 30-day ROI ≥ -30%. Catches the 'bleed for a month, then 12 wins' pattern.

  • Account value floor

    Live account value ≥ $1,000. Excludes post-liquidation shells whose tiny size makes percentage metrics statistically meaningless.

  • Activity recency

    Trader has closed at least one trade in the last 2 weeks. Inactive traders move to WARNING; 4 weeks without recovery moves them to DEMOTED.

Entry filter (who gets tracked at all)

Not every wallet on a supported venue enters the tracking pool — six entry checks decide which leaderboard accounts warrant continuous monitoring. Failing any one of these excludes the trader from the analytical surface entirely.

  • Min volume
    ≥ $10,000 (cumulative trading volume)
  • Min account value
    ≥ $1,000
  • Min trades
    ≥ 10 closed trades
  • Win rate band
    35% ≤ win rate ≤ 95%
  • 30-day max drawdown
    Better than -50%
  • 30-day ROI
    Positive

Automatic exclusion (score forced to 0)

Five conditions short-circuit the scoring path entirely. The trader stays in the tracking pool but their score is fixed at 0 and they are kept off the analytical surface until the condition resolves. These act as hard rules — there is no penalty-points system in current operation.

  • Suspected bot / wash trading

    Win rate > 98% — statistically improbable, treated as automation. Score forced to 0.

  • Sub-minimum trades

    Fewer than 5 closed trades. Insufficient sample for any meaningful score.

  • Account value below floor

    Live account < $1,000.

  • Drawdown below floor

    Max drawdown ≥ -30% (i.e. dropped 30%+ from peak). Score forced to 0.

  • Profit factor below floor

    Profit factor < 0.8 (consistent net loser). Score forced to 0.

Reading a trader's score

Open a trader's detail page → the Score tab surfaces the per-component scores listed above plus the timestamp of the most recent re-computation. Elite plan unlocks the breakdown so you can see which components drove the trader's standing (e.g. "profit factor maxed, drawdown is the ceiling").

Informational and research use only. Not investment advice. Scoring constants (tier thresholds inside each weight) are tuned continuously and intentionally not published — the goal is preventing optimization-against-the-formula, not opacity. Direction, weight, and currentness-gate values above are stable.