RISExscan
Live perp analytics
Methodology

How every metric is computed

Full transparency on data sources, formulas, and edge cases. If a number on the dashboard surprises you, this page is where you check what it means.

Sources

Primary

api.rise.trade
Markets, trade history, positions, orderbook, candles (trading-view-data), market-specific trade tape. Official REST.
RISE chain RPC
Direct eth_call to PerpsManager for cross-margin maintenance, funding, unsettled USDC. CollateralManager for portfolio balance (including non-USDC collateral).
Event logs
PerpsManager TakerFee + MakerSettle events for real 24h fees. AccountRegistry events for the universe of accounts.
RISE explorer
Aggregated protocol-wide stats (total accounts, daily new accounts, growth charts).
External DEXes
Pacifica + Hyperliquid public APIs for cross-DEX funding rate comparison.

Volume metrics

24h Volume
Sum of quote_volume_24h across all markets from RISEx's market list endpoint.
Account volume
For each account, paginate /v1/trade-history and sum price × size per trade. Bucketed by 1d / 7d / 30d / custom-since periods.
Trades counter
Count of distinct trade entries in the last 30 days for that account.

Open interest

Current OI
Sum of |size| × mark_price across all currently open positions. Snapshot, not time-weighted.
TWAP OI
Time-Weighted Average OI: integral of OI over the window divided by duration. Reconstructed from trade events (signed size changes per market per timestamp), with mark price at each event.
Long / Short ratio
Sum of long-side notional vs short-side notional across all positions in a market. Skew = long% − 50%.

PnL & performance

Realized PnL
Sum of realized_pnl field on each trade in the trade-history. Aggregated per window (1d/7d/30d).
Unrealized PnL
Per open position: size × (mark − entry) × side, where side is +1 long, −1 short. Aggregated across positions for the account total.
Win rate
Wins ÷ (Wins + Losses), where wins are trades with realized_pnl > 0, losses with < 0. Zero-PnL trades ignored.
Profit factor
Sum of all winning PnL ÷ |sum of all losing PnL|. >1.5 strong, >2 excellent, <1 net losing.
Max drawdown
Largest peak-to-trough drop in cumulative realized PnL during the period. Reconstructed by walking trades chronologically.
Edge (bps)
(PnL ÷ Volume) × 10000. The trader's average per-dollar margin in basis points. Pros sustain 5–20 bps; degens swing widely.
Smart Money
Composite flag. Requires: ≥50 trades in 30d, ≥$250k volume, ≥55% win rate, 0 liquidations, drawdown < ½ of PnL.

Funding rates

Funding 8h
Raw funding_rate_8h from RISEx markets endpoint. Long pays short if positive.
Funding APR
8h rate × 3 × 365 × 100 (percent). Naïve annualization assuming the rate stays constant.
Funding payments (snapshot)
Onchain getTotalCrossFunding per account. Represents unsettled funding accumulated since the account's last settlement — not historical totals.
Cross-DEX deltas
Difference of APRs between RISEx and each external DEX, positive = longs pay more on RISEx.

Liquidations

Liquidation price (isolated)
entry × (1 ∓ 1/L + dir × MMR). MMR (maintenance margin ratio) read from the market config.
Liquidation price (cross)
Considers total cross-margin balance + uPnL of all other cross positions. Solved as: liq = (entry × size − totEq) ÷ (size × (1 − MMR)) for longs, mirror for shorts.
Liquidation feed
Trade events with is_liquidation = true in trade-history, captured by the indexer scanning all active accounts.
Liquidation heatmap
Bucketed sum of position notional that would be liquidated if the price moved to each bin. Built from open positions snapshot.

CVD overlay

CVD = Cumulative Volume Delta. Running sum of taker-buy notional − taker-sell notional, where taker side is inferred from maker_side in market trade-history (if maker is SELL, taker bought; positive delta).

Bucketed at the same resolution as the candles (1m/5m/15m/1h/4h/1d). Divergences between CVD and price often signal hidden buying or selling pressure.

Fees

24h Fees (real)
Sum of fee amount from TakerFee and MakerSettle events on the PerpsManager contract, anchored to a 24h window by block timestamp.
Account fees
Sum of fee field on each trade in the 30d trade-history.

Caching & freshness

Live data (markets, positions, balances): refreshed every 15-30 seconds.

Indexed data (volume/PnL leaderboards, OI rankings): full re-scan every 10 minutes. Individual account stats refresh on-demand if older than 15 min.

Cross-DEX funding compare: cached 30 seconds.

Sparklines and historical series: refreshed every 5 minutes.

Limitations

The trade-history endpoint is paginated and capped — for very high-volume accounts with >10000 trades in 30d, only the most recent N are aggregated. This affects the precision of PnL and volume for the top 1% most active wallets but doesn't change rankings materially.

Onchain calls are subject to RPC rate limits. If the RPC is slow, balances and liquidation prices may be a few seconds stale.

Cross-DEX funding for low-activity markets on Lighter was found to be unreliable and is excluded from comparison.

Back to dashboard →