KacDataDocs
Data Schemas

Overview

KacData Parquet schemas for Kalshi, and timestamp conventions.

KacData historical data is delivered as Apache Parquet files. Schema pages define the fields and row semantics of each downloaded file.

Available schemas

SchemaData typeDescriptionUse case
L2l2Order book snapshots and signed deltas, with synthesized start-of-day and end-of-day booksOrder book replay and liquidity analysis
TradestradesTrades from the Kalshi trade channelPrice, volume and trade-flow analysis
TickertickerBest bid and ask, last price, volume and open interestTop-of-book and market activity analysis
LifecyclelifecycleMarket and event lifecycle messages for every marketMarket status, determination and settlement analysis

Timestamps

All timestamps use UTC and microsecond precision (timestamp[us]).

  • timestamp is the time supplied by Kalshi in the message (ts_ms, millisecond precision). It is null for messages that carry no source time, such as order book snapshots.
  • local_timestamp is when the KacData collector received the WebSocket message.

The difference between timestamp and local_timestamp represents delivery and processing latency.

File conventions

  • Column names are Kalshi's field names in snake_case, without encoding suffixes such as _dollars and _fp.
  • Prices and sizes are stored as decimal(18,4). Prices are in dollars (0 to 1); sizes are numbers of contracts.
  • L2 contains two event types in one schema. Fields that do not apply to a row's event_type are null.
  • Order book levels use Parquet list columns; index 0 is the best price.
  • The row order of a file is the replay order. Do not re-sort by timestamp.