Comparison to Surrounding Areas
The median household income ($138,017) for 28104 is less than the median household income for 28173 ($150,597) and Weddington town ($190,766). But it's more than 28105 ($108,190), 28079 ($100,516), 28277 ($128,627), 28227 ($77,115), 28110 ($83,480), Mecklenburg County ($87,005), Union County ($102,900), Wesley Chapel village ($132,188), Stallings town ($115,974), Matthews town ($108,611), Indian Trail town ($108,483), and Hemby Bridge town ($71,688).
| 28104 | $138,017 |
| Wesley Chapel village | $132,188 |
| Stallings town | $115,974 |
| Weddington town | $190,766 |
| Hemby Bridge town | $71,688 |
| Indian Trail town | $108,483 |
| Matthews town | $108,611 |
| Union County | $102,900 |
| Mecklenburg County | $87,005 |
Get Median Household Income for all Zip Codes in North Carolina.
The average household income ($179,530) for 28104 is less than the average household income for 28173 ($200,570) and Weddington town ($251,504). But it's more than 28105 ($132,217), 28079 ($119,238), 28277 ($173,599), 28227 ($101,976), 28110 ($98,957), Mecklenburg County ($128,782), Union County ($137,465), Wesley Chapel village ($162,469), Stallings town ($145,655), Matthews town ($134,831), Indian Trail town ($125,258), and Hemby Bridge town ($80,763).
| 28104 | $179,530 |
| Wesley Chapel village | $162,469 |
| Stallings town | $145,655 |
| Weddington town | $251,504 |
| Hemby Bridge town | $80,763 |
| Indian Trail town | $125,258 |
| Matthews town | $134,831 |
| Union County | $137,465 |
| Mecklenburg County | $128,782 |
Get Average Household Income for all Zip Codes in North Carolina.
The per-capita income for 28104 is $64,298. The per capita income ($64,298) for 28104 is less than the per capita income for 28277 ($69,255) and Weddington town ($83,398). But it's more than 28105 ($49,896), 28079 ($40,750), 28227 ($38,094), 28173 ($63,561), 28110 ($34,343), Mecklenburg County ($53,295), Union County ($46,949), Wesley Chapel village ($55,995), Stallings town ($56,124), Matthews town ($53,265), Indian Trail town ($41,956), and Hemby Bridge town ($29,687).
| 28104 | $64,298 |
| Wesley Chapel village | $55,995 |
| Stallings town | $56,124 |
| Weddington town | $83,398 |
| Hemby Bridge town | $29,687 |
| Indian Trail town | $41,956 |
| Matthews town | $53,265 |
| Union County | $46,949 |
| Mecklenburg County | $53,295 |
Get Per-Capita Income for all Zip Codes in North Carolina.
32% of households make over $200,000 a year. The percent high income households (32.0%) for 28104 is less than the percent high income households for 28173 (36.4%) and Weddington town (48.2%). But it's more than 28105 (17.1%), 28079 (13.0%), 28277 (29.2%), 28227 (10.4%), 28110 (8.3%), Mecklenburg County (16.3%), Union County (19.1%), Wesley Chapel village (28.6%), Stallings town (21.4%), Matthews town (17.1%), Indian Trail town (14.4%), and Hemby Bridge town (4.2%).
| 28104 | 32.0% |
| Wesley Chapel village | 28.6% |
| Stallings town | 21.4% |
| Weddington town | 48.2% |
| Hemby Bridge town | 4.2% |
| Indian Trail town | 14.4% |
| Matthews town | 17.1% |
| Union County | 19.1% |
| Mecklenburg County | 16.3% |
Get High Income Households for all Zip Codes in North Carolina.
| under 25 years | 25 to 44 years | 45 to 64 years | 65 years and over | |
|---|---|---|---|---|
| 28104 | $-1 | $144,106 | $176,855 | $77,938 |
| Wesley Chapel village | $-1 | $123,466 | $154,925 | $81,042 |
| Stallings town | $-1 | $141,992 | $140,046 | $66,394 |
| Weddington town | $-1 | $250,001 | $227,672 | $109,750 |
| Hemby Bridge town | $-1 | $74,375 | $79,063 | $44,485 |
| Indian Trail town | $45,688 | $127,075 | $121,429 | $55,515 |
| Matthews town | $-1 | $130,149 | $133,762 | $71,581 |
| Union County | $71,250 | $114,483 | $129,357 | $63,479 |
| Mecklenburg County | $49,640 | $93,123 | $102,058 | $60,344 |
Get Median Household Income by Age of Householder for all Zip Codes in North Carolina.
Use our lookalike & filtering workflow to discover every zip that matches your ideal market profile.
Our Income By Zip Code Lists let you start with a zip like 28104, then automatically find hundreds of similar zips by income, demographics, and growth potential — so you can build a smarter target list in minutes.
Get Your Income By Zip Code List
Get all zip codes in a state or the entire US with data such as median household income.
Starting at $65.
All income statistics above are the most current, comparable income statistics available from the US Census Bureau and are from the American Community Survey 2024 5-year estimates. You can find this information and other demographics for 28104 on the US Census Bureau’s website. These values are in 2024 inflation-adjusted dollars and were downloaded on 29 January 2026.
Margins of error for the income data are:
| Median Household Income | Average Household Income | Per Capita Income | High Income Households | Median Household Income by Age of Householder | ||||
|---|---|---|---|---|---|---|---|---|
| under 25 | 25 to 44 | 45 to 64 | 65+ | |||||
| 28104 | +/-$10,655 | +/-$9,258 | +/-$3,930 | +/-3.0% | +/-$-1 | +/-$10,395 | +/-$18,186 | +/-$9,294 |
| Wesley Chapel village | +/-$36,990 | +/-$15,528 | +/-$5,959 | +/-6.2% | +/-$-1 | +/-$38,460 | +/-$35,276 | +/-$22,529 |
| Stallings town | +/-$10,627 | +/-$12,171 | +/-$4,847 | +/-3.7% | +/-$-1 | +/-$15,462 | +/-$23,639 | +/-$7,043 |
| Weddington town | +/-$24,012 | +/-$24,751 | +/-$9,543 | +/-5.9% | +/-$-1 | +/-$-1 | +/-$36,737 | +/-$20,986 |
| Hemby Bridge town | +/-$25,558 | +/-$15,486 | +/-$4,499 | +/-2.7% | +/-$-1 | +/-$30,257 | +/-$61,298 | +/-$18,951 |
| Indian Trail town | +/-$8,730 | +/-$6,092 | +/-$2,401 | +/-2.5% | +/-$32,723 | +/-$15,222 | +/-$7,712 | +/-$13,878 |
| Matthews town | +/-$9,129 | +/-$8,878 | +/-$3,453 | +/-2.4% | +/-$-1 | +/-$14,598 | +/-$12,818 | +/-$6,378 |
| Union County | +/-$1,953 | +/-$3,196 | +/-$1,040 | +/-1.0% | +/-$36,646 | +/-$5,359 | +/-$5,504 | +/-$3,704 |
| Mecklenburg County | +/-$1,162 | +/-$1,803 | +/-$732 | +/-0.4% | +/-$3,311 | +/-$2,275 | +/-$2,465 | +/-$1,597 |