The Gap Desk
Menu
Piece 04 · Kalshi weather · the latency study

The weather was in the price before it was published.

The desk's robot watched 217 Kalshi temperature brackets die, each one ruled out by the settlement station's own reading, to time how long the price took to admit it. It never got to time anything. Every one was already a penny by the time the reading reached the public weather feed, and in the 56 cases where the desk happened to look before that, it was a penny then too. A faster poller of the public feed has nothing to be faster than.

Published 2026-10-03 · watches 2026-09-26 15:34 to 2026-09-30 12:43 UTC · 217 watches in 20 cities, every one since the study's order-book bug was fixed · every figure is computed from the watches and the desk's hourly reads, method at the end

Brackets watched
217
20 cities · 128 highs, 89 lows
A window found
0
of 217 · under 1.4% at 95%
Reading to public feed
13.3 min
median, at least · shortest 5.1
Reading to the desk
15.8 min
median · the desk's polling is at most 2.5
A penny already
138 of 217
before the reading was taken
Stale money traded
$0
25 trades, all Yes at 1¢

Piece 01 decoded a Polymarket wallet that trades the moment a station reading decides a temperature bracket. Piece 02 found who collects the cent once a Kalshi bracket is dead. Piece 03 found that across the whole Polymarket table the edge is timing: a copier a minute behind loses it. This piece puts a clock on the moment all three turn on, on Kalshi, where a US person can trade. When the settlement station's reading rules a bracket out, how long does the price take to agree, and is there a window, in seconds or in dollars, for someone who reads the public weather feed fast?

The watch

The desk already reads every bracket of Kalshi's daily-high and daily-low ladders, and the readings of the station each market settles on. When a reading clears a bracket by the desk's safety margin, a full degree Fahrenheit, the bracket is dead. That margin is why none of the 690 brackets the desk has called dead has ever settled Yes. The moment the desk sees a reading kill a bracket, the study opens a watch: it samples the bracket's order book every thirty seconds until the price has agreed (no Yes ask above a penny and no Yes bid at 3¢ or better, twice running) or ninety minutes pass, and it pulls the exchange's trade tape for the whole window, so what traded while the price was wrong is counted rather than guessed.

Nothing to time

It opened 217 watches in the four days after the study's order-book bug was fixed. Every one was already over at its first look. At the moment the desk first saw the reading that killed the bracket, the Yes ask was already a penny and nobody was bidding 3¢ or better for Yes, 217 times out of 217. There was no stale price to measure, no money resting on the wrong side, and nothing traded into it. The only trades after a kill were 25 purchases of Yes at a penny, on brackets already ruled out.

217 of 217. By the time the reading was public, the price had already agreed.

Zero in 217 does not prove a window never opens. It bounds it: if a window opened as often as one time in 72, a run of 217 without one would happen less than one time in twenty.

Before the reading was public

The watch only starts when the desk sees the reading, so on its own it cannot say how long before that the price moved. The desk's other robot can. It reads every bracket once an hour on its own clock, and 56 of those hourly reads happened to fall after a killing reading was taken but before that reading could have reached the public feed. The desk's own polling puts a hard floor under when a reading went public; the method explains it. All 56 were already a penny.

Half of them, 28 of the 56, had been trading above a penny at the hourly read before, 11 of them at 10¢ or more: Oklahoma City's overnight-low bracket at 67¢, Denver's at 63¢, Minneapolis's at 62¢, Austin's at 34¢. Oklahoma City's went from 67¢ at the desk's read 56 minutes before the reading to a penny at its read four minutes after it, two minutes before the reading could have been on the public feed and four before the desk saw it.

Every time the desk looked after a killing reading, the bracket was already a penny

minutes after the station took the reading · each dot is one look at one bracket · 273 looks at 217 brackets · the dashed line is the median arrival on the public feed; each reading's own arrival varies, which is why eight hourly reads sit past the line and were still before their reading was public
the numbers
source: the latency study's watches, 2026-09-26 15:34 to 2026-09-30 12:43 UTC, and the desk's hourly ladder reads of the same brackets

Where the price got there first

Look an hour earlier and most of the story is already told. At the desk's last hourly read before the killing reading, a median 26 minutes before it, 138 of the 217 brackets were already a penny. The market had finished with them before the reading that finished them in the desk's eyes.

Part of that is the desk's own caution. For 91 of the 138, an earlier reading had already carried the day's temperature past the bracket, just not far enough or firmly enough for the desk's rule. The desk waits for a full degree because a reading can be revised and the final report can differ from the hourly ones; the market evidently does not wait. But 35 were a penny before any reading had cleared them at all. The market priced those from the day's trend, or from the station's readings through a faster channel than the public feed, or both. These numbers cannot tell those apart. The other 12 had no clearance figure at that read.

Where each bracket's price sat at the desk's last read before the killing reading

the Yes ask, in cents, a median 26 minutes before the reading · 217 brackets
the numbers
source: the desk's hourly ladder reads, the last one before each killing reading's timestamp

The other 79 were still live, eight of them at 50¢ or more and one at 89¢, and every one of those was a penny by the time the desk saw the reading that killed it.

Where the time goes

A killing reading took a median 15.8 minutes to reach the desk, never less than 7.6 and as long as 26.8. The desk's own polling accounts for at most 2.5 minutes of that: it fetches each station at most two minutes apart on a thirty-second tick. The rest, at least 13.3 minutes in the median case and never less than 5.1, is the station and the weather service getting the reading onto the public feed. A faster poller of that feed could win back the 2.5 minutes. It would still arrive after the price: in every case the desk could check, the price had moved before the reading was public, and in most it had moved before the reading was taken.

What it means for the desk

Three things, none of them a recommendation.

  • There is no latency window on the public feed. Whoever moves these prices is ahead of it, reading the same stations through faster channels or reading the day well enough not to need the reading. The data cannot say which. It can say that anyone polling the public feed arrives after the price, every time the desk looked.
  • The penny queue is not a stale price. A median of about 24,000 contracts sit offered as Yes at a penny on each bracket the desk has called dead. Those are sellers of a contract worth nothing, and buying one buys a penny's loss, so far every time. That is what the 25 trades in this window did.
  • The desk's rule is right and late, by design. It has never called a live bracket dead, and in this study it was never first. That is the right trade for a measurement desk and the wrong one for a trader, which is the point of measuring it.

Method

Prices, order books and the trade tape come from Kalshi's public market-data API; station readings come from the National Weather Service's public API (api.weather.gov), for the station each market settles on. A bracket is dead when the station's readings clear it by a full degree Fahrenheit; 0 of the 690 dead brackets that have settled so far settled Yes. A watch opens the first time the desk sees a reading kill a bracket, samples the order book every 30 seconds, and closes when the bracket has repriced (no Yes ask above 1¢ and no Yes bid at 3¢ or better) on two samples running, or after 90 minutes. Every watch in this piece was already repriced at its first sample.

A reading's time is the station's own timestamp. "Public" means on api.weather.gov, the feed the desk reads; other channels may carry the same reading sooner. The desk fetches each station at most 120 seconds apart on a 30-second tick, so a reading it first saw at a given moment was published no earlier than 150 seconds before; that bound is the reading-to-public figure above, and it is why a read taken more than 150 seconds before the desk saw a reading was taken before that reading was public. The hourly reads come from the desk's separate ladder logger, which runs on its own schedule and knows nothing about the watches.

The study ran from 21 September to 30 September. Until 26 September a bug read an empty order book on every call (the book sits under a different key than the client expected), so its first 87 watches measured nothing; they are excluded, and every watch from the fix to the end is here. The desk switched the study off on 30 September, once 217 watches in a row had given the same answer. Limits: four days and 20 cities; and outside a watch the desk sees each price only hourly, so it can say the price had moved by each look, not the minute it moved. No order was placed. The study's code runs under tests, and the desk's rules are set out in the method.