The Town Files

The 25 Most Affordable Small Towns in Minnesota

Ranked by home value ÷ income among 165 towns of 500–10,000 people in Minnesota. #1 is Pipestone, MN (homes cost 1.7× income).

Map of the 25 towns12345678910111213141516171819202122232425
Numbers match the ranking.
  1. 25Redwood Falls, Minnesota

    Homes cost 2.6× income

    Redwood Falls is a city of 5,102 people in Redwood County, Minnesota. The median home is worth $162,100 and the median household earns $61,750, so homes cost 2.6× income (typical Minnesota town: 3.4×). Median rent is $832.

    5,102 people · Redwood County · median home $162,100 · income $61,750 · Jan low 4°F · 44 in snow

    Full Redwood Falls, Minnesota profile: weather, storms, schools, jobs →

    Redwood Falls vs the typical Minnesota townRedwood FallsTypical Minnesota townHome value$162,100$301,800Income$61,750$87,375Rent$832$991
    Census ACS 2020–2024 medians.
  2. 24St. Paul Park, Minnesota

    Homes cost 2.6× income

    St. Paul Park is a city of 5,544 people in Washington County, Minnesota. The median home is worth $263,500 and the median household earns $100,642, so homes cost 2.6× income (typical Minnesota town: 3.4×). Median rent is $2,174.

    5,544 people · Washington County · median home $263,500 · income $100,642 · Jan low 9°F · 46 in snow

    Full St. Paul Park, Minnesota profile: weather, storms, schools, jobs →

    St. Paul Park vs the typical Minnesota townSt. Paul ParkTypical Minnesota townHome value$263,500$301,800Income$100,642$87,375Rent$2,174$991
    Census ACS 2020–2024 medians.
  3. 23Albertville, Minnesota

    Homes cost 2.6× income

    Albertville is a city of 7,896 people in Wright County, Minnesota. The median home is worth $343,700 and the median household earns $132,734, so homes cost 2.6× income (typical Minnesota town: 3.4×). Median rent is $1,348.

    7,896 people · Wright County · median home $343,700 · income $132,734 · Jan low 4°F · 36 in snow

    Full Albertville, Minnesota profile: weather, storms, schools, jobs →

    Albertville vs the typical Minnesota townAlbertvilleTypical Minnesota townHome value$343,700$301,800Income$132,734$87,375Rent$1,348$991
    Census ACS 2020–2024 medians.
  4. 22Lake Crystal, Minnesota

    Homes cost 2.5× income

    Lake Crystal is a city of 2,539 people in Blue Earth County, Minnesota. The median home is worth $204,400 and the median household earns $83,317, so homes cost 2.5× income (typical Minnesota town: 3.4×). Median rent is $825.

    2,539 people · Blue Earth County · median home $204,400 · income $83,317 · Jan low 6°F · 40 in snow

    Full Lake Crystal, Minnesota profile: weather, storms, schools, jobs →

    Lake Crystal vs the typical Minnesota townLake CrystalTypical Minnesota townHome value$204,400$301,800Income$83,317$87,375Rent$825$991
    Census ACS 2020–2024 medians.
  5. 21Barnesville, Minnesota

    Homes cost 2.5× income

    Barnesville, Minnesota
    Photo: John P Salvatore (public domain, Wikimedia Commons)

    Barnesville is a city of 2,759 people in Clay County, Minnesota. The median home is worth $248,700 and the median household earns $97,917, so homes cost 2.5× income (typical Minnesota town: 3.4×). Median rent is $848.

    2,759 people · Clay County · median home $248,700 · income $97,917 · Jan low -1°F · 52 in snow

    Full Barnesville, Minnesota profile: weather, storms, schools, jobs →

    Barnesville vs the typical Minnesota townBarnesvilleTypical Minnesota townHome value$248,700$301,800Income$97,917$87,375Rent$848$991
    Census ACS 2020–2024 medians.
  6. 20Staples, Minnesota

    Homes cost 2.5× income

    Staples is a city of 2,989 people in Todd County, Minnesota. The median home is worth $130,000 and the median household earns $52,071, so homes cost 2.5× income (typical Minnesota town: 3.4×). Median rent is $844.

    2,989 people · Todd County · median home $130,000 · income $52,071 · Jan low -1°F · 51 in snow

    Full Staples, Minnesota profile: weather, storms, schools, jobs →

    Staples vs the typical Minnesota townStaplesTypical Minnesota townHome value$130,000$301,800Income$52,071$87,375Rent$844$991
    Census ACS 2020–2024 medians.
  7. 19Chatfield, Minnesota

    Homes cost 2.5× income

    Chatfield is a city of 2,997 people in Fillmore County, Minnesota. The median home is worth $241,600 and the median household earns $96,078, so homes cost 2.5× income (typical Minnesota town: 3.4×). Median rent is $748.

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

    Full Chatfield, Minnesota profile: weather, storms, schools, jobs →

    Chatfield vs the typical Minnesota townChatfieldTypical Minnesota townHome value$241,600$301,800Income$96,078$87,375Rent$748$991
    Census ACS 2020–2024 medians.
  8. 18Breckenridge, Minnesota

    Homes cost 2.5× income

    Breckenridge is a city of 3,430 people in Wilkin County, Minnesota. The median home is worth $144,500 and the median household earns $58,963, so homes cost 2.5× income (typical Minnesota town: 3.4×). Median rent is $515.

    3,430 people · Wilkin County · median home $144,500 · income $58,963 · Jan low -1°F · 50 in snow

    Full Breckenridge, Minnesota profile: weather, storms, schools, jobs →

    Breckenridge vs the typical Minnesota townBreckenridgeTypical Minnesota townHome value$144,500$301,800Income$58,963$87,375Rent$515$991
    Census ACS 2020–2024 medians.
  9. 17Thief River Falls, Minnesota

    Homes cost 2.5× income

    Thief River Falls, Minnesota
    Photo: Andrew Filer (public domain, Wikimedia Commons)

    Thief River Falls is a city of 8,749 people in Pennington County, Minnesota. The median home is worth $175,400 and the median household earns $71,144, so homes cost 2.5× income (typical Minnesota town: 3.4×). Median rent is $838.

    8,749 people · Pennington County · median home $175,400 · income $71,144 · Jan low -3°F · 50 in snow

    Full Thief River Falls, Minnesota profile: weather, storms, schools, jobs →

    Thief River Falls vs the typical Minnesota townThief River FallsTypical Minnesota townHome value$175,400$301,800Income$71,144$87,375Rent$838$991
    Census ACS 2020–2024 medians.
  10. 16Granite Falls, Minnesota

    Homes cost 2.3× income

    Granite Falls is a city of 2,737 people in Yellow Medicine County, Minnesota. The median home is worth $136,700 and the median household earns $59,375, so homes cost 2.3× income (typical Minnesota town: 3.4×). Median rent is $920.

    2,737 people · Yellow Medicine County · median home $136,700 · income $59,375 · Jan low 3°F · 52 in snow

    Full Granite Falls, Minnesota profile: weather, storms, schools, jobs →

    Granite Falls vs the typical Minnesota townGranite FallsTypical Minnesota townHome value$136,700$301,800Income$59,375$87,375Rent$920$991
    Census ACS 2020–2024 medians.
  11. 15Mountain Iron, Minnesota

    Homes cost 2.3× income

    Mountain Iron is a city of 2,878 people in St. Louis County, Minnesota. The median home is worth $192,800 and the median household earns $83,293, so homes cost 2.3× income (typical Minnesota town: 3.4×). Median rent is $918.

    2,878 people · St. Louis County · median home $192,800 · income $83,293 · Jan low -1°F · 69 in snow

    Full Mountain Iron, Minnesota profile: weather, storms, schools, jobs →

    Mountain Iron vs the typical Minnesota townMountain IronTypical Minnesota townHome value$192,800$301,800Income$83,293$87,375Rent$918$991
    Census ACS 2020–2024 medians.
  12. 14Windom, Minnesota

    Homes cost 2.3× income

    Windom is a city of 4,798 people in Cottonwood County, Minnesota. The median home is worth $169,700 and the median household earns $74,899, so homes cost 2.3× income (typical Minnesota town: 3.4×). Median rent is $806.

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

    Full Windom, Minnesota profile: weather, storms, schools, jobs →

    Windom vs the typical Minnesota townWindomTypical Minnesota townHome value$169,700$301,800Income$74,899$87,375Rent$806$991
    Census ACS 2020–2024 medians.
  13. 13Virginia, Minnesota

    Homes cost 2.3× income

    Virginia is a city of 8,421 people in St. Louis County, Minnesota. The median home is worth $120,600 and the median household earns $51,720, so homes cost 2.3× income (typical Minnesota town: 3.4×). Median rent is $792.

    8,421 people · St. Louis County · median home $120,600 · income $51,720 · Jan low -1°F · 69 in snow

    Full Virginia, Minnesota profile: weather, storms, schools, jobs →

    Virginia vs the typical Minnesota townVirginiaTypical Minnesota townHome value$120,600$301,800Income$51,720$87,375Rent$792$991
    Census ACS 2020–2024 medians.
  14. 12White, Minnesota

    Homes cost 2.2× income

    White is a township of 3,136 people in St. Louis County, Minnesota. The median home is worth $123,600 and the median household earns $55,293, so homes cost 2.2× income (typical Minnesota town: 3.4×). Median rent is $509.

    3,136 people · St. Louis County · median home $123,600 · income $55,293 · Jan low -7°F · 76 in snow

    Full White, Minnesota profile: weather, storms, schools, jobs →

    White vs the typical Minnesota townWhiteTypical Minnesota townHome value$123,600$301,800Income$55,293$87,375Rent$509$991
    Census ACS 2020–2024 medians.
  15. 11Blue Earth, Minnesota

    Homes cost 2.2× income

    Blue Earth is a city of 3,174 people in Faribault County, Minnesota. The median home is worth $143,600 and the median household earns $66,771, so homes cost 2.2× income (typical Minnesota town: 3.4×). Median rent is $918.

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

    Full Blue Earth, Minnesota profile: weather, storms, schools, jobs →

    Blue Earth vs the typical Minnesota townBlue EarthTypical Minnesota townHome value$143,600$301,800Income$66,771$87,375Rent$918$991
    Census ACS 2020–2024 medians.
  16. 10Sleepy Eye, Minnesota

    Homes cost 2.2× income

    Sleepy Eye is a city of 3,452 people in Brown County, Minnesota. The median home is worth $147,600 and the median household earns $66,911, so homes cost 2.2× income (typical Minnesota town: 3.4×). Median rent is $782.

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

    Full Sleepy Eye, Minnesota profile: weather, storms, schools, jobs →

    Sleepy Eye vs the typical Minnesota townSleepy EyeTypical Minnesota townHome value$147,600$301,800Income$66,911$87,375Rent$782$991
    Census ACS 2020–2024 medians.
  17. 9Dodge Center, Minnesota

    Homes cost 2.1× income

    Dodge Center is a city of 2,844 people in Dodge County, Minnesota. The median home is worth $197,600 and the median household earns $93,884, so homes cost 2.1× income (typical Minnesota town: 3.4×). Median rent is $1,012.

    2,844 people · Dodge County · median home $197,600 · income $93,884 · Jan low 4°F · 47 in snow

    Full Dodge Center, Minnesota profile: weather, storms, schools, jobs →

    Dodge Center vs the typical Minnesota townDodge CenterTypical Minnesota townHome value$197,600$301,800Income$93,884$87,375Rent$1,012$991
    Census ACS 2020–2024 medians.
  18. 8Caledonia, Minnesota

    Homes cost 2.1× income

    Caledonia is a city of 2,847 people in Houston County, Minnesota. The median home is worth $157,900 and the median household earns $76,477, so homes cost 2.1× income (typical Minnesota town: 3.4×). Median rent is $839.

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

    Full Caledonia, Minnesota profile: weather, storms, schools, jobs →

    Caledonia vs the typical Minnesota townCaledoniaTypical Minnesota townHome value$157,900$301,800Income$76,477$87,375Rent$839$991
    Census ACS 2020–2024 medians.
  19. 7Chisholm, Minnesota

    Homes cost 2.1× income

    Chisholm is a city of 4,775 people in St. Louis County, Minnesota. The median home is worth $109,200 and the median household earns $50,891, so homes cost 2.1× income (typical Minnesota town: 3.4×). Median rent is $732.

    4,775 people · St. Louis County · median home $109,200 · income $50,891 · Jan low -4°F

    Full Chisholm, Minnesota profile: weather, storms, schools, jobs →

    Chisholm vs the typical Minnesota townChisholmTypical Minnesota townHome value$109,200$301,800Income$50,891$87,375Rent$732$991
    Census ACS 2020–2024 medians.
  20. 6Montevideo, Minnesota

    Homes cost 2.1× income

    Montevideo is a city of 5,398 people in Chippewa County, Minnesota. The median home is worth $141,000 and the median household earns $68,596, so homes cost 2.1× income (typical Minnesota town: 3.4×). Median rent is $851.

    5,398 people · Chippewa County · median home $141,000 · income $68,596 · Jan low 2°F · 46 in snow

    Full Montevideo, Minnesota profile: weather, storms, schools, jobs →

    Montevideo vs the typical Minnesota townMontevideoTypical Minnesota townHome value$141,000$301,800Income$68,596$87,375Rent$851$991
    Census ACS 2020–2024 medians.
  21. 5International Falls, Minnesota

    Homes cost 2.1× income

    International Falls is a city of 5,802 people in Koochiching County, Minnesota. The median home is worth $120,400 and the median household earns $57,662, so homes cost 2.1× income (typical Minnesota town: 3.4×). Median rent is $645.

    5,802 people · Koochiching County · median home $120,400 · income $57,662 · Jan low -6°F · 73 in snow

    Full International Falls, Minnesota profile: weather, storms, schools, jobs →

    International Falls vs the typical Minnesota townInternational FallsTypical Minnesota townHome value$120,400$301,800Income$57,662$87,375Rent$645$991
    Census ACS 2020–2024 medians.
  22. 4St. James, Minnesota

    Homes cost 2.0× income

    St. James is a city of 4,793 people in Watonwan County, Minnesota. The median home is worth $122,100 and the median household earns $60,242, so homes cost 2.0× income (typical Minnesota town: 3.4×). Median rent is $839.

    4,793 people · Watonwan County · median home $122,100 · income $60,242 · Jan low 5°F · 50 in snow

    Full St. James, Minnesota profile: weather, storms, schools, jobs →

    St. James vs the typical Minnesota townSt. JamesTypical Minnesota townHome value$122,100$301,800Income$60,242$87,375Rent$839$991
    Census ACS 2020–2024 medians.
  23. 3Eveleth, Minnesota

    Homes cost 1.9× income

    Eveleth is a city of 3,493 people in St. Louis County, Minnesota. The median home is worth $97,600 and the median household earns $50,725, so homes cost 1.9× income (typical Minnesota town: 3.4×). Median rent is $904.

    3,493 people · St. Louis County · median home $97,600 · income $50,725 · Jan low -1°F · 69 in snow

    Full Eveleth, Minnesota profile: weather, storms, schools, jobs →

    Eveleth vs the typical Minnesota townEvelethTypical Minnesota townHome value$97,600$301,800Income$50,725$87,375Rent$904$991
    Census ACS 2020–2024 medians.
  24. 2Jackson, Minnesota

    Homes cost 1.8× income

    Jackson is a city of 3,323 people in Jackson County, Minnesota. The median home is worth $128,500 and the median household earns $70,223, so homes cost 1.8× income (typical Minnesota town: 3.4×). Median rent is $752.

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

    Full Jackson, Minnesota profile: weather, storms, schools, jobs →

    Jackson vs the typical Minnesota townJacksonTypical Minnesota townHome value$128,500$301,800Income$70,223$87,375Rent$752$991
    Census ACS 2020–2024 medians.
  25. 1Pipestone, Minnesota

    Homes cost 1.7× income

    Pipestone is a city of 4,215 people in Pipestone County, Minnesota. The median home is worth $114,100 and the median household earns $67,568, so homes cost 1.7× income (typical Minnesota town: 3.4×). Median rent is $740.

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

    Full Pipestone, Minnesota profile: weather, storms, schools, jobs →

    Pipestone vs the typical Minnesota townPipestoneTypical Minnesota townHome value$114,100$301,800Income$67,568$87,375Rent$740$991
    Census ACS 2020–2024 medians.

More Minnesota rankings

Same ranking, other places

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