The weekly scorecard · Kalshi temperature ladders

How the price did, week by week.

The logger reads every open bracket of every daily-high and daily-low ladder each hour, with the bid, the ask, and the size resting there, and settles them against Kalshi's result. This page is the settled part of that record, computed in the database and refreshed every fifteen minutes. Two things are scored: the favorite-longshot bias, bought at the ask that was actually there plus the fee; and the dead brackets, with the queue at one cent and any stale bid.

loading the scorecard…

The favorite rule at the real ask

One trade per market: buy Yes the first time the midpoint sits between 65c and 90c, at the ask that was resting, plus Kalshi's taker fee, held to settlement. "Day before" is the day-ahead entry, the leg that made +6.1c a contract over 47 days of history; "same day" is the intraday one. Size is the contracts resting at that ask when the rule entered, which is the capacity a reader would have found.

week ofenteredentriessettledpaidmean askper contractmedian size at ask$ a week at the ask

per contract = mean of (1 − ask − fee) on winners and (−ask − fee) on losers, in cents; only settled entries count; a week with under 20 settled entries is shown but cannot decide anything.

The dead brackets

A bracket is dead once the station's confirmed running extreme has cleared it by a full degree. The logger reads its order book every pass: the Yes asks resting at one cent, which is the queue a new seller would stand behind, and any Yes bid at 3c or better, which is a stale bid somebody could sell into. Brackets called dead that settled Yes anyway are the observation feed's error rate, live.

week ofdead bracketsbook readsmedian at 1creads with no askreads with a stale bidsettled Yes anyway

the dead-bracket record begins 2026-09-16; earlier weeks show the favorite rule only.

Where the numbers come from

The ladder logger (agents/kalshi_ladder_logger.py) writes every read to the database; scorecard_views.sql builds this table as a materialized view over the settled reads and the outcomes, refreshed every fifteen minutes. The same rows are scored offline by agents/exp_favorites.py and agents/exp_queue.py with day-clustered confidence intervals, which this page does not compute; the pieces and the calls carry those.