Inspiration

The same football game trades at the same moment on Kalshi, polymarket.com and Polymarket US. If one venue updates its price first, the others are briefly stale, and a fast trader could pick them off. We wanted to know two things: is Kalshi fast, and is Kalshi priced right?

What it does

StaleLine records live order books on all three venues and tests both questions with rules written down in advance.

Lead-lag: does one venue's price move first? Strategy A: buy the Kalshi favorite before kickoff (the favorite-longshot bias). A-maker: the same idea placed as a resting order. Strategy B: trade Kalshi toward polymarket.com when the two disagree. HYPOTHESIS_v4, our strategy going forward: a patient market maker that posts both a bid and an ask and lets impatient traders pay the spread. How we built it Python recorders on a cloud server and a laptop captured Kalshi and polymarket.com books by websocket, plus Polymarket US quotes. Historical Kalshi and polymarket.com trades formed the training set. Pre-registration: every hypothesis, rule and holdout game list was committed to git before the data it governs. Commit timestamps are the proof. Strategies were tuned only on games before Aug 1, 2026, then run once on a sealed holdout. Costs are real: Webull's $0.02 per contract, Kalshi's fee formula, and the bid-ask spread. Every result is also shown with costs doubled. Every number in the 5-page note is generated from committed result files, and scripts/reproduce.sh regenerates and checks all of them. We logged every variant we tried (566 in total) and corrected for them with the deflated Sharpe ratio and White's Reality Check. What we found Kalshi is fast. On book midpoints, Kalshi and polymarket.com move in the same second: median lag 0.0 s, p = 0.709, 88 games. Neither venue leads. Kalshi is priced right within costs. The favorite-longshot bias is real in direction, but smaller than taker costs. On the holdout: Strategy A returned -3.0% on capital [-6.9%, +0.6%], Sharpe -3.81. A-maker filled 9 of 314 attempts and returned -15.0% on capital (adverse selection). Strategy B lost 4.67 c per contract over 2,478 trades, Sharpe -7.76. The combined book had a Sharpe of -7.78. 566 trials, no edge. The Reality Check over the largest set (479 trials) gives p = 0.47: the best result looks like luck. Challenges: three traps that faked an edge Thin trade prints fake lags. Trade-based lead-lag said Kalshi led by seconds. Unrelated games showed the same "lead", and simulation confirmed the bias. Book midpoints fixed it. Cached quotes fake leads. A 7.5 s Kalshi lead over Polymarket US (p = 3.24e-8) turned out to come from a 30 s cached data feed. Trading it looked like +1.48 c per contract on polled quotes, but fills confirmed by real trades lost 4.09 c. We report the result and do not claim it. Leg-conditional execution fakes arbitrage. A cross-venue arbitrage showed +1.65 c per contract only because it assumed the second leg would fill. Counted honestly, it is -1.57 c. Our strategy: passive market making (HYPOTHESIS_v4)

Every taker strategy lost roughly the spread. So we asked who collects it.

A plain maker on polymarket.com (join the best bid and ask, 10 contracts, inventory cap ±50) earned +1.09 c per contract [0.17, 2.12] on Oct 3, with a per-game Sharpe of 0.22 [0.05, 0.35]. It captured 1.63 c of spread and lost only 0.40 c to adverse selection. It loses at 1 c spreads (-0.62 c) and earns at 3 c or more (+2.73 c), so Arm B quotes only when spreads are wide.

The honest part: this was found after the fact, on one day, and five games carry $41.75 of the $46.53. Without them it is +0.15 c. Profitable on the one day we have, not proven. So we froze the exact rules at commit 94aa1a0 before any test data existed. The confirmatory test runs once on every college and NFL game from Oct 8 to 12, 2026, and we will report the result either way.

Live on today's games: the paper maker is running live on today's NFL games (paper only, no real orders). This morning's run on Colts at Commanders saw 48 trades and 0 fills, because a deep NFL book leaves a 10-contract quote at the back of the queue. The edge, if it exists, lives in thinner college markets with wide spreads.

What we learned A rigorous null beats a fragile positive. Most "edges" in market microstructure are measurement artifacts: thin prints, stale caches, optimistic fills. Pre-registration and one-shot holdouts are what let us tell the difference. The binding constraint here is cost, not information. What's next Record polymarket.com and Polymarket US books (authenticated websocket, venue timestamps) through every game Oct 8 to 12. Run HYPOTHESIS_v4 once after Oct 13 and publish the result, positive or not.

Keep the "Live on today's games" paragraph only if Claude Code has confirmed the live run started. Otherwise, replace it with:

Live paper demo: the paper maker ran live this morning on Colts at Commanders (pre-game, no real orders): 48 trades seen, 0 fills, because a deep NFL book leaves a 10-contract quote at the back of the queue. The edge, if it exists, lives in thinner college markets with wide spreads.

Built With

Share this project:

Updates

Submission history