La Crosse-Onalaska, WI-MN Metro Area
The La Crosse-Onalaska, WI-MN metro area is home to 169,945 residents and 75,928 housing units, spanning WI and MN. Its median household income is $71,009, and the median family income is $96,505. The median age is 38.8, 1.3 years younger than the Wisconsin median of 40.1. Residents are 49.6% male and 50.4% female.
Population
169,945
Median household income
$71,009
Median family income
$96,505
Median age
38.8
Housing units
75,928
Zip codes
25
with 1,000+ residents
Population by Race and Ethnicity
White residents make up the largest share of the metro area at 90.5%, followed by multiracial residents at 3.8%. Hispanic or Latino residents, who can be of any race, make up 2.3% of the population.
Hispanic or Latino residents can be of any race, so shares add to more than 100%.
Zip Codes in the La Crosse-Onalaska, WI-MN Metro Area
The La Crosse-Onalaska, WI-MN metro area includes 25 zip codes across Houston County, La Crosse County and Vernon County, home to a combined 170,376 residents. The most populous is La Crosse (54601) with 50,474 residents. Median household incomes range from $49,693 in La Crosse (54603) to $100,214 in West Salem (54669). Home values are highest in Holmen (54636) at $321,500 and lowest in Ontario (54651) at $172,800. La Crosse (54601) has the youngest population, with a median age of 32.2, while De Soto (54624) is the oldest at 55.6.
Highest income
$100,214
West Salem (54669)
Lowest income
$49,693
La Crosse (54603)
Highest home value
$321,500
Holmen (54636)
Lowest median rent
$675/mo
Brownsville (55919)
Median Household Income by Zip Code
Each bar is one zip code, ranked from highest to lowest median household income. The metro-wide median is $71,009, and 14 of 25 zip codes are above it.
Compare Every Zip Code
Select a column heading to sort. Select a zip code to see its full profile.
| Zip | Town | County | Population | Median income | Home value | Median rent | Median age | Owner occupied |
|---|---|---|---|---|---|---|---|---|
| 54601 | La Crosse | La Crosse County | 50,474 | $60,078 | $235,100 | $1,044 | 32.2 | 54.0% |
| 54650 | Onalaska | La Crosse County | 24,619 | $85,255 | $291,600 | $1,147 | 41.3 | 68.0% |
| 54636 | Holmen | La Crosse County | 16,784 | $91,156 | $321,500 | $1,160 | 38.5 | 71.4% |
| 54603 | La Crosse | La Crosse County | 14,181 | $49,693 | $181,900 | $966 | 37.2 | 52.1% |
| 54665 | Viroqua | Vernon County | 8,741 | $70,893 | $228,200 | $842 | 43.2 | 75.6% |
| 54669 | West Salem | La Crosse County | 8,227 | $100,214 | $312,300 | $1,267 | 41.0 | 82.0% |
| 55947 | La Crescent | Houston County | 7,319 | $85,464 | $302,200 | $883 | 47.6 | 87.3% |
| 54667 | Westby | Vernon County | 5,013 | $71,687 | $224,200 | $1,006 | 40.8 | 85.6% |
| 55921 | Caledonia | Houston County | 4,793 | $76,679 | $201,600 | $836 | 45.2 | 79.0% |
| 54634 | Hillsboro | Vernon County | 4,514 | $58,890 | $198,800 | $795 | 35.9 | 77.8% |
| 55943 | Houston | Houston County | 3,070 | $69,896 | $239,600 | $964 | 41.8 | 85.0% |
| 54614 | Bangor | La Crosse County | 2,647 | $81,302 | $250,300 | $957 | 39.6 | 77.5% |
| 54639 | La Farge | Vernon County | 2,640 | $57,446 | $209,700 | $754 | 37.8 | 77.6% |
| 54658 | Stoddard | Vernon County | 2,458 | $72,734 | $249,800 | $885 | 50.0 | 82.7% |
| 55974 | Spring Grove | Houston County | 1,998 | $60,700 | $186,300 | $947 | 47.4 | 79.4% |
| 54623 | Coon Valley | Vernon County | 1,949 | $85,833 | $276,400 | $1,040 | 46.7 | 87.3% |
| 54624 | De Soto | Vernon County | 1,545 | $78,558 | $186,000 | $793 | 55.6 | 88.0% |
| 54621 | Chaseburg | Vernon County | 1,361 | $90,563 | $280,000 | $777 | 33.9 | 81.3% |
| 54644 | Mindoro | La Crosse County | 1,297 | $79,250 | $256,500 | n/a | 47.1 | 99.1% |
| 54653 | Rockland | La Crosse County | 1,232 | $69,583 | $264,200 | $983 | 36.2 | 85.2% |
| 54651 | Ontario | Vernon County | 1,225 | $58,833 | $172,800 | $740 | 36.6 | 81.0% |
| 54632 | Genoa | Vernon County | 1,149 | $79,167 | $236,100 | $863 | 48.2 | 90.9% |
| 55941 | Hokah | Houston County | 1,084 | $71,607 | $219,400 | $907 | 35.9 | 70.6% |
| 54652 | Readstown | Vernon County | 1,048 | $54,583 | $180,600 | $710 | 38.5 | 80.0% |
| 55919 | Brownsville | Houston County | 1,008 | $70,962 | $223,300 | $675 | 54.7 | 93.3% |
Source: U.S. Census Bureau, American Community Survey 5-year estimates. Zip codes are grouped by the metro area their population mainly falls in.
