> ## 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.

# kalshi.market_trades

> Kalshi per-fill trade table — one row per trade with USD notional and derived taker fee.

export const TableSample = ({tableName, tableSchema}) => <>
    <div className="hidden dark:block">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}&darkMode=true`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
    <div className="dark:hidden">
      <iframe src={`https://dune.com/embeds/3419983/5785629?table_schema_t6f0df=${tableSchema}&table_name_t6f0df=${tableName}`} style={{
  width: '100%',
  height: '500px',
  border: 'none',
  marginTop: '10px'
}} />
    </div>
  </>;

The `kalshi.market_trades` table contains per-fill trade activity on Kalshi. Grain: one row per Kalshi trade. Each row includes the side the taker was on, prices for both sides, USD notional, and (when fee structure is available) the taker fee in USD. Market-level fields like `title`, `status`, and series-level fee parameters are denormalized for query convenience.

## Table Schema

| Column              | Type        | Description                                                             |
| ------------------- | ----------- | ----------------------------------------------------------------------- |
| `trade_id`          | `VARCHAR`   | Unique trade identifier                                                 |
| `ticker`            | `VARCHAR`   | Market ticker                                                           |
| `created_time`      | `TIMESTAMP` | When the trade occurred                                                 |
| `block_month`       | `DATE`      | First day of the calendar month of `created_time` (partition key)       |
| `taker_side`        | `VARCHAR`   | Which side the taker was on (`yes` / `no`)                              |
| `count_fp`          | `DOUBLE`    | Number of contracts traded (fractional)                                 |
| `yes_price_dollars` | `DOUBLE`    | Price paid for the Yes side                                             |
| `no_price_dollars`  | `DOUBLE`    | Price paid for the No side                                              |
| `amount_usd`        | `DOUBLE`    | USD notional of the trade (taker price × `count_fp`)                    |
| `fee_usd`           | `DOUBLE`    | Taker fee for this fill in USD. NULL when fee structure isn't available |
| `event_ticker`      | `VARCHAR`   | Parent event identifier                                                 |
| `series_ticker`     | `VARCHAR`   | Series the event belongs to                                             |
| `market_type`       | `VARCHAR`   | Market type                                                             |
| `title`             | `VARCHAR`   | Market question text                                                    |
| `subtitle`          | `VARCHAR`   | Market subtitle                                                         |
| `status`            | `VARCHAR`   | Market lifecycle state                                                  |
| `result`            | `VARCHAR`   | Settlement outcome (NULL while unresolved)                              |
| `frequency`         | `VARCHAR`   | Series-level recurrence cadence                                         |
| `fee_type`          | `VARCHAR`   | Series-level fee model                                                  |
| `fee_multiplier`    | `DOUBLE`    | Series-level fee scalar                                                 |
| `_updated_at`       | `TIMESTAMP` | When this row was last written by the pipeline                          |

## Table sample

<TableSample tableSchema="kalshi" tableName="market_trades" />

## Query performance

`block_month` is the partition key. Always include a `block_month` or `created_time` filter for trade-history queries.

```sql theme={null}
-- ✅ Good: bounded by partition
SELECT * FROM kalshi.market_trades
WHERE block_month >= DATE '2026-04-01'
  AND ticker = 'KXNHLGAME-26MAY03MINCOL-MIN'
```

## Example query

```sql theme={null}
-- Top markets by USD volume in the last 7 days
SELECT
  ticker,
  title,
  COUNT(*) AS num_trades,
  SUM(amount_usd) AS total_volume_usd
FROM kalshi.market_trades
WHERE created_time >= NOW() - INTERVAL '7' DAY
GROUP BY 1, 2
ORDER BY 4 DESC
LIMIT 20
```
