The Town Files

The 15 Best Affordable Small Towns to Retire in Minnesota With Mild Winters

Ranked on The Town Files lifestyle rankings among 165 towns of 2,500–10,000 people in Minnesota, scoring every town on all of these at once. #1 is Caledonia, MN.

Map of the 15 towns123456789101112131415
Numbers match the ranking.
The 15 Best Affordable Small Towns to Retire in Minnesota With Mild Winters1. Caledoniascore 902. Windomscore 873. Blue Earthscore 844. La Crescentscore 815. Jacksonscore 816. Pipestonescore 807. Sleepy Eyescore 798. Luvernescore 779. Two Harborsscore 7710. Arden Hillsscore 7511. Goodviewscore 7312. Chatfieldscore 7213. Eagle Lakescore 7114. Zumbrotascore 7115. Plainviewscore 71
  1. 15Plainview, Minnesota

    Retirement: 75th percentile · January average low (°F): 68th percentile · Home value ÷ income: 69th percentile

    3,483 people · Wabasha County · median home $245,300 · income $82,926 · Jan low 4°F · 48 in snow

  2. 14Zumbrota, Minnesota

    Retirement: 85th percentile · January average low (°F): 66th percentile · Home value ÷ income: 62nd percentile

    3,726 people · Goodhue County · median home $249,300 · income $78,156 · Jan low 4°F · 44 in snow

  3. 13Eagle Lake, Minnesota

    Retirement: 57th percentile · January average low (°F): 83rd percentile · Home value ÷ income: 74th percentile

    3,278 people · Blue Earth County · median home $276,500 · income $96,964 · Jan low 6°F · 39 in snow

  4. 12Chatfield, Minnesota

    Retirement: 65th percentile · January average low (°F): 66th percentile · Home value ÷ income: 84th percentile

    2,997 people · Fillmore County · median home $241,600 · income $96,078 · Jan low 4°F · 48 in snow

  5. 11Goodview, Minnesota

    Retirement: 76th percentile · January average low (°F): 94th percentile · Home value ÷ income: 50th percentile

    4,158 people · Winona County · median home $254,200 · income $74,712 · Jan low 8°F · 38 in snow

  6. 10Arden Hills, Minnesota

    Retirement: 74th percentile · January average low (°F): 95th percentile · Home value ÷ income: 55th percentile

    9,939 people · Ramsey County · median home $441,900 · income $134,118 · Jan low 8°F · 40 in snow

  7. 9Two Harbors, Minnesota

    Retirement: 77th percentile · January average low (°F): 91st percentile · Home value ÷ income: 62nd percentile

    3,633 people · Lake County · median home $206,800 · income $65,625 · Jan low 7°F · 61 in snow

  8. 8Luverne, Minnesota

    Retirement: 81st percentile · January average low (°F): 87th percentile · Home value ÷ income: 62nd percentile

    4,946 people · Rock County · median home $208,000 · income $64,366 · Jan low 6°F · 39 in snow

  9. 7Sleepy Eye, Minnesota

    Retirement: 57th percentile · January average low (°F): 88th percentile · Home value ÷ income: 91st percentile

    3,452 people · Brown County · median home $147,600 · income $66,911 · Jan low 7°F · 41 in snow

  10. 6Pipestone, Minnesota

    Retirement: 72nd percentile · January average low (°F): 70th percentile · Home value ÷ income: 98th percentile

    4,215 people · Pipestone County · median home $114,100 · income $67,568 · Jan low 5°F · 40 in snow

  11. 5Jackson, Minnesota

    Retirement: 77th percentile · January average low (°F): 70th percentile · Home value ÷ income: 97th percentile

    3,323 people · Jackson County · median home $128,500 · income $70,223 · Jan low 5°F · 45 in snow

  12. 4La Crescent, Minnesota

    Retirement: 82nd percentile · January average low (°F): 100th percentile · Home value ÷ income: 62nd percentile

    5,276 people · Houston County · median home $272,400 · income $85,368 · Jan low 12°F · 38 in snow

  13. 3Blue Earth, Minnesota

    Retirement: 79th percentile · January average low (°F): 81st percentile · Home value ÷ income: 91st percentile

    3,174 people · Faribault County · median home $143,600 · income $66,771 · Jan low 6°F · 47 in snow

  14. 2Windom, Minnesota

    Retirement: 77th percentile · January average low (°F): 94th percentile · Home value ÷ income: 89th percentile

    4,798 people · Cottonwood County · median home $169,700 · income $74,899 · Jan low 8°F · 44 in snow

  15. 1Caledonia, Minnesota

    Retirement: 87th percentile · January average low (°F): 92nd percentile · Home value ÷ income: 92nd percentile

    2,847 people · Houston County · median home $157,900 · income $76,477 · Jan low 8°F · 45 in snow

Price vs ranking

Median home value vs ranking, Minnesota towns0255075100$98K$251K$403K$556K$709KMedian home valuePercentile
Orange squares are the 15 towns on this list; green dots are other towns on The Town Files in Minnesota.

More Minnesota rankings

Same ranking, other places

Methodology. We ranked 165 towns of 2,500–10,000 people in Minnesota (2020 Census population; towns with 2,500+ people have pages so far). Lifestyle measures are The Town Files lifestyle rankings, built from federal demographic, school, crime and housing data (2025), shown as percentiles. The combined score is the average of the percentiles shown for each town; a town must be above the middle on every one. Only towns better than 60% of their peers on this measure qualify, so lists can be shorter than 25. Sources: