Temperature Indices
Track whether cities are running hot or cold over a 30-day window. Derived from Kalshi temperature bracket prices.
Formula
- 1,000
- Fixed baseline
- Accumulator
- Sum of daily scores over last 30 days
- Live
- Today's expected high − 65°F
Why 65°F baseline?
65°F is the balance point where buildings need neither heating nor cooling. Above adds cooling demand (positive). Below adds heating demand (negative). Same concept as utility Heating/Cooling Degree Days.
How it works
- 1. Fetch bracket prices
Every 5 minutes, pull temperature bracket prices from Kalshi. Each bracket (e.g., "70-74°F") has a price reflecting probability.
- 2. Calculate expected temperature
Multiply each bracket's midpoint by its probability:
30-34°F @ 15%, 35-39°F @ 40%, 40-44°F @ 30%, 45-49°F @ 15%
= (32×.15) + (37×.40) + (42×.30) + (47×.15) = 39°F - 3. Blend today and tomorrow
70% today + 30% tomorrow for smoother transitions.
- 4. Calculate live component
Live = Expected − 65. 75°F expected → +10. 50°F expected → −15.
- 5. Rolling 30-day accumulator
Sum of settled daily scores. New days add, oldest drops off.
Interpretation
Available cities
Edge cases
- New city
- Accumulator starts at zero, builds over 30 days.
- Maintenance
- Kalshi: Thursdays 3-5 AM ET. Live shows last value.
- Settlement
- Days settle ~8-9 AM local. Actual replaces expected.
- Negative index
- Possible during severe cold. 30 days at 30°F = −1,050 accumulator.
Data source
Kalshi — CFTC-regulated prediction market. Temperature contracts settle against NOAA weather station data.