If you are trying to pick a town in South Charlotte, you probably have a list going. Weddington, Waxhaw, Marvin, Fort Mill, maybe Indian Land. Somewhere on that list is a house you like, in a town you have decided you like, with a mailing address that says the town’s name right on it. Here is what catches people: your mailing address does not decide your county, school district, or tax bill. The ZIP code that reads Waxhaw covers 106.33 square miles. The Town of Waxhaw covers 12.19. Both numbers come from the Census Bureau, and the gap between them is where the expensive surprises live.
So this isn’t a ranking. I’m not going to tell you Marvin beats Fort Mill, because that depends on what you’re solving for. Instead I’ll walk you through the numbers that change from town to town, show you where a county line quietly moves what you pay, and hand you the tools to check an address yourself before you get attached to it.
12 min read | Living in South Charlotte
Free · 26-Page Insider Guide
Every town here, side by side in one PDF.
Towns compared, NC vs SC taxes and schools side by side, and the 5 mistakes out-of-state buyers make.
What This Story Covers
- So which town should you pick?
- Your mailing address is not your town
- What you pay, county by county
- Which school district you land in
- Water, sewer, and what is still on a well
- The commute, and what is funded to change
- What each town gives you, and what it costs you
- How to check an address before you fall for it
- Frequently asked questions
- About the author
- How we sourced this
So which town should you pick?
Pick the parcel, not the town. Three things decide what a place in South Charlotte costs you, and none are printed on a listing: which county the parcel sits in, whether it sits inside a town’s limits, and which school district drew the boundary around it. Get those right and the rest is preference. Get them wrong and you can be thousands a year off, in a district you did not mean to be in.
Here is the scale of it. Among the Union County towns in this guide, the combined rate runs from $0.4567 per $100 of valuation in Wesley Chapel to $0.8742 in Monroe. Same county, same school system, nearly double the rate. Across the whole county the spread is wider still, from $0.4342 where no town rate applies at all up to $0.9042 in Marshville. Cross into Mecklenburg and the county portion alone jumps from $0.4342 to $0.4927 before any town adds its own.
The Short Answer
There is no single best town in South Charlotte, but there is a right answer for a given parcel. Your county sets most of your tax rate and all of your school district. Your town limits set the rest of the rate. Your mailing address sets neither, and it is the thing most buyers are reading.
Key numbers, South Charlotte, checked September 20, 2026 (sources: NCDOR, SCDOR, NC OSBM, US Census Bureau):
- Your combined property tax rate in Union County runs $0.4342 to $0.9042 per $100, depending on the town
- County rate alone: Union $0.4342, Mecklenburg $0.4927
- Sales tax: Union 6.75%, Mecklenburg 8.25%, York County SC 7%, unincorporated Lancaster SC 8%
- Mecklenburg is revaluing every parcel as of January 1, 2027, so your second year may not match your first. Union does not revalue again until 2029
- ZIP 28173 (Waxhaw) covers 106.33 square miles. The town covers 12.19
- ZIP 28104 carries a Matthews mailing name, and it is 96.9% Union County by land area
The thirteen places most South Charlotte searches land on, with the county, school district and sales tax rate for each. Property tax basis is written out rather than compared as one number, because North Carolina and South Carolina do not use the same system. Sources: NCDOR county and municipal tax rates for fiscal year 2025-2026, NCDOR current sales and use tax rates, SCDOR form ST-575 revised February 5, 2026, so you cannot read one state against the other on rate alone. Checked September 20, 2026.
| Place | County | School district | Sales tax | What sets the property tax |
|---|---|---|---|---|
| Weddington | Union, NC | Union County Public Schools | 6.75% | Union $0.4342 plus town $0.035 |
| Wesley Chapel | Union, NC | Union County Public Schools | 6.75% | Union $0.4342 plus village $0.0225 |
| Marvin | Union, NC | Union County Public Schools | 6.75% | Union $0.4342 plus village $0.0563 |
| Waxhaw | Union, NC | Union County Public Schools | 6.75% | Union $0.4342 plus town $0.29 |
| Indian Trail | Union, NC | Union County Public Schools | 6.75% | Union $0.4342 plus town $0.17 |
| Stallings | Union or Mecklenburg, NC | Union County Public Schools or CMS | 6.75% or 8.25% | Town $0.189 plus whichever county your parcel is in |
| Monroe | Union, NC | Union County Public Schools | 6.75% | Union $0.4342 plus city $0.44, plus $0.16 downtown |
| Mint Hill | Mecklenburg or Union, NC | Charlotte-Mecklenburg Schools or UCPS | 8.25% or 6.75% | Town $0.225 plus whichever county your parcel is in |
| Matthews | Mecklenburg, NC | Charlotte-Mecklenburg Schools | 8.25% | Mecklenburg $0.4927 plus town $0.2795 |
| Pineville | Mecklenburg, NC | Charlotte-Mecklenburg Schools | 8.25% | Mecklenburg $0.4927 plus town $0.30 |
| Ballantyne | Mecklenburg, NC | Charlotte-Mecklenburg Schools | 8.25% | Mecklenburg $0.4927 plus Charlotte $0.2741 |
| Fort Mill | York, SC | Fort Mill School District 4 | 7% | County and town millage on an assessment ratio |
| Indian Land | Lancaster, SC | Lancaster County School District | 8% | Lancaster County millage only, no town millage |
The row in that table I get asked about most is Stallings, and it is the one that explains the whole article. It is one town, with one town council and one town tax rate, sitting across a county line. The town rate is the same either way. Everything else about the bill is not.
Talk to a local broker
Send me an address and I will tell you what it actually is.
County, town limits, district and rate, pulled from the record rather than the listing. No pressure, just answers.
Schedule a 15-Minute Introductory Call →704-774-7170 · steve@jarrellhomes.com · thelongleafgroup.com
Your mailing address is not your town
A mailing address is a postal routing instruction. It was never designed to tell you which government taxes you, and here it frequently does not.
Take ZIP 28104. The preferred city name on it is Matthews, so every listing in it reads Matthews, and buyers reasonably conclude they are looking at the Town of Matthews in Mecklenburg County. They are usually not. The Census Bureau publishes the land area of every ZIP code tabulation area broken out by county, and for 28104 the split is 28.67 square miles in Union County against 0.93 in Mecklenburg. That is 96.9% Union. The actual Town of Matthews sits in the next ZIP over, 28105, and it is 98.6% Mecklenburg.
What turns on that is not small. A 28104 address that is physically in Weddington or Wesley Chapel is in Union County, which means Union County Public Schools, the 6.75% sales tax, and a county tax rate of $0.4342. A Matthews address that is genuinely in the Town of Matthews is Mecklenburg, which means Charlotte-Mecklenburg Schools, 8.25% sales tax, and $0.4927 before the town adds $0.2795 on top. Same word on the envelope, different county, different district, different bill.
Waxhaw is the same problem in a different shape. ZIP 28173 sits entirely inside Union County, so the county question is settled, but the ZIP covers 106.33 square miles and the Town of Waxhaw covers 12.19. The mailing area is roughly nine times the town. Most homes with a Waxhaw address are outside the town limits, so they skip the town’s $0.29 rate and pay the county’s $0.4342 alone. That runs in your favor as often as against, and it is worth settling before you budget. We went through what else the line moves in our piece on the Waxhaw and Weddington town line.
Then there is Indian Land, the cleanest version of the whole idea. It has a name, a ZIP, subdivisions and schools, and no town government at all. Lancaster County’s municipal millage schedule lists exactly two municipalities, Kershaw and the City of Lancaster. Indian Land is not one of them. There is no town council to petition and no town millage on top of the county rate. We wrote about why buyers keep crossing into it anyway.
What you pay, county by county
North Carolina publishes a combined rate, so you do not have to do the arithmetic and neither do I. Every figure below is NCDOR’s own combined county plus municipal rate per $100 of valuation for fiscal year 2025-2026, and the spread inside one county is the headline.

In Union County: Wesley Chapel $0.4567, Weddington $0.4692, Marvin $0.4905, Indian Trail $0.6042, Waxhaw $0.7242, Monroe $0.8742, and unincorporated Union County $0.4342 with no town rate at all. Monroe adds a further $0.16 inside its downtown municipal service district.
In Mecklenburg County: Mint Hill $0.7177, Charlotte $0.7668, Matthews $0.7722, Pineville $0.7927. Your floor is higher there because the county rate is higher, $0.4927 against Union’s $0.4342.
Put a round number on it. On a home assessed at $500,000, purely as a yardstick, Wesley Chapel’s rate produces $2,283.50 a year and Monroe’s produces $4,371.00. That is $2,087.50 a year between two towns in the same school district.
Now the two rows that prove the point about parcels. Mint Hill and Stallings each appear twice in the state’s file, because each town straddles a county line. Mint Hill’s town rate of $0.225 combines to $0.7177 on the Mecklenburg side and $0.6592 on the Union side. Stallings’ $0.189 combines to $0.6817 in Mecklenburg and $0.6232 in Union. One town, one council, one town rate, two different tax bills depending on which side of an invisible line the lot fell on.
Sales tax follows the same county logic. Mecklenburg sits at 8.25%, which is the highest rate of any county in North Carolina and the only one above 7.5%. Union sits at 6.75% along with half the state. We covered how Mecklenburg got there and what is excluded when the rate changed. Across the state line, York County is 7% and unincorporated Lancaster County, which is Indian Land, is 8%.
One thing to put in your calendar rather than your spreadsheet. Mecklenburg County is in the middle of a revaluation right now, setting new values as of January 1, 2027, with notices going out to owners in early 2027. The county said in September that its initial review of 428,506 parcels showed a median increase of about 15% on residential property. Union County last revalued in 2025 and is not scheduled again until 2029. If you buy on the Mecklenburg side this fall, your second year is likely to look different from your first.
Which school district you land in
Your district is decided by your county, and then your specific school is decided by a boundary that the district can redraw. Those are two separate facts and buyers routinely merge them.
The county part is simple. Union County addresses go to Union County Public Schools, Mecklenburg to Charlotte-Mecklenburg Schools, Fort Mill to Fort Mill School District 4, and Indian Land to Lancaster County School District. That is why the 28104 question matters: it is a district question wearing a mailing address.
The boundary part is where I would slow down. I am not going to tell you which school any address is assigned to, and be wary of any site that does. Assignment is verified on the district’s own boundary tool and nowhere else, and it changes. We walked through what actually decides a Union County assignment in its own piece.
Two live items are worth knowing while you shop. Charlotte-Mecklenburg Schools is running a comprehensive review of its attendance boundaries, with the final boundary plan presented October 26, 2026, a public hearing November 10, and a board vote December 8, 2026. If you are touring on the Mecklenburg side for a 2027 move, that vote lands before you unpack.
On the Union County side, the district publishes a list of schools it cannot approve transfers into for 2026-27 on capacity grounds, outside of sibling, employee and legally required cases.
For this year that list includes Cuthbertson, Marvin Ridge, Porter Ridge and Weddington at the high school level, and Cuthbertson, Porter Ridge and Weddington at the middle school level. That is a published capacity fact rather than a comment on any school, and it matters because it tells you the assigned boundary is the one that counts in those areas. If a Weddington address is on your list, it is worth having someone who works that market every week confirm the assignment before you write an offer, which is the sort of thing our Weddington team page walks through.
If there is one thing I would want a relocating buyer to take from this article, it is that the district question is settled before you ever tour a house, because it is settled by the county the parcel is in. The school question is a separate one, it is answered by the district’s own tool, and it can move. Treating those as one question is the most common mistake I see people make from out of state.
Talk to a local broker
Narrowed it to two towns and stuck?
Fifteen minutes with a broker who works both sides of the county line every week is usually enough to settle it.
Book a 15-minute call →Water, sewer, and what is still on a well
This is the factor nobody puts on a comparison chart and everybody notices in month two. In the larger-lot Union County towns, public water and sewer reaches some places and not others, on the same road.
The Village of Marvin says it plainly on its own utilities page: many residents are on a septic tank and a well, and where water and sewer connection is available it is provided by Union County. That is how it works across Marvin, Weddington and much of unincorporated Union County. We went into Marvin’s lot rules and rate in more detail separately.
Indian Trail publishes the most useful version of this. Union County Water serves the majority of the town, and a small portion of the Beacon Hills and Crismark neighborhoods is served by Carolina Water Services of NC, a private utility. Two providers, one town, and the difference shows up on a bill rather than a deed.
Monroe runs its own municipal water and sewer system, which is part of what the city rate buys. Fort Mill’s utilities department serves roughly 8,600 metered accounts, and the same page names Springview Meadows, Carolina Orchards, Anniston Chase and the Springfield subdivisions as served by York County Utilities instead. Indian Land’s water and sewer comes from the Lancaster County Water and Sewer District, which follows from there being no town to run a utility.
Your practical move is simple. Ask in writing, for the specific parcel, and do not take the subdivision’s answer for a lot on its edge.
The commute, and what is funded to change
Most people I talk to are driving into an office one or two days a week rather than five, which changes how much weight the commute deserves. It is a cost you pay occasionally, not a daily sentence. What is worth doing is looking at what the state has already funded, because that is what your drive looks like in three years.
Two projects decide that here. NCDOT has the I-485 Express Lanes funded through construction, adding lanes on the Ballantyne stretch between Rea Road and Providence Road. And NC 16, Providence Road South, is the road most Waxhaw and Marvin buyers drive, with construction beginning in 2029. So today’s drive is a fair preview for a few years, and then it is a work zone. We put the full numbers in our guide to planning a scouting trip, with the advice to drive it at the hour you really would. We covered what Matthews costs you in traffic separately.
What each town gives you, and what it costs you
Every one of these is a real tradeoff, which means the thing in the second column is not a flaw. It is the price of the thing in the first.
Weddington. The second lowest combined rate of the towns in this guide at $0.4692, large lots, and Union County schools. The cost is that low town rate buys you very little town: services come from the county, much of it is on well and septic, and there is no walkable center. Its population is 14,751 as of the state’s 2024 certified estimate, up from 13,180 in 2020.
Wesley Chapel. The lowest combined rate of the towns here at $0.4567, on a village tax of 2.25 cents. You get the same tradeoff as Weddington, only more of it. We wrote up exactly what that 2.25 cents buys.
Marvin. $0.4905 combined, 6,994 people, and deliberate large-lot rules, with trails the village has built out. What you give up is scale: it is small by design, and much of it is on septic.
Waxhaw. An actual downtown with a Main Street program running real events, which is rare here. You pay for it with the $0.29 town rate, a combined $0.7242 that is the highest of the towns in this guide apart from Monroe, and the odds that the Waxhaw address you are looking at sits outside the town line.
Indian Trail. $0.6042 combined and the largest population here at 45,045, with the retail that follows. You take on the growth, and two water providers to sort out. We broke down what the town charges.
Monroe. The highest combined rate at $0.8742, and the most town for it: its own electric system, its own water and sewer, its own airport and a real downtown. You are buying more town rather than simply paying more, and we went through what the city rate buys.
Matthews and Mint Hill. Established Mecklenburg towns with their own centers and sidewalks, at $0.7722 and $0.7177. You pay the 8.25% sales tax for it, the higher county rate, and the 2027 revaluation.
Ballantyne. The most amenity per square mile in South Charlotte and a genuine employment center. What you do not get is a town: no town hall and no local council, which we covered in our piece on what follows from that.
Fort Mill and Indian Land. South Carolina, so a different property tax system entirely, a lower sales tax in Fort Mill’s case at 7%, and no North Carolina income tax. The cost is that the system is genuinely different rather than simply cheaper, and you have to work it out rather than assume it. We compared what the state line changes, and the Fort Mill side of our practice deals with the South Carolina mechanics weekly.
How to check an address before you fall for it
All of this is checkable in ten minutes, free, on official tools. Do it before you tour, not after you are under contract.
For the county and the parcel, use the county’s own map. Union County’s is at gis.unioncountync.gov. Mecklenburg’s parcel viewer is Polaris3G. Lancaster County, South Carolina publishes a GIS portal, and York County runs a parcel search it calls One Map Reports. These will tell you the county, the parcel, and whether the property sits inside a municipality.
For schools, go to the district and only the district. Union County Public Schools publishes its attendance boundary maps and a student assignment page. Charlotte-Mecklenburg Schools sends its own Find My School link to the Mecklenburg County GeoPortal, which is the county’s map rather than a CMS page, so do not be surprised when you end up there.
For the tax rate, once you know the county and whether you are inside a town, the NCDOR table gives you the combined rate directly. One question those tools will not answer is whether the lot is on county water or a private well, and that is the one to put in writing to the listing agent.
If you would rather hand the whole exercise to someone, that is most of what we do for relocating buyers, and how our South Charlotte practice is set up explains how we work.
Frequently Asked Questions About Where to Live in South Charlotte
Which South Charlotte town has the lowest property taxes?
Wesley Chapel, at a combined county and village rate of $0.4567 per $100 of valuation for fiscal year 2025-2026, followed by Weddington at $0.4692 and Marvin at $0.4905. Unincorporated Union County is lower still at $0.4342, because there is no town rate on top of the county rate. Those are NCDOR combined rates, so you can compare them directly.
Does a Matthews mailing address mean the home is in Matthews?
Often it does not. ZIP 28104 carries Matthews as its preferred postal city and is 96.9 percent Union County by land area, which means most homes in it are in Weddington, Wesley Chapel, Stallings or unincorporated Union County rather than the Town of Matthews. The Town of Matthews is in Mecklenburg County, mostly in ZIP 28105. Check your parcel on the county map rather than the listing.
Is a Waxhaw address inside the Town of Waxhaw?
Usually not. ZIP 28173 covers 106.33 square miles and the Town of Waxhaw covers 12.19 square miles, so the mailing area is roughly nine times the town. A home outside the town limits pays the Union County rate of $0.4342 without the town rate of $0.29 on top. The county parcel map will confirm which applies.
How does the South Carolina property tax system differ from North Carolina?
South Carolina applies an assessment ratio to market value before the millage, so a rate cannot be compared directly against a North Carolina rate per 100 dollars. An owner occupied primary home is assessed at 4 percent rather than the 6 percent default, and that lower ratio has to be applied for. North Carolina has no equivalent filing, and the published rate is the rate.
Which school district serves each South Charlotte town?
Union County addresses are served by Union County Public Schools, Mecklenburg County addresses by Charlotte-Mecklenburg Schools, Fort Mill by Fort Mill School District 4, and Indian Land by Lancaster County School District. Your district follows your county. The specific school is set by an attendance boundary that only the district can confirm, and boundaries change.
Why do Mint Hill and Stallings appear twice in the state tax tables?
Because each town crosses a county line. Mint Hill combines to $0.7177 per $100 on the Mecklenburg side and $0.6592 on the Union side. Stallings combines to $0.6817 in Mecklenburg and $0.6232 in Union. Your town rate is identical either way. The county underneath you is not, and neither is your school district or your sales tax.
Does Indian Land have its own town government?
No. Indian Land is an unincorporated community in Lancaster County, South Carolina. Lancaster County lists only Kershaw and the City of Lancaster as municipalities in its millage schedule, and Indian Land is not one of them. There is no town council for you to petition and no municipal property tax on top of the county rate.
About the Author
Steve Jarrell is a licensed North Carolina and South Carolina broker and the team lead of The Longleaf Group at eXp Realty, which he co-leads with his wife Amanda. Before real estate, Steve joined VisualTour as President, led its rebrand to Paradym, and led the company to its acquisition by Constellation Software in 2020. He holds an MBA from the University of Tennessee with concentrations in Marketing and Innovation. The Longleaf Group is an eXp ICON Team and a RealTrends Verified Top Team by Volume for 2026, with 140+ five-star reviews.
Steve lives in Weddington and writes and films across these towns, which is why the county line question comes up here so often: he is licensed on both sides of the state line and works parcels on both sides of the Union and Mecklenburg boundary most weeks. If you want an address checked before you tour it, reach him at 704-774-7170.
How we sourced this
Property tax rates are the North Carolina Department of Revenue’s published county and municipal tax rates and effective tax rates for fiscal year 2025-2026, which carries NCDOR’s own combined rate column, so the combined figures above are the state’s arithmetic rather than ours. County rates and reappraisal years were cross checked against NCDOR’s fiscal year 2026-2027 county file, which shows Union unchanged at $0.4342 with its next reappraisal in 2029, and Mecklenburg unchanged at $0.4927 with its next in 2027.
For sales tax we used NCDOR’s current sales and use tax rates file for North Carolina and SCDOR form ST-575, revised February 5, 2026, for South Carolina. Populations you see above are the North Carolina Office of State Budget and Management certified estimate for July 1, 2024, with two county parts summed for Weddington. Land areas are the US Census Bureau’s 2020 ZCTA to county relationship file and its 2024 place gazetteer. The Mecklenburg revaluation figures are the county’s own release of September 2, 2026. School capacity and boundary dates come from Union County Public Schools and Charlotte-Mecklenburg Schools, and utility statements from each town’s own utilities page.
Two things we could not verify, so you will not find them above. Fort Mill’s town council set a new millage rate for fiscal year 2026-27 at its August 24, 2026 meeting, and we could not reach a primary ordinance carrying the new figure, so no Fort Mill millage number appears above. The Office of State Budget and Management certifies North Carolina populations only, so we give you no 2024 certified population for Fort Mill or Indian Land.
Last updated: September 20, 2026.