We sell a $9, two-day tryout of the Kalshi Microstructure Tape — the same live capture as the $199 full archive, just two real days of it: 2026-07-18 and 2026-07-19. Rather than tell you what's in it, we wrote a script that computes every number below, wrote a second script that checks our own prose against the first script's output number-for-number, and are publishing both. Nothing here is a trading signal or a profitable-strategy claim — it's a walkthrough of the data.
Download the exact script we ran: first_insight_kalshi_tryout.py. Point it at your own copy of the ZIP and you'll get the same output.
What's actually in the ZIP
Two UTC days, straight from the manifest and re-counted directly from the Parquet files:
- 21,520,801 order-book depth rows across 40 ticker families (MLB, WNBA, NFL, ATP/WTA tennis, soccer, esports, UFC and more) — the depth file is a cross-sport sample, not MLB-only.
- 746,890 trade prints, but only 3 families actually traded in this window: MLB (596,392 prints), WNBA (150,097 prints), and NFL (401 prints — preseason, thin).
- Depth is polled, not streamed: 4,013 global poll timestamps over the two days, median interval 43.1s, worst observed gap 77.3s — zero gaps over 120s.
- Each poll only carries the top ~150 markets by volume, not the whole exchange (median 150 tickers per poll, minimum 138) — a market can drop out of the file if it's quiet, independent of whether Kalshi itself still lists it.
- Depth is capped at 20 book levels per side, prices in whole cents (1–99).
Read COVERAGE.md and SCHEMA.md in the ZIP for the full, authoritative disclosure — this post is a walkthrough on top of them, not a replacement.
Insight 1 — bid/ask spread and depth around a live game
The script picks the highest-volume MLB game ticker in the sample automatically (not hand-picked) — in this run, KXMLBGAME-26JUL182008SFSEA-SF (20,173 trade prints, the most of any ticker), and pulls its level-0 book across every poll that included it (1,289 two-sided snapshots).
| Game state (tagged from the nearest prior trade) | Snapshots | Median spread | Median top-of-book depth (contracts) |
|---|---|---|---|
| pregame | 1,019 | 1c | 774,994 |
| live | 84 | 1c | 173,600 |
| late_game | 186 | 1c | 120,232 |
Overall median spread across all 1,289 snapshots: 1c (mean 1.02c, max observed 4c).
Read: the spread on this MLB moneyline market is almost always a single cent, live or not — what moves is depth. The book was far deeper in the long pregame stretch (median ~775k contracts) than once the game went live (~174k) or reached the late innings (~120k). A thick pregame book is not a promise of a thick live book. This describes one game's book shape, not a rule about all games — see the guide's honest-limits section for sample-size caveats.
Insight 2 — how fast does the book reprice after a score change?
Every score-change event across all 84 MLB game tickers in the two days, with the book's mid-price looked up just before and at the next available poll after it:
| Metric | Value |
|---|---|
| Score-change events found | 540 |
| Events with usable before/after snapshots | 479 |
| Median latency to the next observed poll | 29.1s |
| Median absolute mid-price move by that next poll | 1.0c |
| Share of events where the next poll moved ≥1c | 65.6% |
| Share moved ≥1c within 300s | 74.4% |
Read: most of the price adjustment from a scoring change is visible by the very next poll (bounded by the ~43s poll cadence itself — this data can't resolve anything faster than that), and keeps building for several minutes. This measures how fast the observed, polled book catches up, not whether the move was tradeable.
Insight 3 — taker imbalance and the price move that follows
Trades bucketed into 15-minute windows per ticker; each window's signed taker-volume imbalance vs. the next window's price move (n=1,403 window-pairs with ≥5 trades on both sides):
| Bucket | n | Mean next-window move | 95% CI |
|---|---|---|---|
| Sell-heavy (imbalance < -0.3) | 58 | -0.26c | [-0.88, 0.36] |
| Balanced (-0.3 to 0.3) | 186 | +0.47c | [-1.62, 2.57] |
| Buy-heavy (imbalance > 0.3) | 1,159 | -0.10c | [-0.70, 0.50] |
Correlation between a window's imbalance and the next window's move: r = -0.021 (essentially zero).
Read: in this two-day sample, how one-sided the taker flow was in a 15-minute window told you essentially nothing about which way the price moved in the next window — every bucket's confidence interval straddles zero. This is not a signal and not a trading strategy; it's a direct, honest measurement that naive taker-imbalance didn't forecast forward price on this data. That doesn't rule out imbalance being useful combined with other features or on a longer sample.
Insight 4 — data-quality self-check
Before trusting any of the above, the script checks its own inputs:
price_cbounds: 1–99c (never 0 or 100).levelbounds: 0-19 (the 20-level cap holds).- Negative/malformed sizes: 0. Trades where YES + NO price ≠ 100c: 0 of 746,890.
- Crossed or locked books at level 0: 0 crossed, out of 553,843 two-sided snapshots checked, across every sport in the file.
- For MLB specifically, the top-of-book is unchanged from the previous poll 90.3% of the time — most of what you're paying for in a depth snapshot is confirmation the book didn't move, not a new price.
Honest limits
- Two days, one small slice — 540 score-change events and 1,403 window-pairs describe this sample, not a foundation for a strategy. Per house statistical discipline: no conclusion below n≈30, and Insight 3's confidence intervals straddling zero is the result, not a null result to explain away.
- Only 3 trade-print families traded in this window even though the depth file spans 40 sport families.
- Depth is polled, not streamed — sub-poll-interval dynamics are invisible by construction.
How this guide was checked
Every number above was produced by first_insight_kalshi_tryout.py running against a clean copy of the tryout ZIP, then verified with a second script that asserts every figure the first script computed appears verbatim in this text — so this post can't silently drift from what the code actually produced.
Try it yourself: download the script, then get the $9 two-day tryout or the $199 full tape if two days is what you needed to see.
As always: this is research and backtest data, not a trading signal.