Fun With Data Ideal Weather Index

Ideal Weather Index — 100 U.S. Cities

30 Years of Official Weather Data Reveals America's Best Weather Cities

NOAA National Centers for Environmental Information (NCEI) — U.S. Climate Normals 1991–2020  ·  Click any column header to sort  ·  Higher IWI = better weather

80–100 Excellent 60–79 Good 40–59 Average 20–39 Poor 1–19 Harsh
# City ST Clear Pt. Cloudy Overcast Temp (°F) Wind (mph) Rain days Rainfall (in) Snow days Snowfall (in) IWI Score
Clear daysAvg annual days with 0–30% cloud cover. Weight: 25%
Overcast daysAvg annual days with 70–100% cloud cover. Weight: 15%
Temperature (°F)Avg annual temperature. Sweet spot 65–75°F scores 100. Weight: 20%
Wind speed (mph)Mean annual wind speed. Sweet spot 7–9 mph scores 100. Weight: 10%
Rain daysAvg annual days with ≥0.01" precipitation. Weight: 10%
Rainfall (in)Total avg annual precipitation in inches. Weight: 5%
Snow daysAvg annual days with ≥0.1" snowfall. Weight: 10%
Snowfall (in)Avg annual snowfall accumulation in inches. Weight: 5%
Each city receives a score from 1–100 built across 8 weather categories, all sourced from NOAA Climate Normals 1991–2020. Each category is normalized to a 0–100 scale relative to all 110 cities in the dataset. Those normalized scores are multiplied by their assigned weights and summed for the final IWI. Two categories — temperature and wind speed — use a sweet-spot curve rather than a linear scale, because both extremes in either direction reduce livability.
Formula
IWI = (Clear Score × 0.25) + (Temperature Score × 0.20) + (Overcast Score × 0.15)
       + (Rain Days Score × 0.10) + (Snow Days Score × 0.10) + (Wind Score × 0.10)
       + (Rainfall Score × 0.05) + (Snowfall Score × 0.05)
Step 1 — Normalize each category (linear scale)
For categories where higher is better (clear days):
Score = (City Value − Min Value) ÷ (Max Value − Min Value) × 100

For categories where lower is better (overcast, rain days, snow days, rainfall, snowfall):
Score = 100 − [(City Value − Min Value) ÷ (Max Value − Min Value) × 100]

Min and max values are derived from the actual range across all 110 cities in the dataset, so every score is relative — the best city in each category scores 100, the worst scores 0.
Step 2 — Temperature: sweet spot curve (non-linear)
Temperature is scored on a curve because both extreme cold and extreme heat reduce livability. The ideal range is 65–75°F annual average.

65–75°F → Score = 100 (ideal)
Below 65°F → Score = 100 − (65 − temp) × 4  (−4 pts per degree under)
Above 75°F → Score = 100 − (temp − 75) × 3  (−3 pts per degree over)

Cold is penalized more steeply than heat because cold weather forces greater behavioral changes — staying indoors, dangerous driving conditions, and heavy clothing requirements.
Step 3 — Wind speed: sweet spot curve (non-linear)
Wind is scored on a curve because very low wind and very high wind are both unpleasant. The ideal range is 7–9 mph annual average.

7–9 mph → Score = 100 (ideal)
Below 7 mph → Score = 100 − (7 − wind) × 5  (−5 pts per mph under)
Above 9 mph → Score = 100 − (wind − 9) × 8  (−8 pts per mph over)

The steeper penalty above the sweet spot reflects that high wind is more disruptive to daily livability than calm conditions.
Step 4 — Apply weights and sum
CategoryDirectionWeightRationale
Clear daysHigher = better25%Primary driver of perceived good weather — sunshine is the anchor
Temperature (°F)Sweet spot 65–75°F20%The most immediately felt weather factor in daily life
Overcast daysLower = better15%Persistent cloud cover is the main mood and livability factor after sunshine
Rain daysLower = better10%How often it rains matters more than how much — frequency disrupts plans
Snow daysLower = better10%Frequency of snow events impacts commuting and daily life regardless of accumulation
Wind speed (mph)Sweet spot 7–9 mph10%Both stagnant air and high wind reduce comfort; ideal at 7–9 mph
Rainfall (in)Lower = better5%Secondary to rain days; captures total storm intensity over the year
Snowfall (in)Lower = better5%Secondary to snow days; captures total seasonal severity
Questions or compliments? Please contact us here.