← Back to blog

First Insight: What's In the $9 Kalshi Microstructure Tryout

By the ZenHodl team — we run the trading bots this blog writes about, and the qualifying live-position record, including losses, is public with its admission rules at /results.

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:

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:

Honest limits

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.

Related reading

Get ZenHodl Weekly

One weekly email with live results, one model insight, and product updates.

Tuesday mornings. No spam.

Want the data behind this post?

Historical sports prediction-market datasets with measured coverage, documented schemas, and disclosed gaps.

Join the community

Discuss strategies, share results, get help.

Join Discord