metrics.perp_markets_daily and metrics.order_book_markets_daily hold one row per market per day. metrics.perp_markets_tokens_daily and metrics.order_book_markets_tokens_daily split each market by the token it settles in, one row per market per token per day, and that is where amounts are turned into dollars.
metrics.perp_markets_daily: one row per perpetual market per day.metrics.order_book_markets_daily: one row per order-book market per day.metrics.perp_markets_tokens_daily: one row per perpetual market per settlement token per day.metrics.order_book_markets_tokens_daily: one row per order-book market per settlement token per day.
exchange_notional_trading_volume answers what traded on the venue. interface_notional_trading_volume answers what each front end brought in. Both columns exist so either ranking reads straight off the table. Use one or the other in a query, never both.
Tables
- Perp markets
- Order-book markets
- Perp markets × token
- Order-book markets × token
One row per perpetual market per day, keyed
(perp_market_id, timestamp). Names and other details live on the registry table, so this carries only keys and figures. The two notional columns are the same trades credited two different ways: exchange_notional_trading_volume to the venue that matched them, interface_notional_trading_volume to the front end they came through. One row here is one market, and a market has exactly one of each, so on this table the two columns hold the same number; they only differ once rows are grouped by app.Figures that measure activity during the day read zero when nothing traded. Figures that measure a standing position, and the funding rate, are left empty where we have no reading. funding_rate is empty before 2025-09-27, where our funding history starts.| Column | Type | Description |
|---|---|---|
timestamp | TIMESTAMP | Day the row covers, at UTC midnight. |
perp_market_id | STRING | Market the row measures, keyed like dimensions.perp_markets. |
price | FLOAT64 | The market’s closing price in USD, carried forward on days nothing traded. |
exchange_notional_trading_volume | BIGNUMERIC | Value of the contracts traded, in USD, credited to the venue that matched them. Each trade’s price times its size, counting one side of each match. |
interface_notional_trading_volume | BIGNUMERIC | The same figure, credited instead to the front end the trades came through. |
trades_count | INT64 | Trades matched in the market during the day. |
active_traders | INT64 | How many separate addresses traded in the market during the day. |
open_interest | FLOAT64 | Value of the positions still open at the close, in USD, counting one side only: whichever of the long and short side is larger. |
long_open_interest | FLOAT64 | Value of the open long positions at the close, in USD. |
short_open_interest | FLOAT64 | Value of the open short positions at the close, in USD. |
volume_to_open_interest | BIGNUMERIC | The day’s traded value divided by the value of the open positions: how many times over the day’s trading turned those positions. |
long_traders | INT64 | Traders holding an open long position at the close. |
short_traders | INT64 | Traders holding an open short position at the close. |
average_long_position_size | FLOAT64 | Average value of an open long position at the close, in USD. |
average_short_position_size | FLOAT64 | Average value of an open short position at the close, in USD. |
median_long_position_size | FLOAT64 | Median value of an open long position at the close, in USD. |
median_short_position_size | FLOAT64 | Median value of an open short position at the close, in USD. |
top10_long_trader_share | FLOAT64 | Fraction of the open long positions, by value, held by the ten largest long traders. |
top10_short_trader_share | FLOAT64 | Fraction of the open short positions, by value, held by the ten largest short traders. |
funding_rate | FLOAT64 | The day’s total funding rate: the 24 hourly rates added together. Funding is the payment that passes between the two sides to hold the market’s price near the price it tracks. Positive means the longs paid the shorts. |
long_liquidations | FLOAT64 | Value of the long positions the venue force-closed during the day, in USD, because the trader’s deposit no longer covered their losses. |
short_liquidations | FLOAT64 | Value of the short positions force-closed during the day, in USD. |
fees | BIGNUMERIC | Trading fees charged, in USD, before anything is shared out. Charged on each side of a trade separately. |
revenue | BIGNUMERIC | Fees minus the shares paid to the front end and to whoever listed the market. |
fees_supply_side | BIGNUMERIC | Those two shares: the part of the fees the venue does not keep. |
Sample queries
- One market's series
- Order-book markets by volume
- Market vs token check
- Sector total
Read one perpetual market’s daily series.
Notes
Amounts add up. Notional volume, trade counts, liquidations and the fee columns all total cleanly across markets and days, as long as you pick one of the two notional columns and stay with it. Counts of distinct traders do not add up: one address that traded in five markets is one trader, but adding those five markets’active_traders makes it five. Rates do not add up either: a sector-wide total of funding_rate, volume_to_open_interest or a top-10 share means nothing, so read those one market at a time, or weight them by market size yourself.