Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.dune.com/llms.txt

Use this file to discover all available pages before exploring further.

The kalshi.ohlcv_hourly table provides hourly OHLCV (Open-High-Low-Close-Volume) candles per Kalshi market. Grain: one row per (hour, market_id, outcome). Kalshi candles are built on the Yes side (No can be derived as 1 - Yes). Hours without trades carry the previous close forward and are flagged via is_forward_filled. Resolved markets are pinned to 1.0 / 0.0 after expiration.

Table Schema

ColumnTypeDescription
block_monthDATEUTC month partition derived from hour
hourTIMESTAMPUTC hour bucket for the candle
market_idVARCHARKalshi market ticker
market_nameVARCHARMarket question text
outcomeVARCHARAlways Yes for Kalshi
yes_outcome_nameVARCHARHuman-readable label of the Yes side
categoryVARCHARMarket category
openDOUBLEOpening price in the hour
highDOUBLEHigh price in the hour
lowDOUBLELow price in the hour
closeDOUBLEClosing price in the hour
vwapDOUBLEVolume-weighted average price. NULL when no trades
volume_contractsDOUBLETotal contracts traded in the hour
volume_usdDOUBLETotal USD notional in the hour
trade_countBIGINTNumber of trades in the hour
market_end_timeTIMESTAMPMarket expiration time
market_outcomeVARCHARSettled outcome (yes, no, scalar). NULL while unresolved
event_market_nameVARCHARParent event title
is_forward_filledBOOLEANTRUE when the bar has no trades and was carried forward
_updated_atTIMESTAMPWhen this row was last written by the pipeline

Table sample

Query performance

block_month is the partition key. Always include a block_month or hour filter for time-series queries.

Example query

-- Hourly price path for a single market
SELECT
  hour,
  open,
  high,
  low,
  close,
  volume_contracts
FROM kalshi.ohlcv_hourly
WHERE market_id = 'KXNHLGAME-26MAY03MINCOL-MIN'
  AND block_month >= DATE '2026-05-01'
ORDER BY hour