The Town Files

25 Small Towns in Iowa With the Mildest Winters

Ranked by january average low (°f) among 99 towns of 500–10,000 people in Iowa. #1 is Keokuk, IA (January lows average 16.7°F).

Map of the 25 towns12345678910111213141516171819202122232425
Numbers match the ranking.
25 Small Towns in Iowa With the Mildest Winters1. Keokuk172. West Burlington163. Carter Lake154. Bloomfield155. Tiffin156. Solon157. Kalona158. DeWitt149. Camanche1410. Le Claire1411. Wilton1412. Windsor Heights1413. Carlisle1414. Shenandoah1415. Fairfield1416. Albia1317. Eldridge1318. Polk City1319. Park View1320. Mount Pleasant1321. Knoxville1322. Hiawatha1323. Red Oak1324. Mount Vernon1325. Robins13
  1. 25Robins, Iowa

    January lows average 12.5°F

    Robins is a city of 3,353 people in Linn County, Iowa. January lows average 12.5°F and July highs 85.5°F, with about 18 days a year at 90°F+ and 34 inches of snow.

    3,353 people · Linn County · median home $413,400 · income $122,262 · Jan low 13°F · 34 in snow

    Full Robins, Iowa profile: weather, storms, schools, jobs →

    Robins average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°86°
    NOAA 1991–2020 normals, Cedar Rapids #1 station.
  2. 24Mount Vernon, Iowa

    January lows average 12.5°F

    Mount Vernon is a city of 4,527 people in Linn County, Iowa. January lows average 12.5°F and July highs 85.5°F, with about 18 days a year at 90°F+ and 31 inches of snow.

    4,527 people · Linn County · median home $245,200 · income $112,656 · Jan low 13°F · 31 in snow

    Full Mount Vernon, Iowa profile: weather, storms, schools, jobs →

    Mount Vernon average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°86°
    NOAA 1991–2020 normals, Cedar Rapids #1 station.
  3. 23Red Oak, Iowa

    January lows average 12.5°F

    Red Oak is a city of 5,596 people in Montgomery County, Iowa. January lows average 12.5°F and July highs 86.3°F, with about 26 days a year at 90°F+ and 27 inches of snow.

    5,596 people · Montgomery County · median home $99,700 · income $50,109 · Jan low 13°F · 27 in snow

    Full Red Oak, Iowa profile: weather, storms, schools, jobs →

    Red Oak average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°86°
    NOAA 1991–2020 normals, Red Oak station.
  4. 22Hiawatha, Iowa

    January lows average 12.5°F

    Hiawatha is a city of 7,183 people in Linn County, Iowa. January lows average 12.5°F and July highs 85.5°F, with about 18 days a year at 90°F+ and 34 inches of snow.

    7,183 people · Linn County · median home $216,900 · income $66,270 · Jan low 13°F · 34 in snow

    Full Hiawatha, Iowa profile: weather, storms, schools, jobs →

    Hiawatha average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°86°
    NOAA 1991–2020 normals, Cedar Rapids #1 station.
  5. 21Knoxville, Iowa

    January lows average 12.5°F

    Knoxville is a city of 7,595 people in Marion County, Iowa. January lows average 12.5°F and July highs 84.6°F, with about 20 days a year at 90°F+ and 27 inches of snow.

    7,595 people · Marion County · median home $160,300 · income $61,599 · Jan low 13°F · 27 in snow

    Full Knoxville, Iowa profile: weather, storms, schools, jobs →

    Knoxville average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°85°
    NOAA 1991–2020 normals, Knoxville station.
  6. 20Mount Pleasant, Iowa

    January lows average 12.5°F

    Mount Pleasant is a city of 9,274 people in Henry County, Iowa. January lows average 12.5°F and July highs 84.8°F, with about 20 days a year at 90°F+ and 25 inches of snow.

    9,274 people · Henry County · median home $160,900 · income $61,042 · Jan low 13°F · 25 in snow

    Full Mount Pleasant, Iowa profile: weather, storms, schools, jobs →

    Mount Pleasant average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°85°
    NOAA 1991–2020 normals, Mt Pleasant 1 Ssw station.
  7. 19Park View, Iowa

    January lows average 13.1°F

    Park View is a community of 2,709 people in Scott County, Iowa. January lows average 13.1°F and July highs 83.8°F, with about 17 days a year at 90°F+ and 29 inches of snow.

    2,709 people · Scott County · median home $276,000 · income $113,409 · Jan low 13°F · 29 in snow

    Full Park View, Iowa profile: weather, storms, schools, jobs →

    Park View average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°84°
    NOAA 1991–2020 normals, Davenport Wfo station.
  8. 18Polk City, Iowa

    January lows average 13.1°F

    Polk City is a city of 5,543 people in Polk County, Iowa. January lows average 13.1°F and July highs 84.7°F, with about 18 days a year at 90°F+ and 38 inches of snow.

    5,543 people · Polk County · median home $414,800 · income $164,389 · Jan low 13°F · 38 in snow

    Full Polk City, Iowa profile: weather, storms, schools, jobs →

    Polk City average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°85°
    NOAA 1991–2020 normals, Des Moines Wsfo-Johnston station.
  9. 17Eldridge, Iowa

    January lows average 13.1°F

    Eldridge is a city of 6,726 people in Scott County, Iowa. January lows average 13.1°F and July highs 83.8°F, with about 17 days a year at 90°F+ and 33 inches of snow.

    6,726 people · Scott County · median home $350,500 · income $106,316 · Jan low 13°F · 33 in snow

    Full Eldridge, Iowa profile: weather, storms, schools, jobs →

    Eldridge average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°84°
    NOAA 1991–2020 normals, Davenport Wfo station.
  10. 16Albia, Iowa

    January lows average 13.2°F

    Albia is a city of 3,721 people in Monroe County, Iowa. January lows average 13.2°F and July highs 84.4°F, with about 15 days a year at 90°F+ and 30 inches of snow.

    3,721 people · Monroe County · median home $130,300 · income $70,455 · Jan low 13°F · 30 in snow

    Full Albia, Iowa profile: weather, storms, schools, jobs →

    Albia average highs and lows by month10°30°50°70°90°JFMAMJJASOND13°84°
    NOAA 1991–2020 normals, Albia 3 Nne station.
  11. 15Fairfield, Iowa

    January lows average 13.6°F

    Fairfield is a city of 9,416 people in Jefferson County, Iowa. January lows average 13.6°F and July highs 84.2°F, with about 24 days a year at 90°F+ and 22 inches of snow.

    9,416 people · Jefferson County · median home $156,000 · income $51,311 · Jan low 14°F · 22 in snow

    Full Fairfield, Iowa profile: weather, storms, schools, jobs →

    Fairfield average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°84°
    NOAA 1991–2020 normals, Fairfield station.
  12. 14Shenandoah, Iowa

    January lows average 13.7°F

    Shenandoah is a city of 4,925 people in Page County, Iowa. January lows average 13.7°F and July highs 86.9°F, with about 32 days a year at 90°F+ and 26 inches of snow.

    4,925 people · Page County · median home $116,700 · income $59,783 · Jan low 14°F · 26 in snow

    Full Shenandoah, Iowa profile: weather, storms, schools, jobs →

    Shenandoah average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°87°
    NOAA 1991–2020 normals, Shenandoah station.
  13. 13Carlisle, Iowa

    January lows average 13.8°F

    Carlisle is a city of 4,160 people in Warren County, Iowa. January lows average 13.8°F and July highs 85.6°F, with about 22 days a year at 90°F+ and 37 inches of snow.

    4,160 people · Warren County · median home $234,300 · income $109,191 · Jan low 14°F · 37 in snow

    Full Carlisle, Iowa profile: weather, storms, schools, jobs →

    Carlisle average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°86°
    NOAA 1991–2020 normals, Des Moines Intl Ap station.
  14. 12Windsor Heights, Iowa

    January lows average 13.8°F

    Windsor Heights is a city of 5,252 people in Polk County, Iowa. January lows average 13.8°F and July highs 85.6°F, with about 22 days a year at 90°F+ and 37 inches of snow.

    5,252 people · Polk County · median home $267,900 · income $91,707 · Jan low 14°F · 37 in snow

    Full Windsor Heights, Iowa profile: weather, storms, schools, jobs →

    Windsor Heights average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°86°
    NOAA 1991–2020 normals, Des Moines Intl Ap station.
  15. 11Wilton, Iowa

    January lows average 13.9°F

    Wilton is a city of 2,924 people in Muscatine County, Iowa. January lows average 13.9°F and July highs 84.1°F, with about 18 days a year at 90°F+ and 29 inches of snow.

    2,924 people · Muscatine County · median home $189,200 · income $76,648 · Jan low 14°F · 29 in snow

    Full Wilton, Iowa profile: weather, storms, schools, jobs →

    Wilton average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°84°
    NOAA 1991–2020 normals, Muscatine 2N station.
  16. 10Le Claire, Iowa

    January lows average 14.1°F

    Le Claire is a city of 4,710 people in Scott County, Iowa. January lows average 14.1°F and July highs 85.0°F, with about 18 days a year at 90°F+ and 32 inches of snow.

    4,710 people · Scott County · median home $318,700 · income $104,844 · Jan low 14°F · 32 in snow

    Full Le Claire, Iowa profile: weather, storms, schools, jobs →

    Le Claire average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°85°
    NOAA 1991–2020 normals, Le Claire L&D 14 station.
  17. 9Camanche, Iowa

    January lows average 14.3°F

    Camanche, Iowa
    Photo: CTJF83Talk (public domain, Wikimedia Commons)

    Camanche is a city of 4,570 people in Clinton County, Iowa. January lows average 14.3°F and July highs 83.9°F, with about 15 days a year at 90°F+ and 32 inches of snow.

    4,570 people · Clinton County · median home $172,400 · income $64,153 · Jan low 14°F · 32 in snow

    Full Camanche, Iowa profile: weather, storms, schools, jobs →

    Camanche average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°84°
    NOAA 1991–2020 normals, Clinton #1 station.
  18. 8DeWitt, Iowa

    January lows average 14.3°F

    DeWitt is a city of 5,514 people in Clinton County, Iowa. January lows average 14.3°F and July highs 83.9°F, with about 15 days a year at 90°F+ and 29 inches of snow.

    5,514 people · Clinton County · median home $237,100 · income $92,587 · Jan low 14°F · 29 in snow

    Full DeWitt, Iowa profile: weather, storms, schools, jobs →

    DeWitt average highs and lows by month10°30°50°70°90°JFMAMJJASOND14°84°
    NOAA 1991–2020 normals, Clinton #1 station.
  19. 7Kalona, Iowa

    January lows average 14.6°F

    Kalona is a city of 2,630 people in Washington County, Iowa. January lows average 14.6°F and July highs 85.8°F, with about 19 days a year at 90°F+ and 28 inches of snow.

    2,630 people · Washington County · median home $257,900 · income $80,129 · Jan low 15°F · 28 in snow

    Full Kalona, Iowa profile: weather, storms, schools, jobs →

    Kalona average highs and lows by month10°30°50°70°90°JFMAMJJASOND15°86°
    NOAA 1991–2020 normals, Iowa City Muni Ap station.
  20. 6Solon, Iowa

    January lows average 14.6°F

    Solon is a city of 3,018 people in Johnson County, Iowa. January lows average 14.6°F and July highs 85.8°F, with about 19 days a year at 90°F+ and 29 inches of snow.

    3,018 people · Johnson County · median home $309,400 · income $113,295 · Jan low 15°F · 29 in snow

    Full Solon, Iowa profile: weather, storms, schools, jobs →

    Solon average highs and lows by month10°30°50°70°90°JFMAMJJASOND15°86°
    NOAA 1991–2020 normals, Iowa City Muni Ap station.
  21. 5Tiffin, Iowa

    January lows average 14.6°F

    Tiffin is a city of 4,512 people in Johnson County, Iowa. January lows average 14.6°F and July highs 85.8°F, with about 19 days a year at 90°F+ and 28 inches of snow.

    4,512 people · Johnson County · median home $338,500 · income $100,952 · Jan low 15°F · 28 in snow

    Full Tiffin, Iowa profile: weather, storms, schools, jobs →

    Tiffin average highs and lows by month10°30°50°70°90°JFMAMJJASOND15°86°
    NOAA 1991–2020 normals, Iowa City Muni Ap station.
  22. 4Bloomfield, Iowa

    January lows average 14.8°F

    Bloomfield, Iowa
    Photo: Eab969 at English Wikipedia (public domain, Wikimedia Commons)

    Bloomfield is a city of 2,682 people in Davis County, Iowa. January lows average 14.8°F and July highs 85.5°F, with about 22 days a year at 90°F+ and 24 inches of snow.

    2,682 people · Davis County · median home $132,000 · income $60,769 · Jan low 15°F · 24 in snow

    Full Bloomfield, Iowa profile: weather, storms, schools, jobs →

    Bloomfield average highs and lows by month10°30°50°70°90°JFMAMJJASOND15°86°
    NOAA 1991–2020 normals, Bloomfield station.
  23. 3Carter Lake, Iowa

    January lows average 15.2°F

    Carter Lake is a city of 3,791 people in Pottawattamie County, Iowa. January lows average 15.2°F and July highs 88.1°F, with about 33 days a year at 90°F+ and 27 inches of snow.

    3,791 people · Pottawattamie County · median home $169,400 · income $85,349 · Jan low 15°F · 27 in snow

    Full Carter Lake, Iowa profile: weather, storms, schools, jobs →

    Carter Lake average highs and lows by month10°30°50°70°90°JFMAMJJASOND15°88°
    NOAA 1991–2020 normals, Omaha Eppley Airfield station.
  24. 2West Burlington, Iowa

    January lows average 16.4°F

    West Burlington is a city of 3,197 people in Des Moines County, Iowa. January lows average 16.4°F and July highs 85.2°F, with about 23 days a year at 90°F+ and 22 inches of snow.

    3,197 people · Des Moines County · median home $124,000 · income $48,542 · Jan low 16°F · 22 in snow

    Full West Burlington, Iowa profile: weather, storms, schools, jobs →

    West Burlington average highs and lows by month10°30°50°70°90°JFMAMJJASOND16°85°
    NOAA 1991–2020 normals, Burlington Muni Ap station.
  25. 1Keokuk, Iowa

    January lows average 16.7°F

    Keokuk is a city of 9,900 people in Lee County, Iowa. January lows average 16.7°F and July highs 85.6°F, with about 26 days a year at 90°F+ and 22 inches of snow.

    9,900 people · Lee County · median home $104,300 · income $52,711 · Jan low 17°F · 22 in snow

    Full Keokuk, Iowa profile: weather, storms, schools, jobs →

    Keokuk average highs and lows by month10°30°50°70°90°JFMAMJJASOND17°86°
    NOAA 1991–2020 normals, Keokuk Lock Dam 19 station.

More Iowa rankings

Same ranking, other places

Methodology. We ranked 99 towns of 500–10,000 people in Iowa (2020 Census population). Only towns better than 60% of their peers on this measure qualify, so lists can be shorter than 25. Sources: