{
  "catalog": {
    "datasets": [
      {
        "id": "flow",
        "name": "Flow Metrics",
        "description": "Directional order flow split by taker buy vs. sell, broken into small/medium/large notional segments, with a flow toxicity score.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier1",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "taker_buy_volume",
            "label": "Taker Buy Volume",
            "description": "Total buy-side traded notional in the interval"
          },
          {
            "name": "taker_sell_volume",
            "label": "Taker Sell Volume",
            "description": "Total sell-side traded notional in the interval"
          },
          {
            "name": "taker_buy_count",
            "label": "Taker Buy Count",
            "description": "Number of buy-side trades in the interval"
          },
          {
            "name": "taker_sell_count",
            "label": "Taker Sell Count",
            "description": "Number of sell-side trades in the interval"
          },
          {
            "name": "volume_delta",
            "label": "Volume Delta",
            "description": "Buy-side traded quantity minus sell-side traded quantity"
          },
          {
            "name": "volume_delta_notional",
            "label": "Volume Delta Notional",
            "description": "Buy-side traded notional minus sell-side traded notional"
          },
          {
            "name": "flow_entropy",
            "label": "Flow Entropy",
            "description": "Entropy of the buy-versus-sell notional split in the interval"
          },
          {
            "name": "flow_toxicity_score",
            "label": "Flow Toxicity Score",
            "description": "Past-normalized signed notional flow multiplied by past-normalized short-horizon realized volatility"
          },
          {
            "name": "taker_buy_sell_ratio",
            "label": "Buy/Sell Ratio",
            "description": "Buy-side traded notional divided by sell-side traded notional"
          },
          {
            "name": "taker_buy_sell_count_ratio",
            "label": "Buy/Sell Count Ratio",
            "description": "Buy-side trade count divided by sell-side trade count"
          },
          {
            "name": "taker_buy_sell_percentage",
            "label": "Taker Buy %",
            "description": "Share of traded notional that came from buy-side trades"
          },
          {
            "name": "taker_buy_sell_count_percentage",
            "label": "Taker Buy Count %",
            "description": "Share of trades that were buy-side trades"
          },
          {
            "name": "taker_buy_small_order_volume",
            "label": "Buy Small Order Volume",
            "description": "Total buy-side notional from small trades under $100"
          },
          {
            "name": "taker_buy_small_order_count",
            "label": "Buy Small Order Count",
            "description": "Number of buy-side trades under $100"
          },
          {
            "name": "taker_buy_medium_order_volume",
            "label": "Buy Medium Order Volume",
            "description": "Total buy-side notional from medium trades from $100 to under $1,000"
          },
          {
            "name": "taker_buy_medium_order_count",
            "label": "Buy Medium Order Count",
            "description": "Number of buy-side trades from $100 to under $1,000"
          },
          {
            "name": "taker_buy_large_order_volume",
            "label": "Buy Large Order Volume",
            "description": "Total buy-side notional from large trades of at least $1,000"
          },
          {
            "name": "taker_buy_large_order_count",
            "label": "Buy Large Order Count",
            "description": "Number of buy-side trades of at least $1,000"
          },
          {
            "name": "taker_sell_small_order_volume",
            "label": "Sell Small Order Volume",
            "description": "Total sell-side notional from small trades under $100"
          },
          {
            "name": "taker_sell_small_order_count",
            "label": "Sell Small Order Count",
            "description": "Number of sell-side trades under $100"
          },
          {
            "name": "taker_sell_medium_order_volume",
            "label": "Sell Medium Order Volume",
            "description": "Total sell-side notional from medium trades from $100 to under $1,000"
          },
          {
            "name": "taker_sell_medium_order_count",
            "label": "Sell Medium Order Count",
            "description": "Number of sell-side trades from $100 to under $1,000"
          },
          {
            "name": "taker_sell_large_order_volume",
            "label": "Sell Large Order Volume",
            "description": "Total sell-side notional from large trades of at least $1,000"
          },
          {
            "name": "taker_sell_large_order_count",
            "label": "Sell Large Order Count",
            "description": "Number of sell-side trades of at least $1,000"
          },
          {
            "name": "taker_buy_small_order_percentage",
            "label": "Buy Small Order %",
            "description": "Ratio of small buy-side trade notional to total buy-side traded notional"
          },
          {
            "name": "taker_buy_medium_order_percentage",
            "label": "Buy Medium Order %",
            "description": "Ratio of medium buy-side trade notional to total buy-side traded notional"
          },
          {
            "name": "taker_buy_large_order_percentage",
            "label": "Buy Large Order %",
            "description": "Ratio of large buy-side trade notional to total buy-side traded notional"
          },
          {
            "name": "taker_buy_small_order_count_percentage",
            "label": "Buy Small Count %",
            "description": "Share of buy-side trades that were small trades"
          },
          {
            "name": "taker_buy_medium_order_count_percentage",
            "label": "Buy Medium Count %",
            "description": "Share of buy-side trades that were medium trades"
          },
          {
            "name": "taker_buy_large_order_count_percentage",
            "label": "Buy Large Count %",
            "description": "Share of buy-side trades that were large trades"
          },
          {
            "name": "taker_sell_small_order_percentage",
            "label": "Sell Small Order %",
            "description": "Ratio of small sell-side trade notional to total sell-side traded notional"
          },
          {
            "name": "taker_sell_medium_order_percentage",
            "label": "Sell Medium Order %",
            "description": "Ratio of medium sell-side trade notional to total sell-side traded notional"
          },
          {
            "name": "taker_sell_large_order_percentage",
            "label": "Sell Large Order %",
            "description": "Ratio of large sell-side trade notional to total sell-side traded notional"
          },
          {
            "name": "taker_sell_small_order_count_percentage",
            "label": "Sell Small Count %",
            "description": "Share of sell-side trades that were small trades"
          },
          {
            "name": "taker_sell_medium_order_count_percentage",
            "label": "Sell Medium Count %",
            "description": "Share of sell-side trades that were medium trades"
          },
          {
            "name": "taker_sell_large_order_count_percentage",
            "label": "Sell Large Count %",
            "description": "Share of sell-side trades that were large trades"
          }
        ]
      },
      {
        "id": "trade_size",
        "name": "Trade Size",
        "description": "Trade notional split into small (< $100), medium ($100–$1,000), and large (≥ $1,000) segments, with summary statistics for individual trade sizes.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier1",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "small_order_volume",
            "label": "Small Order Volume",
            "description": "Total traded notional from small trades under $100"
          },
          {
            "name": "small_order_count",
            "label": "Small Order Count",
            "description": "Number of trades under $100"
          },
          {
            "name": "medium_order_volume",
            "label": "Medium Order Volume",
            "description": "Total traded notional from medium trades from $100 to under $1,000"
          },
          {
            "name": "medium_order_count",
            "label": "Medium Order Count",
            "description": "Number of trades from $100 to under $1,000"
          },
          {
            "name": "large_order_volume",
            "label": "Large Order Volume",
            "description": "Total traded notional from large trades of at least $1,000"
          },
          {
            "name": "large_order_count",
            "label": "Large Order Count",
            "description": "Number of trades of at least $1,000"
          },
          {
            "name": "volume",
            "label": "Total Volume",
            "description": "Total traded notional in the interval"
          },
          {
            "name": "n_trades",
            "label": "Trade Count",
            "description": "Number of trades in the interval"
          },
          {
            "name": "small_order_percentage",
            "label": "Small Order %",
            "description": "Ratio of small-trade notional to total traded notional"
          },
          {
            "name": "medium_order_percentage",
            "label": "Medium Order %",
            "description": "Ratio of medium-trade notional to total traded notional"
          },
          {
            "name": "large_order_percentage",
            "label": "Large Order %",
            "description": "Ratio of large-trade notional to total traded notional"
          },
          {
            "name": "small_order_count_percentage",
            "label": "Small Order Count %",
            "description": "Share of trades that were small trades"
          },
          {
            "name": "medium_order_count_percentage",
            "label": "Medium Order Count %",
            "description": "Share of trades that were medium trades"
          },
          {
            "name": "large_order_count_percentage",
            "label": "Large Order Count %",
            "description": "Share of trades that were large trades"
          },
          {
            "name": "trade_amount_mean",
            "label": "Mean Trade Size",
            "description": "Average trade notional"
          },
          {
            "name": "trade_amount_median",
            "label": "Median Trade Size",
            "description": "Median trade notional"
          },
          {
            "name": "trade_amount_std",
            "label": "Trade Size Std Dev",
            "description": "Standard deviation of trade notional"
          },
          {
            "name": "trade_amount_variance",
            "label": "Trade Size Variance",
            "description": "Variance of trade notional"
          },
          {
            "name": "trade_amount_skewness",
            "label": "Trade Size Skewness",
            "description": "Skewness of the trade-notional distribution"
          },
          {
            "name": "trade_amount_kurtosis",
            "label": "Trade Size Kurtosis",
            "description": "Kurtosis of the trade-notional distribution"
          },
          {
            "name": "trade_amount_min",
            "label": "Min Trade Size",
            "description": "Smallest trade notional in the interval"
          },
          {
            "name": "trade_amount_max",
            "label": "Max Trade Size",
            "description": "Largest trade notional in the interval"
          },
          {
            "name": "trade_amount_range_ratio",
            "label": "Trade Size Range Ratio",
            "description": "Largest trade notional divided by smallest trade notional"
          },
          {
            "name": "trade_amount_cv",
            "label": "Trade Size CV",
            "description": "Coefficient of variation of trade notional"
          }
        ]
      },
      {
        "id": "range",
        "name": "Price Range & Distribution",
        "description": "Intrabar high-low price range and full distribution statistics (mean, median, std, skewness, kurtosis) for trade prices within each interval.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier1",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "range",
            "label": "Price Range",
            "description": "Highest trade price minus lowest trade price"
          },
          {
            "name": "range_bps",
            "label": "Range (bps)",
            "description": "High-low trade price range in basis points of the closing price"
          },
          {
            "name": "price_mean",
            "label": "Mean Price",
            "description": "Average trade price in the interval"
          },
          {
            "name": "price_median",
            "label": "Median Price",
            "description": "Median trade price in the interval"
          },
          {
            "name": "price_std",
            "label": "Price Std Dev",
            "description": "Standard deviation of trade prices in the interval"
          },
          {
            "name": "price_variance",
            "label": "Price Variance",
            "description": "Variance of trade prices in the interval"
          },
          {
            "name": "price_skewness",
            "label": "Price Skewness",
            "description": "Skewness of the trade-price distribution"
          },
          {
            "name": "price_kurtosis",
            "label": "Price Kurtosis",
            "description": "Kurtosis of the trade-price distribution"
          },
          {
            "name": "price_range_ratio",
            "label": "Price Range Ratio",
            "description": "Highest trade price divided by lowest trade price"
          },
          {
            "name": "price_cv",
            "label": "Price CV",
            "description": "Coefficient of variation of trade price"
          }
        ]
      },
      {
        "id": "impact",
        "name": "Impact Metrics",
        "description": "How much each unit of trading volume moves the price, measured via Amihud illiquidity, Kyle lambda, impact per notional, and large-trade reversal.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier2",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "amihud_like",
            "label": "Amihud Illiquidity",
            "description": "Absolute interval return divided by total traded notional"
          },
          {
            "name": "kyle_like_lambda",
            "label": "Kyle Lambda",
            "description": "Covariance of trade returns and signed trade size divided by signed-size variance"
          },
          {
            "name": "impact_per_notional",
            "label": "Impact per Notional",
            "description": "Absolute interval return divided by absolute signed notional flow"
          },
          {
            "name": "large_trade_reversal",
            "label": "Large Trade Reversal",
            "description": "Average five-trade-ahead return after trades in the top 10% by notional"
          },
          {
            "name": "directional_impact_asymmetry",
            "label": "Directional Impact Asymmetry",
            "description": "Average buy-trade price impact minus average sell-trade price impact"
          }
        ]
      },
      {
        "id": "updownticks",
        "name": "Up / Down Tick Metrics",
        "description": "Uptick and downtick count, volume, ratios and percentages based on price movement direction.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier2",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "uptick_count",
            "label": "Uptick Count",
            "description": "Number of trades priced above the previous trade"
          },
          {
            "name": "downtick_count",
            "label": "Downtick Count",
            "description": "Number of trades priced below the previous trade"
          },
          {
            "name": "unchanged_count",
            "label": "Unchanged Count",
            "description": "Number of trades priced the same as the previous trade"
          },
          {
            "name": "uptick_volume",
            "label": "Uptick Volume",
            "description": "Total traded quantity on upticks"
          },
          {
            "name": "downtick_volume",
            "label": "Downtick Volume",
            "description": "Total traded quantity on downticks"
          },
          {
            "name": "unchanged_volume",
            "label": "Unchanged Volume",
            "description": "Total traded quantity on unchanged ticks"
          },
          {
            "name": "uptick_downtick_volume_ratio",
            "label": "Uptick/Downtick Volume Ratio",
            "description": "Uptick traded quantity divided by downtick traded quantity"
          },
          {
            "name": "uptick_downtick_count_ratio",
            "label": "Uptick/Downtick Count Ratio",
            "description": "Uptick trade count divided by downtick trade count"
          },
          {
            "name": "uptick_count_percentage",
            "label": "Uptick Count %",
            "description": "Share of trades that were upticks"
          },
          {
            "name": "downtick_count_percentage",
            "label": "Downtick Count %",
            "description": "Share of trades that were downticks"
          },
          {
            "name": "unchanged_count_percentage",
            "label": "Unchanged Count %",
            "description": "Share of trades that were unchanged ticks"
          },
          {
            "name": "uptick_volume_percentage",
            "label": "Uptick Volume %",
            "description": "Share of traded quantity that occurred on upticks"
          },
          {
            "name": "downtick_volume_percentage",
            "label": "Downtick Volume %",
            "description": "Share of traded quantity that occurred on downticks"
          },
          {
            "name": "unchanged_volume_percentage",
            "label": "Unchanged Volume %",
            "description": "Share of traded quantity that occurred on unchanged ticks"
          }
        ]
      },
      {
        "id": "run_structure",
        "name": "Trade Run Structure",
        "description": "Consecutive same-direction trade run lengths, imbalance, flip rate, and price change on direction flip.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier2",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "buy_run_max_len",
            "label": "Max Buy Run Length",
            "description": "Longest consecutive run of buy-side trades"
          },
          {
            "name": "sell_run_max_len",
            "label": "Max Sell Run Length",
            "description": "Longest consecutive run of sell-side trades"
          },
          {
            "name": "buy_run_mean_len",
            "label": "Mean Buy Run Length",
            "description": "Average length of consecutive buy-side runs"
          },
          {
            "name": "sell_run_mean_len",
            "label": "Mean Sell Run Length",
            "description": "Average length of consecutive sell-side runs"
          },
          {
            "name": "run_imbalance",
            "label": "Run Imbalance",
            "description": "Normalized difference between the longest buy run and longest sell run"
          },
          {
            "name": "flip_rate",
            "label": "Flip Rate",
            "description": "Share of trades whose side flipped versus the previous trade"
          },
          {
            "name": "price_change_on_flip",
            "label": "Price Change on Flip",
            "description": "Average absolute price change when trade direction flips"
          }
        ]
      },
      {
        "id": "returns",
        "name": "Returns & Volatility",
        "description": "Log-return based metrics: variance, realized volatility, bipower variation, jump ratio, autocorrelation, and trendiness.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier2",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "logret_var",
            "label": "Log-Return Variance",
            "description": "Variance of log returns within the interval"
          },
          {
            "name": "realized_vol",
            "label": "Realized Volatility",
            "description": "Square root of the sum of squared log returns in the interval"
          },
          {
            "name": "bipower_variation",
            "label": "Bipower Variation",
            "description": "Jump-robust volatility estimate built from adjacent absolute log returns"
          },
          {
            "name": "jump_ratio",
            "label": "Jump Ratio",
            "description": "Share of realized variance not explained by bipower variation"
          },
          {
            "name": "ret_autocorr_lag1",
            "label": "Return Autocorr (Lag 1)",
            "description": "Lag-one autocorrelation of log returns within the interval"
          },
          {
            "name": "trendiness",
            "label": "Trendiness",
            "description": "Absolute net log return divided by total absolute log return"
          }
        ]
      },
      {
        "id": "slippage",
        "name": "Slippage",
        "description": "How much each trade pays above the best ask (buys) or receives below the best bid (sells) relative to the prevailing quote, aggregated per interval.",
        "category": "trades",
        "categoryLabel": "Trades",
        "tier": "tier2",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "slippage_mean",
            "label": "Mean Slippage",
            "description": "Average slippage in price units versus the prevailing quote"
          },
          {
            "name": "slippage_bps_mean",
            "label": "Mean Slippage (bps)",
            "description": "Average slippage in basis points versus the prevailing quote"
          },
          {
            "name": "slippage_bps_std",
            "label": "Slippage Std Dev (bps)",
            "description": "Standard deviation of slippage in basis points"
          },
          {
            "name": "slippage_bps_median",
            "label": "Median Slippage (bps)",
            "description": "Median slippage in basis points"
          },
          {
            "name": "slippage_bps_p95",
            "label": "Slippage P95 (bps)",
            "description": "95th percentile slippage in basis points"
          },
          {
            "name": "slippage_bps_vwap",
            "label": "VWAP Slippage (bps)",
            "description": "Trade-size-weighted average slippage in basis points"
          },
          {
            "name": "slippage_bps_buy_mean",
            "label": "Buy Slippage Mean (bps)",
            "description": "Average slippage in basis points for buy-side trades"
          },
          {
            "name": "slippage_bps_sell_mean",
            "label": "Sell Slippage Mean (bps)",
            "description": "Average slippage in basis points for sell-side trades"
          },
          {
            "name": "slippage_bps_buy_sell_ratio",
            "label": "Buy/Sell Slippage Ratio",
            "description": "Buy-side average slippage divided by sell-side average slippage"
          },
          {
            "name": "slippage_bps_sell_buy_ratio",
            "label": "Sell/Buy Slippage Ratio",
            "description": "Sell-side average slippage divided by buy-side average slippage"
          }
        ]
      },
      {
        "id": "basis",
        "name": "Basis",
        "description": "Perpetual futures mark price premium over index price (basis) and last trade price, in absolute and basis-point terms.",
        "category": "derivatives",
        "categoryLabel": "Derivatives",
        "tier": "tier1",
        "intervals": [
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "basis",
            "label": "Basis",
            "description": "Last mark price minus index price in the interval"
          },
          {
            "name": "basis_bps",
            "label": "Basis (bps)",
            "description": "Last mark-versus-index spread in basis points of the index price"
          },
          {
            "name": "mark_price_spread",
            "label": "Mark-Price Spread",
            "description": "Last mark price minus last traded price in the interval"
          },
          {
            "name": "mark_price_spread_bps",
            "label": "Mark-Price Spread (bps)",
            "description": "Last mark-versus-last-price spread in basis points of the last price"
          },
          {
            "name": "basis_mean",
            "label": "Mean Basis",
            "description": "Average mark price minus index price in the interval"
          },
          {
            "name": "basis_bps_std",
            "label": "Basis Std Dev (bps)",
            "description": "Standard deviation of the mark-versus-index spread in basis points"
          },
          {
            "name": "mark_price_spread_mean",
            "label": "Mean Mark-Price Spread",
            "description": "Average mark price minus last traded price in the interval"
          },
          {
            "name": "mark_price_spread_bps_std",
            "label": "Mark-Price Spread Std Dev (bps)",
            "description": "Standard deviation of the mark-versus-last-price spread in basis points"
          }
        ]
      },
      {
        "id": "funding",
        "name": "Funding",
        "description": "Funding rate and update frequencies for perpetual futures contracts.",
        "category": "derivatives",
        "categoryLabel": "Derivatives",
        "tier": "tier1",
        "intervals": [
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "funding_rate",
            "label": "Funding Rate",
            "description": "Last funding rate observed in the interval"
          },
          {
            "name": "funding_rate_update_frequency",
            "label": "Funding Rate Update Frequency",
            "description": "Average number of funding-rate updates per second in the interval"
          },
          {
            "name": "funding_rate_avg_update_interval",
            "label": "Avg Funding Rate Update Interval",
            "description": "Average seconds between funding-rate updates in the interval"
          }
        ]
      },
      {
        "id": "open_interest",
        "name": "Open Interest",
        "description": "Open interest values with percentage change, volatility, and OI/price change ratio.",
        "category": "derivatives",
        "categoryLabel": "Derivatives",
        "tier": "tier1",
        "intervals": [
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "open_interest",
            "label": "Open Interest",
            "description": "Last open interest value in the interval"
          },
          {
            "name": "open_interest_pct_change",
            "label": "Open Interest % Change",
            "description": "Percentage change in open interest from the first value to the last value in the interval"
          },
          {
            "name": "open_interest_volatility",
            "label": "Open Interest Volatility",
            "description": "Standard deviation of tick-to-tick open-interest percentage changes in the interval"
          },
          {
            "name": "oi_price_change_ratio",
            "label": "OI/Price Change Ratio",
            "description": "Open-interest return divided by mark-price return over the interval"
          }
        ]
      },
      {
        "id": "derivative_price",
        "name": "Derivative Price",
        "description": "Snapshot of mark, index, and last trade prices with interval percentage changes and pairwise divergence ratios.",
        "category": "derivatives",
        "categoryLabel": "Derivatives",
        "tier": "tier1",
        "intervals": [
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "last_price",
            "label": "Last Price",
            "description": "Last traded price observed in the interval"
          },
          {
            "name": "index_price",
            "label": "Index Price",
            "description": "Last index price observed in the interval"
          },
          {
            "name": "mark_price",
            "label": "Mark Price",
            "description": "Last mark price observed in the interval"
          },
          {
            "name": "last_price_pct_change",
            "label": "Last Price % Change",
            "description": "Percentage change from the first last price to the final last price in the interval"
          },
          {
            "name": "index_price_pct_change",
            "label": "Index Price % Change",
            "description": "Percentage change from the first index price to the final index price in the interval"
          },
          {
            "name": "mark_price_pct_change",
            "label": "Mark Price % Change",
            "description": "Percentage change from the first mark price to the final mark price in the interval"
          },
          {
            "name": "mark_index_pct_change_ratio",
            "label": "Mark/Index % Change Ratio",
            "description": "Mark-price return divided by index-price return over the interval"
          },
          {
            "name": "mark_last_pct_change_ratio",
            "label": "Mark/Last % Change Ratio",
            "description": "Mark-price return divided by last-price return over the interval"
          },
          {
            "name": "index_last_pct_change_ratio",
            "label": "Index/Last % Change Ratio",
            "description": "Index-price return divided by last-price return over the interval"
          }
        ]
      },
      {
        "id": "ohlcv",
        "name": "Candlesticks",
        "description": "Open, High, Low, Close, Volume candlestick data with notional volume.",
        "category": "market",
        "categoryLabel": "Market Data",
        "tier": "tier0",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "open",
            "label": "Open",
            "description": "First trade price in the interval"
          },
          {
            "name": "high",
            "label": "High",
            "description": "Highest trade price in the interval"
          },
          {
            "name": "low",
            "label": "Low",
            "description": "Lowest trade price in the interval"
          },
          {
            "name": "close",
            "label": "Close",
            "description": "Last trade price in the interval"
          },
          {
            "name": "volume",
            "label": "Volume",
            "description": "Total traded quantity in the interval"
          },
          {
            "name": "volume_notional",
            "label": "Notional Volume",
            "description": "Total traded notional in the interval"
          }
        ]
      },
      {
        "id": "vtwap",
        "name": "VWAP / TWAP",
        "description": "Volume-weighted and time-weighted average prices for precise execution benchmarks.",
        "category": "market",
        "categoryLabel": "Market Data",
        "tier": "tier0",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "vwap",
            "label": "VWAP",
            "description": "Trade-size-weighted average price in the interval"
          },
          {
            "name": "twap",
            "label": "TWAP",
            "description": "Arithmetic average trade price in the interval"
          }
        ]
      },
      {
        "id": "l1_price",
        "name": "L1 Price",
        "description": "Best bid and ask prices with quantities, midprice, quantity-weighted midprice, time/volume-weighted averages, and quote update frequency.",
        "category": "l1",
        "categoryLabel": "L1 (Top of Book)",
        "tier": "tier2",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "ask_price",
            "label": "Ask Price",
            "description": "Last best ask price in the interval"
          },
          {
            "name": "bid_price",
            "label": "Bid Price",
            "description": "Last best bid price in the interval"
          },
          {
            "name": "ask_amount",
            "label": "Ask Amount",
            "description": "Last best ask quantity in the interval"
          },
          {
            "name": "bid_amount",
            "label": "Bid Amount",
            "description": "Last best bid quantity in the interval"
          },
          {
            "name": "quote_update_frequency",
            "label": "Quote Update Frequency",
            "description": "Number of top-of-book quote updates in the interval"
          },
          {
            "name": "avg_update_interval",
            "label": "Avg Update Interval",
            "description": "Average milliseconds between top-of-book quote updates"
          },
          {
            "name": "midprice",
            "label": "Mid Price",
            "description": "Midpoint between the last best bid and ask prices"
          },
          {
            "name": "weighted_midprice",
            "label": "Weighted Mid Price",
            "description": "Midprice weighted by the opposite-side top-of-book quantity"
          },
          {
            "name": "bid_price_twap",
            "label": "Bid Price TWAP",
            "description": "Average best bid price in the interval"
          },
          {
            "name": "ask_price_twap",
            "label": "Ask Price TWAP",
            "description": "Average best ask price in the interval"
          },
          {
            "name": "bid_price_vwap",
            "label": "Bid Price VWAP",
            "description": "Bid-price average weighted by best bid quantity"
          },
          {
            "name": "ask_price_vwap",
            "label": "Ask Price VWAP",
            "description": "Ask-price average weighted by best ask quantity"
          }
        ]
      },
      {
        "id": "l1_imbalance",
        "name": "L1 Imbalance",
        "description": "Bid/ask imbalance, ratio, percentages — both instantaneous (last) and averaged over the interval.",
        "category": "l1",
        "categoryLabel": "L1 (Top of Book)",
        "tier": "tier3",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "imbalance",
            "label": "Imbalance",
            "description": "Last best-bid quantity minus best-ask quantity in the interval"
          },
          {
            "name": "imbalance_ratio",
            "label": "Imbalance Ratio",
            "description": "Last normalized difference between best-bid and best-ask quantity"
          },
          {
            "name": "bid_ask_ratio",
            "label": "Bid/Ask Ratio",
            "description": "Last best-bid quantity divided by best-ask quantity"
          },
          {
            "name": "bid_percentage",
            "label": "Bid %",
            "description": "Last share of top-of-book quantity resting on the bid side"
          },
          {
            "name": "ask_percentage",
            "label": "Ask %",
            "description": "Last share of top-of-book quantity resting on the ask side"
          },
          {
            "name": "imbalance_avg",
            "label": "Avg Imbalance",
            "description": "Average best-bid quantity minus best-ask quantity in the interval"
          },
          {
            "name": "imbalance_ratio_avg",
            "label": "Avg Imbalance Ratio",
            "description": "Average normalized bid-ask quantity imbalance in the interval"
          },
          {
            "name": "bid_ask_ratio_avg",
            "label": "Avg Bid/Ask Ratio",
            "description": "Average best-bid quantity divided by best-ask quantity in the interval"
          },
          {
            "name": "bid_percentage_avg",
            "label": "Avg Bid %",
            "description": "Average share of top-of-book quantity on the bid side"
          },
          {
            "name": "ask_percentage_avg",
            "label": "Avg Ask %",
            "description": "Average share of top-of-book quantity on the ask side"
          }
        ]
      },
      {
        "id": "l1_liquidity",
        "name": "L1 Liquidity",
        "description": "Spread (absolute and bps), depth, dollar depth — instantaneous and interval-averaged.",
        "category": "l1",
        "categoryLabel": "L1 (Top of Book)",
        "tier": "tier3",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "spread",
            "label": "Spread",
            "description": "Last best ask price minus best bid price in the interval"
          },
          {
            "name": "spread_bps",
            "label": "Spread (bps)",
            "description": "Last bid-ask spread in basis points of the midprice"
          },
          {
            "name": "spread_depth_ratio",
            "label": "Spread/Depth Ratio",
            "description": "Last bid-ask spread divided by total top-of-book quantity"
          },
          {
            "name": "total_depth",
            "label": "Total Depth",
            "description": "Last total top-of-book quantity across bid and ask"
          },
          {
            "name": "dollar_depth_bid",
            "label": "Bid Dollar Depth",
            "description": "Last bid-side top-of-book notional"
          },
          {
            "name": "dollar_depth_ask",
            "label": "Ask Dollar Depth",
            "description": "Last ask-side top-of-book notional"
          },
          {
            "name": "total_dollar_depth",
            "label": "Total Dollar Depth",
            "description": "Last total top-of-book notional across bid and ask"
          },
          {
            "name": "spread_avg",
            "label": "Avg Spread",
            "description": "Average bid-ask spread in the interval"
          },
          {
            "name": "spread_bps_avg",
            "label": "Avg Spread (bps)",
            "description": "Average bid-ask spread in basis points over the interval"
          },
          {
            "name": "spread_depth_ratio_avg",
            "label": "Avg Spread/Depth Ratio",
            "description": "Average spread-to-depth ratio over the interval"
          },
          {
            "name": "total_depth_avg",
            "label": "Avg Total Depth",
            "description": "Average total top-of-book quantity across bid and ask in the interval"
          },
          {
            "name": "dollar_depth_bid_avg",
            "label": "Avg Bid Dollar Depth",
            "description": "Average bid-side top-of-book notional in the interval"
          },
          {
            "name": "dollar_depth_ask_avg",
            "label": "Avg Ask Dollar Depth",
            "description": "Average ask-side top-of-book notional in the interval"
          },
          {
            "name": "total_dollar_depth_avg",
            "label": "Avg Total Dollar Depth",
            "description": "Average total top-of-book notional across bid and ask in the interval"
          }
        ]
      },
      {
        "id": "l2_imbalance",
        "name": "L2 Order Book Imbalance",
        "description": "Multi-depth (5, 10, 20, 25 levels) order book imbalance, ratio, and averages.",
        "category": "l2",
        "categoryLabel": "L2 (Order Book)",
        "tier": "tier3",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "imbalance_5",
            "label": "Imbalance (5 levels)",
            "description": "Last top-5 bid quantity minus top-5 ask quantity"
          },
          {
            "name": "imbalance_10",
            "label": "Imbalance (10 levels)",
            "description": "Last top-10 bid quantity minus top-10 ask quantity"
          },
          {
            "name": "imbalance_20",
            "label": "Imbalance (20 levels)",
            "description": "Last top-20 bid quantity minus top-20 ask quantity"
          },
          {
            "name": "imbalance_25",
            "label": "Imbalance (25 levels)",
            "description": "Last top-25 bid quantity minus top-25 ask quantity"
          },
          {
            "name": "imbalance_ratio_5",
            "label": "Imbalance Ratio (5 levels)",
            "description": "Last normalized difference between top-5 bid and ask quantity"
          },
          {
            "name": "imbalance_ratio_10",
            "label": "Imbalance Ratio (10 levels)",
            "description": "Last normalized difference between top-10 bid and ask quantity"
          },
          {
            "name": "imbalance_ratio_20",
            "label": "Imbalance Ratio (20 levels)",
            "description": "Last normalized difference between top-20 bid and ask quantity"
          },
          {
            "name": "imbalance_ratio_25",
            "label": "Imbalance Ratio (25 levels)",
            "description": "Last normalized difference between top-25 bid and ask quantity"
          },
          {
            "name": "bid_ask_ratio_5",
            "label": "Bid/Ask Ratio (5 levels)",
            "description": "Last top-5 bid quantity divided by top-5 ask quantity"
          },
          {
            "name": "bid_ask_ratio_10",
            "label": "Bid/Ask Ratio (10 levels)",
            "description": "Last top-10 bid quantity divided by top-10 ask quantity"
          },
          {
            "name": "bid_ask_ratio_20",
            "label": "Bid/Ask Ratio (20 levels)",
            "description": "Last top-20 bid quantity divided by top-20 ask quantity"
          },
          {
            "name": "bid_ask_ratio_25",
            "label": "Bid/Ask Ratio (25 levels)",
            "description": "Last top-25 bid quantity divided by top-25 ask quantity"
          },
          {
            "name": "imbalance_5_avg",
            "label": "Avg Imbalance (5 levels)",
            "description": "Average top-5 bid quantity minus top-5 ask quantity in the interval"
          },
          {
            "name": "imbalance_10_avg",
            "label": "Avg Imbalance (10 levels)",
            "description": "Average top-10 bid quantity minus top-10 ask quantity in the interval"
          },
          {
            "name": "imbalance_20_avg",
            "label": "Avg Imbalance (20 levels)",
            "description": "Average top-20 bid quantity minus top-20 ask quantity in the interval"
          },
          {
            "name": "imbalance_25_avg",
            "label": "Avg Imbalance (25 levels)",
            "description": "Average top-25 bid quantity minus top-25 ask quantity in the interval"
          },
          {
            "name": "imbalance_ratio_5_avg",
            "label": "Avg Imbalance Ratio (5 levels)",
            "description": "Average normalized difference between top-5 bid and ask quantity in the interval"
          },
          {
            "name": "imbalance_ratio_10_avg",
            "label": "Avg Imbalance Ratio (10 levels)",
            "description": "Average normalized difference between top-10 bid and ask quantity in the interval"
          },
          {
            "name": "imbalance_ratio_20_avg",
            "label": "Avg Imbalance Ratio (20 levels)",
            "description": "Average normalized difference between top-20 bid and ask quantity in the interval"
          },
          {
            "name": "imbalance_ratio_25_avg",
            "label": "Avg Imbalance Ratio (25 levels)",
            "description": "Average normalized difference between top-25 bid and ask quantity in the interval"
          },
          {
            "name": "bid_ask_ratio_5_avg",
            "label": "Avg Bid/Ask Ratio (5 levels)",
            "description": "Average top-5 bid quantity divided by top-5 ask quantity in the interval"
          },
          {
            "name": "bid_ask_ratio_10_avg",
            "label": "Avg Bid/Ask Ratio (10 levels)",
            "description": "Average top-10 bid quantity divided by top-10 ask quantity in the interval"
          },
          {
            "name": "bid_ask_ratio_20_avg",
            "label": "Avg Bid/Ask Ratio (20 levels)",
            "description": "Average top-20 bid quantity divided by top-20 ask quantity in the interval"
          },
          {
            "name": "bid_ask_ratio_25_avg",
            "label": "Avg Bid/Ask Ratio (25 levels)",
            "description": "Average top-25 bid quantity divided by top-25 ask quantity in the interval"
          }
        ]
      },
      {
        "id": "l2_liquidity",
        "name": "L2 Order Book Liquidity",
        "description": "Total bid/ask depth aggregated over 5, 10, 20, 25 order book levels — instantaneous and interval-averaged.",
        "category": "l2",
        "categoryLabel": "L2 (Order Book)",
        "tier": "tier3",
        "intervals": [
          "15s",
          "30s",
          "1m",
          "5m",
          "15m",
          "30m",
          "1h",
          "4h",
          "1d"
        ],
        "exchanges": [
          "binance-futures",
          "okx-perps",
          "hyperliquid-perps"
        ],
        "fields": [
          {
            "name": "ask_agg_5",
            "label": "Ask Aggregate (5 levels)",
            "description": "Last total ask quantity across the top 5 levels"
          },
          {
            "name": "ask_agg_10",
            "label": "Ask Aggregate (10 levels)",
            "description": "Last total ask quantity across the top 10 levels"
          },
          {
            "name": "ask_agg_20",
            "label": "Ask Aggregate (20 levels)",
            "description": "Last total ask quantity across the top 20 levels"
          },
          {
            "name": "ask_agg_25",
            "label": "Ask Aggregate (25 levels)",
            "description": "Last total ask quantity across the top 25 levels"
          },
          {
            "name": "bid_agg_5",
            "label": "Bid Aggregate (5 levels)",
            "description": "Last total bid quantity across the top 5 levels"
          },
          {
            "name": "bid_agg_10",
            "label": "Bid Aggregate (10 levels)",
            "description": "Last total bid quantity across the top 10 levels"
          },
          {
            "name": "bid_agg_20",
            "label": "Bid Aggregate (20 levels)",
            "description": "Last total bid quantity across the top 20 levels"
          },
          {
            "name": "bid_agg_25",
            "label": "Bid Aggregate (25 levels)",
            "description": "Last total bid quantity across the top 25 levels"
          },
          {
            "name": "ask_agg_5_avg",
            "label": "Avg Ask Aggregate (5 levels)",
            "description": "Average total ask quantity across the top 5 levels in the interval"
          },
          {
            "name": "ask_agg_10_avg",
            "label": "Avg Ask Aggregate (10 levels)",
            "description": "Average total ask quantity across the top 10 levels in the interval"
          },
          {
            "name": "ask_agg_20_avg",
            "label": "Avg Ask Aggregate (20 levels)",
            "description": "Average total ask quantity across the top 20 levels in the interval"
          },
          {
            "name": "ask_agg_25_avg",
            "label": "Avg Ask Aggregate (25 levels)",
            "description": "Average total ask quantity across the top 25 levels in the interval"
          },
          {
            "name": "bid_agg_5_avg",
            "label": "Avg Bid Aggregate (5 levels)",
            "description": "Average total bid quantity across the top 5 levels in the interval"
          },
          {
            "name": "bid_agg_10_avg",
            "label": "Avg Bid Aggregate (10 levels)",
            "description": "Average total bid quantity across the top 10 levels in the interval"
          },
          {
            "name": "bid_agg_20_avg",
            "label": "Avg Bid Aggregate (20 levels)",
            "description": "Average total bid quantity across the top 20 levels in the interval"
          },
          {
            "name": "bid_agg_25_avg",
            "label": "Avg Bid Aggregate (25 levels)",
            "description": "Average total bid quantity across the top 25 levels in the interval"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": "market",
        "label": "Market Data",
        "headline": "Precise candlestick and VWAP/TWAP data for every instrument and interval.",
        "description": "Point-in-time candlestick and VWAP/TWAP data aggregated from raw exchange feeds. No survivorship bias, no look-ahead — just clean bars ready for research."
      },
      {
        "id": "derivatives",
        "label": "Derivatives",
        "headline": "Perpetual swap analytics for funding, OI, and price dynamics.",
        "description": "Pre-computed derivatives metrics — funding rates, open interest, basis, and mark/index prices — built from high-frequency exchange snapshots and aggregated into research-ready intervals."
      },
      {
        "id": "trades",
        "label": "Trades",
        "headline": "Deep microstructure signals from every raw trade.",
        "description": "Comprehensive trade-level analytics — order flow, size distribution, market impact, price volatility, tick structure, and execution slippage — all aggregated from full trade-by-trade history."
      },
      {
        "id": "l1",
        "label": "L1 — Top of Book",
        "headline": "Millisecond-resolution best bid/ask analytics.",
        "description": "Top-of-book quote data distilled into interval aggregates: spread, depth, imbalance, mid-price dynamics, and update frequencies — enabling high-resolution microstructure research without raw tick storage."
      },
      {
        "id": "l2",
        "label": "L2 — Order Book",
        "headline": "Multi-level order book depth, liquidity, and imbalance.",
        "description": "Order book analytics aggregated across 5, 10, 20, and 25 levels — capturing depth, imbalance, and liquidity dynamics at each granularity without storing terabytes of raw snapshots."
      }
    ],
    "intervals": {
      "values": [
        "15s",
        "30s",
        "1m",
        "5m",
        "15m",
        "30m",
        "1h",
        "4h",
        "1d"
      ],
      "tier3": [
        "15s",
        "30s"
      ],
      "timestampTrueRequired": []
    },
    "exchanges": {
      "values": [
        "binance-futures",
        "okx-perps",
        "hyperliquid-perps"
      ],
      "notAvailable": {
        "binance-futures": [],
        "okx-perps": [],
        "hyperliquid-perps": []
      }
    }
  },
  "tiers": {
    "labels": {
      "open": "Open",
      "tier0": "Tier 0",
      "tier1": "Tier 1",
      "tier2": "Tier 2",
      "tier3": "Tier 3",
      "tier4": "Tier 4"
    },
    "styles": {
      "open": "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400",
      "tier0": "bg-foreground/10 text-foreground/60",
      "tier1": "bg-blue-500/10 text-blue-600 dark:text-blue-400",
      "tier2": "bg-violet-500/10 text-violet-600 dark:text-violet-400",
      "tier3": "bg-amber-500/10 text-amber-600 dark:text-amber-400",
      "tier4": "bg-rose-500/10 text-rose-600 dark:text-rose-400"
    }
  },
  "theme": {
    "palette": {
      "cream": "FAF8F5",
      "ink": "14110B",
      "fg70": "4A463E",
      "fg60": "6B665D",
      "fg50": "837E74",
      "fg40": "9B958B",
      "fg30": "B6B0A6",
      "line": "ECE6DD",
      "line2": "E3DCCF",
      "chipBg": "F0EBE3",
      "chipText": "6B665D",
      "amberBg": "F6ECD5",
      "amberText": "A4690F"
    },
    "fonts": {
      "heading": "Mona Sans Expanded",
      "sans": "Arial",
      "mono": "Roboto Mono"
    }
  }
}
