Data Schema
47-Column Orderbook Depth Schema
Every row represents a 5-minute aggregated perpetual futures orderbook snapshot. 10-level bid/ask depth with volume and distance-from-mid-price metrics.
Ready for Pandas, DuckDB, Apache Spark, and any analytics tool.
47
Total Columns
7
Core + OHLCV
10
Bid Volume Levels
10
Ask Volume Levels
20
Distance Metrics
Core
2 columns| # | Column Name | Data Type | Description |
|---|---|---|---|
| 1 | timestamp_utc | DateTime | ISO 8601 UTC timestamp of bar open |
| 2 | instrument_symbol | String | Trading pair (e.g., BTC-USDT) |
OHLCV
5 columns| # | Column Name | Data Type | Description |
|---|---|---|---|
| 3 | open_price | Float | Mid-price at bar open |
| 4 | high_price | Float | Highest mid-price in bar |
| 5 | low_price | Float | Lowest mid-price in bar |
| 6 | close_price | Float | Mid-price at bar close |
| 7 | interval_traded_volume | Float | Taker flow volume proxy |
Bid Volume
10 columns| # | Column Name | Data Type | Description |
|---|---|---|---|
| 8 | bid_volume_level_1 | Float | Cumulative passive bid volume at depth level 1 |
| 9 | bid_volume_level_2 | Float | Cumulative passive bid volume at depth level 2 |
| 10 | bid_volume_level_3 | Float | Cumulative passive bid volume at depth level 3 |
| 11 | bid_volume_level_4 | Float | Cumulative passive bid volume at depth level 4 |
| 12 | bid_volume_level_5 | Float | Cumulative passive bid volume at depth level 5 |
| 13 | bid_volume_level_6 | Float | Cumulative passive bid volume at depth level 6 |
| 14 | bid_volume_level_7 | Float | Cumulative passive bid volume at depth level 7 |
| 15 | bid_volume_level_8 | Float | Cumulative passive bid volume at depth level 8 |
| 16 | bid_volume_level_9 | Float | Cumulative passive bid volume at depth level 9 |
| 17 | bid_volume_level_10 | Float | Cumulative passive bid volume at depth level 10 |
Ask Volume
10 columns| # | Column Name | Data Type | Description |
|---|---|---|---|
| 18 | ask_volume_level_1 | Float | Cumulative passive ask volume at depth level 1 |
| 19 | ask_volume_level_2 | Float | Cumulative passive ask volume at depth level 2 |
| 20 | ask_volume_level_3 | Float | Cumulative passive ask volume at depth level 3 |
| 21 | ask_volume_level_4 | Float | Cumulative passive ask volume at depth level 4 |
| 22 | ask_volume_level_5 | Float | Cumulative passive ask volume at depth level 5 |
| 23 | ask_volume_level_6 | Float | Cumulative passive ask volume at depth level 6 |
| 24 | ask_volume_level_7 | Float | Cumulative passive ask volume at depth level 7 |
| 25 | ask_volume_level_8 | Float | Cumulative passive ask volume at depth level 8 |
| 26 | ask_volume_level_9 | Float | Cumulative passive ask volume at depth level 9 |
| 27 | ask_volume_level_10 | Float | Cumulative passive ask volume at depth level 10 |
Bid Distance
10 columns| # | Column Name | Data Type | Description |
|---|---|---|---|
| 28 | bid_distance_level_1 | Float | Distance from mid-price in basis points (bid, level 1) |
| 29 | bid_distance_level_2 | Float | Distance from mid-price in basis points (bid, level 2) |
| 30 | bid_distance_level_3 | Float | Distance from mid-price in basis points (bid, level 3) |
| 31 | bid_distance_level_4 | Float | Distance from mid-price in basis points (bid, level 4) |
| 32 | bid_distance_level_5 | Float | Distance from mid-price in basis points (bid, level 5) |
| 33 | bid_distance_level_6 | Float | Distance from mid-price in basis points (bid, level 6) |
| 34 | bid_distance_level_7 | Float | Distance from mid-price in basis points (bid, level 7) |
| 35 | bid_distance_level_8 | Float | Distance from mid-price in basis points (bid, level 8) |
| 36 | bid_distance_level_9 | Float | Distance from mid-price in basis points (bid, level 9) |
| 37 | bid_distance_level_10 | Float | Distance from mid-price in basis points (bid, level 10) |
Ask Distance
10 columns| # | Column Name | Data Type | Description |
|---|---|---|---|
| 38 | ask_distance_level_1 | Float | Distance from mid-price in basis points (ask, level 1) |
| 39 | ask_distance_level_2 | Float | Distance from mid-price in basis points (ask, level 2) |
| 40 | ask_distance_level_3 | Float | Distance from mid-price in basis points (ask, level 3) |
| 41 | ask_distance_level_4 | Float | Distance from mid-price in basis points (ask, level 4) |
| 42 | ask_distance_level_5 | Float | Distance from mid-price in basis points (ask, level 5) |
| 43 | ask_distance_level_6 | Float | Distance from mid-price in basis points (ask, level 6) |
| 44 | ask_distance_level_7 | Float | Distance from mid-price in basis points (ask, level 7) |
| 45 | ask_distance_level_8 | Float | Distance from mid-price in basis points (ask, level 8) |
| 46 | ask_distance_level_9 | Float | Distance from mid-price in basis points (ask, level 9) |
| 47 | ask_distance_level_10 | Float | Distance from mid-price in basis points (ask, level 10) |
Quick Start
Load & Explore in 3 Lines
Python (Pandas)
import pandas as pd
df = pd.read_parquet('btc_l2_depth_5m.parquet')
print(df.columns.tolist())
print(f"Shape: {df.shape}")
print(df[['timestamp_utc', 'close_price',
'bid_volume_level_1',
'ask_volume_level_1']].head())SQL (DuckDB)
-- Explore the schema
DESCRIBE SELECT * FROM
read_parquet('btc_l2_depth_5m.parquet');
-- Compute bid-ask imbalance
SELECT timestamp_utc,
close_price,
bid_volume_level_1 / NULLIF(
bid_volume_level_1 + ask_volume_level_1, 0
) AS bid_ask_imbalance
FROM read_parquet('btc_l2_depth_5m.parquet')
LIMIT 10;Pro
1m Pro Schema — 121 Columns
The Pro dataset uses 1-minute bars with 30 depth levels. Raw price and size at each level (not normalized to basis points). Schema: bid_1_px..bid_30_px, bid_1_sz..bid_30_sz, ask_1_px..ask_30_px, ask_1_sz..ask_30_sz + timestamp.
Ready to Start Your Research?
Download the free 7-day sample to explore the full 47-column schema with real data.