The sectors we track
10 narrative sectors, each defined as a set of CoinGecko category labels plus a small list of hand-picked anchor coins. A token can belong to multiple sectors.
- RWA (Real World Assets)
- AI Tokens
- DePIN
- Layer 2
- DeFi
- Memecoins
- Gaming
- Liquid Staking
- Privacy
- Bitcoin L2
The score formula
v1 is pure price momentum across the sector's constituent tokens (filtered to the top 500 by market cap):
- Baseline = 50, so a sector with no momentum lands neutral.
- 24h gets 3× the weight of 7d so the score is reactive without being noise-driven.
- Clamped to 0 to 100. a sector that's ripping or collapsing hits the rails predictably.
Trend label
Alongside the 0 to 100 score, each sector gets a one-word trend:
The 3% threshold filters out noise and ensures the trend label actually means something across typical crypto-sector volatility.
Sparse sectors
If a sector has zero tokens classified into it (rare. only happens for new sectors before the token universe catches up), we return the default neutral state: score = 50, trend = stable, tokenCount = 0. Better than NaN propagating into the rest of the dashboard.
Refresh cadence + caching
Sector scores cache for 5 minutes. The underlying price data refreshes hourly via a separate cron, so 5 minutes of staleness is the right speed/cost trade-off.
What this does NOT do (yet)
- Weight tokens by market cap. We use simple averages. a $10B token has the same vote as a $50M one inside a sector. This will change in v2.
- Layer in on-chain TVL deltas. high TVL growth without price action would currently score low.
- Layer in social mindshare. a sector dominating crypto Twitter without price confirmation currently scores neutral.
- Account for outliers. a single token ripping 40% can pull the sector average meaningfully. Median scoring is on the roadmap.