An estimated 200,000 owner-occupied single-family homes in the Charlotte region have a roof that is 20 years old or older: an estimated 33% of homes, with an estimated range of 27% to 37%. Replacing those roofs at the regional median cost of a roof job would total an estimated $2.2 billion. The study covers the 11 counties of the Charlotte metropolitan area: Anson, Cabarrus, Gaston, Iredell, Lincoln, Mecklenburg, Rowan and Union in North Carolina, and Chester, Lancaster and York in South Carolina. Every roof-age figure on this page is shown with its estimated range. How the estimates are made.
County | Rank | Estimated share of homes with a roof 20+ years old | Estimated range | Estimated median roof age | Estimated homes with a roof 20+ years old | Estimated replacement value |
|---|---|---|---|---|---|---|
Anson County, NC | 1 | 42% | 29–46% | 13–18 years | 1,900 | $21 million |
Chester County, SC | 2 | 40% | 28–44% | 13–17 years | 3,100 | $34 million |
Rowan County, NC | 3 | 39% | 29–43% | 13–17 years | 14,000 | $150 million |
Gaston County, NC | 4 | 37% | 28–41% | 12–16 years | 20,000 | $220 million |
Mecklenburg County, NC | 5 | 34% | 28–38% | 12–15 years | 74,000 | $810 million |
Iredell County, NC | 6 | 33% | 27–37% | 12–15 years | 16,000 | $170 million |
Lincoln County, NC | 7 | 33% | 27–37% | 11–15 years | 8,300 | $91 million |
Cabarrus County, NC | 8 | 31% | 25–35% | 11–14 years | 17,000 | $190 million |
Union County, NC | 9 | 31% | 25–34% | 11–14 years | 20,000 | $220 million |
York County, SC | 10 | 30% | 24–33% | 11–14 years | 22,000 | $240 million |
Lancaster County, SC | 11 | 27% | 22–30% | 10–13 years | 7,700 | $84 million |
Estimates from the Benton Roofing Roof Age Index, modeled from U.S. Census Bureau American Community Survey 2020–2024 and American Housing Survey 2017–2023 data. Owner-occupied single-family detached homes, as of 2026. Estimates, not measurements; ranges combine survey uncertainty and model choice. Replacement values use the regional median roof-job cost and are conservative. Hurricane Helene damage in parts of Chester County may have prompted some roof replacements not reflected in this estimate.
Twenty years is the life expectancy that a 2007 National Association of Home Builders and Bank of America Home Equity study lists for asphalt roofing. Actual roof life varies, and an older roof doesn’t necessarily need replacing.
ZIP estimates apply the same regional replacement rate as the county figures, so differences of a few points between ZIP codes fall within their estimated ranges. ZIP codes with fewer than 50 qualifying homes are withheld. Every ZIP code is in the downloadable data.
ZIP code | Rank | County | Estimated homes with a roof 20+ years old | Estimated replacement value | Estimated share of homes with a roof 20+ years old | Estimated range |
|---|---|---|---|---|---|---|
28269 | 1 | Mecklenburg County, NC | 5,600 | $61 million | 34% | 27–38% |
28078 | 2 | Mecklenburg County, NC | 5,300 | $58 million | 28% | 23–32% |
29732 | 3 | York County, SC | 5,300 | $58 million | 35% | 28–39% |
28227 | 4 | Mecklenburg County, NC | 5,200 | $58 million | 36% | 26–40% |
28277 | 5 | Mecklenburg County, NC | 5,000 | $55 million | 35% | 29–39% |
28027 | 6 | Cabarrus County, NC | 5,000 | $55 million | 29% | 24–33% |
29720 | 7 | Lancaster County, SC | 4,700 | $51 million | 33% | 24–37% |
28215 | 8 | Mecklenburg County, NC | 4,600 | $51 million | 32% | 25–35% |
29730 | 9 | York County, SC | 4,500 | $50 million | 36% | 28–40% |
28110 | 10 | Union County, NC | 4,400 | $48 million | 34% | 27–37% |
Among ZIP codes with at least 500 qualifying homes.
ZIP code | Rank | County | Estimated share of homes with a roof 20+ years old | Estimated range | Estimated homes with a roof 20+ years old |
|---|---|---|---|---|---|
28091 | 1 | Anson County, NC | 43% | 30–48% | 230 |
28052 | 2 | Gaston County, NC | 42% | 30–47% | 2,700 |
28144 | 3 | Rowan County, NC | 42% | 30–47% | 2,500 |
28212 | 4 | Mecklenburg County, NC | 42% | 29–47% | 2,200 |
28159 | 5 | Rowan County, NC | 42% | 32–46% | 370 |
29055 | 6 | Chester County, SC | 42% | 29–46% | 480 |
28016 | 7 | Gaston County, NC | 42% | 29–46% | 1,400 |
28133 | 8 | Anson County, NC | 42% | 32–46% | 240 |
28168 | 9 | Lincoln County, NC | 42% | 31–46% | 1,200 |
28147 | 10 | Rowan County, NC | 42% | 32–46% | 2,100 |
Estimates from the Benton Roofing Roof Age Index, modeled from U.S. Census Bureau American Community Survey 2020–2024 and American Housing Survey 2017–2023 data. Owner-occupied single-family detached homes, as of 2026. Estimates, not measurements; ranges combine survey uncertainty and model choice. Replacement values use the regional median roof-job cost and are conservative.
Rank | County | Radar hail days/yr (1 in+) | Radar hail days/yr (1.75 in+) | Hail Exposure Index |
|---|---|---|---|---|
1 | Lancaster County | 2.1 | 0.57 | 159 |
2 | Anson County | 2.0 | 0.45 | 153 |
3 | Union County | 1.9 | 0.42 | 146 |
4 | Lincoln County | 1.8 | 0.40 | 134 |
5 | Cabarrus County | 1.7 | 0.40 | 130 |
6 | Iredell County | 1.7 | 0.42 | 128 |
7 | Mecklenburg County | 1.6 | 0.35 | 123 |
8 | Gaston County | 1.6 | 0.32 | 121 |
9 | Chester County | 1.6 | 0.46 | 120 |
10 | Rowan County | 1.6 | 0.36 | 119 |
11 | York County | 1.5 | 0.42 | 114 |
Sources: NOAA NCEI Severe Weather Data Inventory (NEXRAD Level-III hail detections) and NOAA NCEI Storm Events Database, 2000–2025. Radar hail days = average days a year radar detected hail 1 inch or larger at a typical location in the county. Index: three-market average = 100.
The Composite Risk Index ranks all 44 counties in the study on both estimated roof age and radar hail frequency, then retests every ranking under 12 sets of assumptions. Tiers compare the study’s counties with each other and are not a forecast of damage.
Anson County, which has an older housing stock, is rated Highest, in 11 of 12 assumption sets. Eight counties, including Mecklenburg, are rated Moderate. In all but one of them, frequent hail is offset by a younger roof stock. York County is rated Lower, and Chester County did not hold a consistent rating.
County | Tier | Assumption sets agreeing | Estimated share of homes with a roof 20+ years old | Radar hail days a year | Days at 90°F or hotter (context) | Freeze-thaw days (context) |
|---|---|---|---|---|---|---|
Anson County, NC | Highest | 11 of 12 | 42% | 2.0 | 59 | 57 |
Cabarrus County, NC | Moderate | 12 of 12 | 31% | 1.7 | 61 | 73 |
Lancaster County, SC | Moderate | 12 of 12 | 27% | 2.1 | 56 | 51 |
Lincoln County, NC | Moderate | 12 of 12 | 33% | 1.8 | 36 | 83 |
Union County, NC | Moderate | 12 of 12 | 31% | 1.9 | 53 | 62 |
Iredell County, NC | Moderate | 10 of 12 | 33% | 1.7 | 33 | 96 |
Rowan County, NC | Moderate | 10 of 12 | 39% | 1.6 | 36 | 80 |
Mecklenburg County, NC | Moderate | 9 of 12 | 34% | 1.6 | 49 | 57 |
Gaston County, NC | Moderate | 7 of 12 | 37% | 1.6 | 50 | 59 |
York County, SC | Lower | 11 of 12 | 30% | 1.5 | 55 | 65 |
Chester County, SC | No consistent tier | — | 40% | 1.6 | 54 | 82 |
Composite Risk Index, Benton Roofing Roof Age Index. Tiers combine where roofs are oldest (estimated share of owner-occupied single-family homes with a roof 20+ years old) and where hail is most frequent (NOAA radar hail days, 2000–2025), ranked in thirds across the 44 counties in Benton Roofing’s three markets. Each county was tested under 12 sets of assumptions; the tier shown is the one it lands in most often, with how many of the 12 agree. Counties without a consistent result are not assigned a tier. Tiers are relative to these 44 counties, not a forecast of damage. Heat and freeze-thaw days (NOAA 1991–2020 normals) are shown for context and are not part of the tier.
County | Days a year at 90°F or hotter | Freeze-thaw days a year | NOAA stations used |
|---|---|---|---|
Anson County, NC | 59 | 57 | 1 station |
Cabarrus County, NC | 61 | 73 | 1 station |
Chester County, SC | 54 | 82 | 1 station |
Gaston County, NC | 50 | 59 | 2 stations |
Iredell County, NC | 33 | 96 | 1 station |
Lancaster County, SC | 56 | 51 | 1 station, nearby county |
Lincoln County, NC | 36 | 83 | 2 stations |
Mecklenburg County, NC | 49 | 57 | 1 station |
Rowan County, NC | 36 | 80 | 2 stations |
Union County, NC | 53 | 62 | 2 stations |
York County, SC | 55 | 65 | 3 stations |
Source: NOAA NCEI U.S. Climate Normals 1991–2020. County figures are the median of NOAA stations in the county within 200 m of the elevation where most residents live, or the nearest representative station where a county has none. Local microclimates vary; single-station counties are less certain. Freeze-thaw days: the low reaches 32°F or colder and the high rises above 32°F. A descriptive climate comparison, not an estimate of roof life. Benton Roofing Roof Age Index.
An older roof doesn’t necessarily need to be replaced. Roof life depends on the material, how it was installed, how it has been maintained and the weather it has faced. This study describes the age of the housing stock, not the condition of any one roof.
If you don’t know how old your roof is, the paperwork from your home purchase, a past inspection report, a building permit record or the installer’s warranty may tell you. A roof inspection can tell you its condition.
The data, tables and charts are free to download and reuse under the Creative Commons Attribution 4.0 International License (CC BY 4.0), including for commercial use. Please credit Benton Roofing, Roof Age Index 2026, link to https://bentonroofing.com/roof-age-index/, and note any changes you made. The Benton Roofing name and logo are not covered by the license.
Found an error? Email contact@bentonroofinginc.com. Corrections are noted on the methodology page with their date.