Ranked from official statistics; every city opens its own guide.
Click any dot to open that city: jobs, pay, rent, commute, county economy and climate. Dot size follows population; colours follow the state flag.
By AtiveSite · Published 07/11/2026 · Updated 08/11/2026 · Every figure is linked to its source below.
Among the 80 largest places in Minnesota, Ham Lake has the lowest share of income going to rent (11.7%), followed by Farmington and St. Michael. Click any column to sort; click a city for its guide.
Across the 80 places in Minnesota that we cover, the median is 18.3% and the average 18.2%; the figure runs from 11.7% (Ham Lake) to 23.9% (Robbinsdale). That is a spread of 2.0 times between the two ends.
The first five are Ham Lake, Farmington, St. Michael, Elk River, North Mankato. A high or low position is not good or bad on its own: read it together with the other measures on the city pages. Use the Compare tab on each city page to see how two places differ across income, rent, commute and education, and check the county page for the local job market.
| # ⇅ | City ⇅ | County ⇅ | Yearly rent as share of income ⇅ | Population ⇅ | Median household income ⇅ | Median rent ⇅ |
|---|---|---|---|---|---|---|
| 1 | Ham Lake | Anoka County | 11.7% | 16,702 | $120,135 | $1,173 |
| 2 | Farmington | Dakota County | 12.0% | 23,902 | $123,673 | $1,241 |
| 3 | St. Michael | Wright County | 13.6% | 20,010 | $131,274 | $1,483 |
| 4 | Elk River | Sherburne County | 14.2% | 26,793 | $108,741 | $1,283 |
| 5 | North Mankato | Nicollet County | 14.5% | 14,211 | $80,791 | $973 |
| 6 | Prior Lake | Scott County | 14.8% | 28,016 | $134,255 | $1,654 |
| 7 | Hastings | Dakota County | 15.1% | 22,117 | $93,998 | $1,183 |
| 8 | Rosemount | Dakota County | 15.2% | 27,562 | $129,625 | $1,640 |
| 9 | Chanhassen | Carver County | 15.3% | 26,006 | $143,651 | $1,831 |
| 10 | Hutchinson | McLeod County | 15.5% | 14,680 | $72,836 | $940 |
| 11 | Plymouth | Hennepin County | 15.5% | 79,220 | $136,534 | $1,766 |
| 12 | Lakeville | Dakota County | 15.6% | 74,354 | $139,041 | $1,806 |
| 13 | Northfield | Rice County | 15.6% | 20,742 | $84,895 | $1,103 |
| 14 | Owatonna | Steele County | 15.9% | 26,498 | $80,750 | $1,067 |
| 15 | Albert Lea | Freeborn County | 15.9% | 18,330 | $64,603 | $857 |
| 16 | Buffalo | Wright County | 16.0% | 16,499 | $88,820 | $1,182 |
| 17 | South St. Paul | Dakota County | 16.4% | 20,611 | $87,994 | $1,199 |
| 18 | Chaska | Carver County | 16.8% | 28,706 | $110,956 | $1,553 |
| 19 | Austin | Mower County | 16.8% | 26,358 | $68,057 | $953 |
| 20 | Eden Prairie | Hennepin County | 16.9% | 63,051 | $130,489 | $1,833 |
| 21 | Savage | Scott County | 16.9% | 32,889 | $125,513 | $1,766 |
| 22 | Maple Grove | Hennepin County | 16.9% | 71,173 | $132,731 | $1,868 |
| 23 | Moorhead | Clay County | 17.0% | 45,036 | $72,761 | $1,033 |
| 24 | Shakopee | Scott County | 17.1% | 46,012 | $107,223 | $1,531 |
| 25 | Edina | Hennepin County | 17.2% | 53,262 | $128,767 | $1,844 |
| 26 | Red Wing | Goodhue County | 17.3% | 16,758 | $67,192 | $969 |
| 27 | Inver Grove Heights | Dakota County | 17.4% | 35,906 | $101,316 | $1,465 |
| 28 | Champlin | Hennepin County | 17.5% | 23,294 | $116,102 | $1,689 |
| 29 | Willmar | Kandiyohi County | 17.5% | 21,378 | $62,280 | $910 |
| 30 | Otsego | Wright County | 17.7% | 22,245 | $119,927 | $1,765 |
| 31 | Lino Lakes | Anoka County | 17.7% | 22,113 | $127,181 | $1,874 |
| 32 | Brainerd | Crow Wing County | 17.7% | 14,468 | $56,111 | $827 |
| 33 | Brooklyn Park | Hennepin County | 17.7% | 83,876 | $89,891 | $1,325 |
| 34 | Cottage Grove | Washington County | 17.7% | 40,992 | $120,791 | $1,783 |
| 35 | Andover | Anoka County | 17.8% | 33,035 | $137,593 | $2,037 |
| 36 | Minnetonka | Hennepin County | 17.9% | 53,064 | $119,517 | $1,779 |
| 37 | New Ulm | Brown County | 17.9% | 14,056 | $64,449 | $962 |
| 38 | Hibbing | Saint Louis County | 17.9% | 16,057 | $55,789 | $833 |
| 39 | Sartell | Stearns County | 18.2% | 19,758 | $84,131 | $1,275 |
| 40 | Alexandria | Douglas County | 18.3% | 14,735 | $61,374 | $934 |
| 41 | Woodbury | Washington County | 18.3% | 78,305 | $125,310 | $1,908 |
| 42 | Forest Lake | Washington County | 18.3% | 20,729 | $92,944 | $1,421 |
| 43 | Stillwater | Washington County | 18.4% | 19,355 | $105,853 | $1,622 |
| 44 | Shoreview | Ramsey County | 18.4% | 26,714 | $108,370 | $1,661 |
| 45 | Maplewood | Ramsey County | 18.5% | 40,695 | $91,394 | $1,406 |
| 46 | Eagan | Dakota County | 18.5% | 68,000 | $108,690 | $1,679 |
| 47 | Rochester | Olmsted County | 18.8% | 122,330 | $89,389 | $1,399 |
| 48 | Winona | Winona County | 18.8% | 26,009 | $56,337 | $882 |
| 49 | Ramsey | Anoka County | 18.8% | 28,421 | $116,415 | $1,826 |
| 50 | New Brighton | Ramsey County | 18.9% | 22,710 | $88,521 | $1,397 |
| 51 | Oakdale | Washington County | 19.0% | 28,585 | $93,772 | $1,481 |
| 52 | Duluth | Saint Louis County | 19.0% | 87,093 | $68,807 | $1,087 |
| 53 | Roseville | Ramsey County | 19.0% | 35,802 | $86,930 | $1,374 |
| 54 | Crystal | Hennepin County | 19.0% | 22,476 | $92,513 | $1,467 |
| 55 | Blaine | Anoka County | 19.2% | 72,488 | $106,801 | $1,705 |
| 56 | St. Louis Park | Hennepin County | 19.4% | 49,594 | $101,648 | $1,644 |
| 57 | Fergus Falls | Otter Tail County | 19.5% | 14,181 | $56,162 | $911 |
| 58 | Hugo | Washington County | 19.5% | 16,340 | $116,228 | $1,891 |
| 59 | St. Cloud | Stearns County | 19.6% | 70,629 | $61,374 | $1,003 |
| 60 | Richfield | Hennepin County | 19.6% | 36,642 | $85,132 | $1,393 |
| 61 | Golden Valley | Hennepin County | 19.7% | 21,725 | $108,772 | $1,785 |
| 62 | Anoka | Anoka County | 20.1% | 17,970 | $75,948 | $1,269 |
| 63 | Bloomington | Hennepin County | 20.1% | 88,665 | $93,211 | $1,561 |
| 64 | Mankato | Blue Earth County | 20.3% | 45,473 | $66,873 | $1,132 |
| 65 | Coon Rapids | Anoka County | 20.3% | 63,468 | $88,251 | $1,494 |
| 66 | Minneapolis | Hennepin County | 20.3% | 427,246 | $80,846 | $1,371 |
| 67 | Fridley | Anoka County | 20.5% | 30,241 | $77,680 | $1,326 |
| 68 | New Hope | Hennepin County | 20.6% | 21,181 | $77,662 | $1,335 |
| 69 | Burnsville | Dakota County | 20.9% | 64,463 | $87,024 | $1,513 |
| 70 | St. Paul | Ramsey County | 20.9% | 307,284 | $73,394 | $1,281 |
| 71 | Faribault | Rice County | 21.0% | 24,631 | $61,449 | $1,074 |
| 72 | Columbia Heights | Anoka County | 21.1% | 22,155 | $73,691 | $1,295 |
| 73 | Monticello | Wright County | 21.2% | 14,858 | $79,534 | $1,405 |
| 74 | Apple Valley | Dakota County | 21.4% | 55,679 | $97,673 | $1,738 |
| 75 | West St. Paul | Dakota County | 22.5% | 21,382 | $68,464 | $1,282 |
| 76 | Brooklyn Center | Hennepin County | 22.8% | 32,479 | $72,535 | $1,376 |
| 77 | White Bear Lake | Ramsey County | 23.0% | 23,908 | $83,554 | $1,601 |
| 78 | Bemidji | Beltrami County | 23.1% | 15,569 | $55,405 | $1,067 |
| 79 | Hopkins | Hennepin County | 23.4% | 18,819 | $75,234 | $1,468 |
| 80 | Robbinsdale | Hennepin County | 23.9% | 14,234 | $88,252 | $1,758 |
Largest Cities · Cities With the Cheapest Rent · Cities With the Highest Household Income · Cities With the Lowest Unemployment · Cities in the Highest-Paying Counties · Most College-Educated Cities · Cities With the Most Homeowners · Cities With the Most Remote Work · Cities With the Shortest Commutes
Unincorporated places are census-designated places: they have no city government but are counted as communities. Figures describe the city itself.
Ham Lake, with 11.7% (among the 80 largest places; ACS 2020–2024).
The 80 largest places in Minnesota by population.