weather markets

How it works

Every city page puts two answers to the same question side by side: what traders are paying, and what the weather models say. Here is where each number comes from, and where it can go wrong.

The market

Kalshi, a US exchange regulated by the CFTC, lists a market for each day's high temperature in a set of cities. Each market is split into ranges, such as 67° to 68°. A Yes contract on a range pays $1 if the official high lands in it and nothing otherwise, so its price works as the crowd's estimate of the chance.

We show the midpoint between the best bid and the best ask. When nobody is offering, we fall back to the last trade. Prices across all ranges usually add up to a little over 100¢; that extra is the cost of trading, not a mistake.

The thermometer that decides it

Each market settles on one specific weather station, usually an airport. New York uses Central Park and Chicago uses Midway. Kalshi's rules name that station's daily climate report and take the final value from The Weather Company, usually published the next morning. Always check the market's own rules before trading.

That official day runs on local standard time. During daylight saving time it runs from 1:00 am to 1:00 am on the clock. Our “high so far” follows the same window, using the station's readings from the NWS and the Aviation Weather Center. Those readings are converted from Celsius, arrive up to an hour late, and may differ from the final report by a degree. Traders often watch faster sources, so late in the day the market can know more than this page does.

The forecast odds

A single forecast gives one number. An ensemble runs the same weather model many times with slightly different starting conditions, which shows how confident the forecast really is. We use 31 runs of the American GFS ensemble and 51 runs of the European ECMWF ensemble, through Open-Meteo.

  1. For each run, we take its highest hourly temperature within the official day.
  2. We compare yesterday's forecast high with what the station actually recorded, and shift every run by that difference. Raw models often run a few degrees warm or cold at a particular station, and that error tends to carry over from one day to the next.
  3. For today, we only look at the hours since the latest reading, and no run can finish below the high already recorded.
  4. We also check how far the models are off right now. If they expected 75° and the thermometer reads 79°, we shift every run up by 4°, fading that correction out over the following hours.
  5. Each run is blurred by 1.5 to 2°F, because a model describes an area several miles wide while the market settles on one thermometer.
  6. We add the runs up across each of the market's ranges to get a percentage.

The “gap” is the model percentage minus the market price. A gap of +12 means the models think a range is 12 points more likely than traders do.

What this can't tell you

Raw ensemble models have known biases near the ground, especially along coasts and in cities, and traders often know things the models don't, such as the latest hourly readings or how a particular station behaves. A big gap is a reason to look closer, not a signal to trade. Nothing on this site is financial advice.