Field guide for researchers
Keep raw fields intact and derive features in a separate research step.
Core records
| Record | Purpose | Typical fields |
|---|---|---|
| ticks | Event-driven top-of-book | ts, event_slug, best bid/ask |
| depth | Visible book levels | ts, price, size, side, level; up to 20 each side |
| market_outcomes | Post-event labels | market identity, outcome, resolution |
| seen_markets | Discovery and coverage audit | interval, first/last seen |
Recommended keys
event_slugtsoutcomesidepricesizelevel
Limitations
- Visible size is not a fill. Queue position, cancellations, latency, and hidden liquidity are not fully observed.
- No complete trade tape. Do not label every quote change as a trade.
- Outcomes are labels, not features. Use only for post-close evaluation.
- Coverage is operational. Use
seen_marketsand timestamps to audit gaps.
Minimal loading
import polars as pl
ticks = pl.read_parquet("hourly/ticks/*.parquet")
depth = pl.read_parquet("hourly/depth/*.parquet")