Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 1 addition & 13 deletions benchmarks/perp-funding-stability.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ abstract: |
upstream funding scrape (60 second poll, 30 second Prom scrape).

methodology:
- "Young venues read artificially stable at first: a venue whose funding has not moved since listing (Polymarket perps launched 2026-07-08 with a constant default rate) shows a stddev near zero until real funding history accrues. Read the sample count next to the rank."
- "Source. Same upstream as perp-funding: each venue's public funding endpoint polled every 60 seconds, normalized to bps per hour and per 24h hold, sign preserved."
- "Metric. stddev_over_time(perp_funding_hold_24h_bps{asset=\"ETH\"}[24h]) per venue. The 7d window smooths intraday noise but reacts to regime shifts within a week."
- "Sign handling. The underlying series is signed (positive means longs pay). Stability measures the swing, so the ranking uses the unsigned stddev. Average direction and level are the perp-funding bench."
Expand Down Expand Up @@ -212,19 +213,6 @@ providers:
sample_size: count_over_time(perp_venue_funding_24h_bps{venue="coinbase",asset="ETH"}[24h])
series: stddev_over_time(perp_venue_funding_24h_bps{venue="coinbase",asset="ETH"}[24h])

- slug: deribit
name: Deribit
tag: Options-focused CEX, ETH/BTC perpetuals via Mobula aggregator
formula: "stddev_over_time of perp_venue_funding_24h_bps{venue=\"deribit\",asset=\"ETH\"} over a 24h window. Source: Mobula CEFI funding-rate aggregator."
queries:
p50: stddev_over_time(perp_venue_funding_24h_bps{venue="deribit",asset="ETH"}[24h])
p90: stddev_over_time(perp_venue_funding_24h_bps{venue="deribit",asset="BTC"}[24h])
p99: stddev_over_time(perp_venue_funding_24h_bps{venue="deribit",asset="SOL"}[24h])
mean: stddev_over_time(perp_venue_funding_24h_bps{venue="deribit",asset="ETH"}[24h])
success: (perp_venue_last_refresh_unix{venue="deribit"} > bool (time() - 300))
sample_size: count_over_time(perp_venue_funding_24h_bps{venue="deribit",asset="ETH"}[24h])
series: stddev_over_time(perp_venue_funding_24h_bps{venue="deribit",asset="ETH"}[24h])

- slug: gate
name: Gate
tag: CEX, USDT perpetuals via Mobula aggregator, 8h funding
Expand Down
16 changes: 8 additions & 8 deletions benchmarks/perp-funding.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="hyperliquid",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="hyperliquid",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="hyperliquid"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="hyperliquid"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="hyperliquid",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="hyperliquid",asset="ETH"}[24h])

- slug: binance
Expand All @@ -124,7 +124,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="binance",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="binance",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="binance"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="binance"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="binance",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="binance",asset="ETH"}[24h])

- slug: bybit
Expand All @@ -137,7 +137,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="bybit",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="bybit",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="bybit"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="bybit"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="bybit",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="bybit",asset="ETH"}[24h])

- slug: okx
Expand All @@ -150,7 +150,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="okx",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="okx",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="okx"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="okx"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="okx",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="okx",asset="ETH"}[24h])

- slug: dydx
Expand All @@ -163,7 +163,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="dydx",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="dydx",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="dydx"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="dydx"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="dydx",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="dydx",asset="ETH"}[24h])

- slug: paradex
Expand All @@ -176,7 +176,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="paradex",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="paradex",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="paradex"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="paradex"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="paradex",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="paradex",asset="ETH"}[24h])

- slug: polymarket
Expand All @@ -189,7 +189,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="polymarket",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="polymarket",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="polymarket"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="polymarket"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="polymarket",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="polymarket",asset="ETH"}[24h])

- slug: aster
Expand All @@ -202,7 +202,7 @@ providers:
p99: avg_over_time(perp_funding_hold_24h_bps{venue="aster",asset="SOL"}[24h])
mean: avg_over_time(perp_funding_annualized_pct{venue="aster",asset="ETH"}[24h])
success: (perp_funding_venue_ok_unix{venue="aster"} > bool (time() - 300))
sample_size: count(perp_funding_rate_hourly_bps{venue="aster"})
sample_size: count_over_time(perp_funding_hold_24h_bps{venue="aster",asset="ETH"}[24h])
series: avg_over_time(perp_funding_hold_24h_bps{venue="aster",asset="ETH"}[24h])

metric_panels:
Expand Down
Loading
Loading