1. The hour you buy
The favourite rule buys a bracket the first time on its own day that its midpoint sits between 65c and 90c. Split its entries by the hour they were made, in four windows fixed when the call was posted. The price of a bracket is a probability; the spread is what you pay to cross it, and overnight, when the US is asleep, the books are thin.
| window | UTC | entries | settled | spread at entry | per contract | paid − priced |
|---|
entries with an ask resting · spread: over the entries that also had a bid · per contract: settled entries only · paid − priced: how often they paid, less the average midpoint, in points · the interval resamples whole market days
2. The 99c trade
The most tempting trade on any prediction market: a bracket at 97c, 98c or 99c that the day has all but decided. Take the first ask of 97c or more on each market, one contract at the ask plus Kalshi's 1c fee, and hold it to settlement. A win makes a cent or two; a miss loses the lot.
| bought | markets | settled | paid (95%) | price | per contract (95%) |
|---|
3. Buying the whole ladder
Exactly one bracket of a temperature ladder pays $1. Buy every bracket for less than $1 and the difference is yours whatever the weather; sell every one for more than $1, the same. Each hour the robot reads all six; here is what the whole ladder cost to buy, and raised to sell, after Kalshi's fee on every leg and with at least one contract resting at each price.
| read | reads | buy all | sell all | asks < $1 | bids > $1 | buy, net > 0 | sell, net > 0 |
|---|
reads: complete ones, every bracket of the ladder read in the same hour and within five minutes of the others, so two passes are never stitched into a ladder nobody could trade · buy all, sell all: the median cost of every bracket's ask plus its fee, and the median raised by every bracket's bid less its fee · asks < $1, bids > $1: before any fee · net > 0: after the fees, with a contract resting at every price, the trade the call counts
4. The favourite, by hours to close
The ladder's favourite is its bracket priced highest: by its midpoint, or by its bid when nobody is offering it, and never a bracket nobody bids on. Is it worth owning a day out, or at noon, or at the last hour? The moments are the calibration page's: 24, 12, 6 and 1 hours before Kalshi's close. A favourite with no ask left cannot be bought; it counts toward how often the favourite paid, not toward the money.
| before the close | ladders | paid (95%) | priced | buyable | ask | per contract (95%) |
|---|
5. Polymarket: the crowd, by the price it paid
On every venue anyone has measured, buyers of long shots lose money on average. Has Polymarket's weather crowd? Every taker buy in the whale finder's two-week window, by the price of what was bought: a No at 93c is a 93c favourite, not a 7c long shot. Gross, before any fee. The table is the whale finder's; the call grades the run published on or after October 27.
| price paid | buys | paid | settled | gross | per dollar paid | held, won |
|---|
How these are measured
The data. The Kalshi studies read the ladder logger's hourly reads, kept in small permanent tables before the raw rows age out (studies.sql, retention.sql): the favourite rule's entries, the first 97c-or-better ask on each market, one summed row per ladder and hour, and the calibration reads. The page reads views of counts, sums and rates, never a live quote. The Polymarket study is the whale finder's (agents/whale_finder.py), from every taker fill of every temperature market in its window.
The money. One contract at the logged ask plus Kalshi's taker fee, ceil(7 × p × (1 − p)) cents at price p, held to Kalshi's settlement. No maker rebates, no partial fills, no queue: what a taker could have done at the read.
The intervals. 95%, from resampling whole market days a thousand times with a fixed seed; brackets that settle on the same day share its weather, so days, not brackets, are the independent draws. Rates carry a Wilson interval.
The rules. The windows, bands, horizons and thresholds were fixed when the calls were posted and will not be changed; a different cut would be a new call. The graded window starts after the posting. agents/studies.py prints each call's number from the same views, and on the grading date that output is pasted into the call.