An estimated 110,000 owner-occupied single-family homes in Western North Carolina have a roof that is 20 years old or older: an estimated 39% of homes, with an estimated range of 23% to 43%. Replacing those roofs at the regional median cost of a roof job would total an estimated $1.2 billion. The study covers the 23 counties in Western Carolina University’s definition of the region: Alleghany, Ashe, Avery, Buncombe, Burke, Caldwell, Cherokee, Clay, Graham, Haywood, Henderson, Jackson, McDowell, Macon, Madison, Mitchell, Polk, Rutherford, Swain, Transylvania, Watauga, Wilkes and Yancey. 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 |
|---|---|---|---|---|---|---|
Caldwell County, NC | 1 | 41% | 27–46% | 13–18 years | 8,600 | $95 million |
Wilkes County, NC | 2 | 41% | 25–45% | 13–18 years | 6,400 | $71 million |
Burke County, NC | 3 | 41% | 24–45% | 13–18 years | 9,100 | $100 million |
Mitchell County, NC | 4 | 41% | 18–45% | 13–18 years | 1,700 | $19 million |
Alleghany County, NC | 5 | 40% | 24–45% | 13–18 years | 1,300 | $15 million |
Avery County, NC | 6 | 40% | 22–45% | 13–18 years | 1,800 | $20 million |
Transylvania County, NC | 7 | 40% | 25–44% | 13–18 years | 3,700 | $41 million |
Ashe County, NC | 8 | 40% | 25–44% | 13–18 years | 3,200 | $36 million |
Rutherford County, NC | 9 | 40% | 21–44% | 13–17 years | 6,400 | $70 million |
McDowell County, NC | 10 | 40% | 20–44% | 13–18 years | 4,200 | $46 million |
Haywood County, NC | 11 | 39% | 24–44% | 13–17 years | 6,500 | $72 million |
Macon County, NC | 12 | 39% | 29–44% | 13–18 years | 4,500 | $50 million |
Clay County, NC | 13 | 39% | 31–44% | 13–18 years | 1,400 | $15 million |
Watauga County, NC | 14 | 39% | 25–44% | 13–18 years | 4,300 | $48 million |
Swain County, NC | 15 | 39% | 29–43% | 13–17 years | 1,100 | $12 million |
Graham County, NC | 16 | 39% | 28–43% | 12–17 years | 760 | $8 million |
Polk County, NC | 17 | 38% | 23–43% | 12–17 years | 2,400 | $27 million |
Jackson County, NC | 18 | 38% | 28–42% | 13–17 years | 3,500 | $39 million |
Yancey County, NC | 19 | 38% | 19–42% | 12–17 years | 1,900 | $21 million |
Henderson County, NC | 20 | 37% | 20–41% | 12–16 years | 11,000 | $120 million |
Buncombe County, NC | 21 | 36% | 17–40% | 12–16 years | 20,000 | $220 million |
Madison County, NC | 22 | 36% | 22–40% | 12–16 years | 1,800 | $20 million |
Cherokee County, NC | 23 | 36% | 29–40% | 12–16 years | 3,200 | $35 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 repairs may have replaced some older roofs; the estimated range accounts for that.
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 |
|---|---|---|---|---|---|---|
28655 | 1 | Burke County, NC | 5,400 | $59 million | 41% | 22–45% |
28645 | 2 | Caldwell County, NC | 4,800 | $52 million | 41% | 25–46% |
28734 | 3 | Macon County, NC | 3,300 | $37 million | 40% | 29–44% |
28752 | 4 | McDowell County, NC | 2,800 | $31 million | 41% | 21–46% |
28806 | 5 | Buncombe County, NC | 2,800 | $31 million | 38% | 15–42% |
28792 | 6 | Henderson County, NC | 2,600 | $29 million | 36% | 18–40% |
28739 | 7 | Henderson County, NC | 2,600 | $28 million | 39% | 19–43% |
28803 | 8 | Buncombe County, NC | 2,300 | $25 million | 36% | 15–40% |
28906 | 9 | Cherokee County, NC | 2,200 | $24 million | 34% | 27–37% |
28804 | 10 | Buncombe County, NC | 2,200 | $24 million | 38% | 14–42% |
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 |
|---|---|---|---|---|---|
28160 | 1 | Rutherford County, NC | 44% | 19–49% | 330 |
28643 | 2 | Ashe County, NC | 43% | 24–48% | 400 |
28043 | 3 | Rutherford County, NC | 43% | 21–48% | 1,800 |
28659 | 4 | Wilkes County, NC | 43% | 24–48% | 2,100 |
28638 | 5 | Caldwell County, NC | 43% | 28–47% | 1,400 |
28698 | 6 | Watauga County, NC | 42% | 25–47% | 250 |
28901 | 7 | Cherokee County, NC | 42% | 30–47% | 580 |
28637 | 8 | Burke County, NC | 42% | 30–47% | 210 |
28669 | 9 | Wilkes County, NC | 42% | 27–47% | 280 |
28690 | 10 | Burke County, NC | 42% | 25–47% | 1,300 |
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 repairs may have replaced some older roofs; the estimated range accounts for that.
The replacement rates behind the index come from federal surveys conducted through 2023. Hurricane Helene struck in September 2024, so roofs replaced because of the storm aren’t reflected, and every such replacement lowers the true share of older roofs.
No public source counts roofs replaced after Helene, so the study sets an upper limit instead. It spreads the North Carolina Department of Insurance’s 58,165 paid homeowners claims (statewide, as of September 12, 2025) across counties in proportion to FEMA-verified non-flood damage, and counts every paid claim as a full roof replacement. That deliberately overstates the effect.
By that upper limit, the region’s share of older roofs could be up to about 6 percentage points lower overall, and up to about 12 points lower in the hardest-hit counties, including Buncombe and Mitchell. The headline estimates are unchanged, but the low end of every estimated range on this page has been lowered by its county’s or ZIP code’s upper-limit effect. That’s why ranges here are wider than in the other markets.
We will revisit the adjustment if county-level insurance or permit data become available. Full Helene method.
Rank | County | Radar hail days/yr (1 in+) | Radar hail days/yr (1.75 in+) | Hail Exposure Index |
|---|---|---|---|---|
1 | Rutherford County | 1.7 | 0.44 | 129 |
2 | Burke County | 1.7 | 0.30 | 125 |
3 | McDowell County | 1.6 | 0.34 | 119 |
4 | Polk County | 1.6 | 0.35 | 118 |
5 | Caldwell County | 1.5 | 0.26 | 115 |
6 | Transylvania County | 1.4 | 0.24 | 105 |
7 | Henderson County | 1.4 | 0.31 | 102 |
8 | Wilkes County | 1.3 | 0.24 | 101 |
9 | Clay County | 1.1 | 0.19 | 81 |
10 | Buncombe County | 1.0 | 0.22 | 76 |
11 | Cherokee County | 0.9 | 0.21 | 68 |
12 | Watauga County | 0.8 | 0.10 | 64 |
13 | Mitchell County | 0.8 | 0.14 | 63 |
14 | Ashe County | 0.8 | 0.10 | 62 |
15 | Avery County | 0.8 | 0.08 | 61 |
16 | Madison County | 0.7 | 0.14 | 56 |
17 | Alleghany County | 0.7 | 0.14 | 56 |
18 | Macon County | 0.7 | 0.08 | 52 |
19 | Yancey County | 0.6 | 0.08 | 46 |
20 | Haywood County | 0.5 | 0.09 | 41 |
21 | Jackson County | 0.5 | 0.09 | 39 |
22 | Graham County | 0.5 | 0.07 | 36 |
23 | Swain County | 0.4 | 0.06 | 34 |
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.
Burke County is rated Highest, in 10 of 12 assumption sets. Caldwell and Wilkes counties are rated Elevated, in 11 and 10 of 12. Eleven of the region’s 23 counties, including Buncombe, Haywood and Henderson, are rated Lower. A Lower rating means lower than the study’s other counties, not low risk. Six counties 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) |
|---|---|---|---|---|---|---|
Burke County, NC | Highest | 10 of 12 | 41% | 1.7 | 35 | 88 |
Caldwell County, NC | Elevated | 11 of 12 | 41% | 1.5 | 36 | 88 |
Wilkes County, NC | Elevated | 10 of 12 | 41% | 1.3 | 32 | 98 |
Clay County, NC | Moderate | 10 of 12 | 39% | 1.1 | 3 | 100 |
Mitchell County, NC | Moderate | 8 of 12 | 41% | 0.8 | 2 | 115 |
McDowell County, NC | Moderate | 7 of 12 | 40% | 1.6 | 21 | 102 |
Cherokee County, NC | Lower | 12 of 12 | 36% | 0.9 | 21 | 100 |
Jackson County, NC | Lower | 12 of 12 | 38% | 0.5 | 13 | 98 |
Madison County, NC | Lower | 12 of 12 | 36% | 0.7 | 13 | 114 |
Yancey County, NC | Lower | 12 of 12 | 38% | 0.6 | 2 | 98 |
Graham County, NC | Lower | 11 of 12 | 39% | 0.5 | 8 | 87 |
Watauga County, NC | Lower | 11 of 12 | 39% | 0.8 | less than 1 | 102 |
Swain County, NC | Lower | 10 of 12 | 39% | 0.4 | 8 | 105 |
Buncombe County, NC | Lower | 9 of 12 | 36% | 1.0 | 7 | 97 |
Haywood County, NC | Lower | 9 of 12 | 39% | 0.5 | 2 | 119 |
Henderson County, NC | Lower | 9 of 12 | 37% | 1.4 | 10 | 91 |
Macon County, NC | Lower | 8 of 12 | 39% | 0.7 | 9 | 102 |
Alleghany County, NC | No consistent tier | — | 40% | 0.7 | 12 | 97 |
Ashe County, NC | No consistent tier | — | 40% | 0.8 | 1 | 123 |
Avery County, NC | No consistent tier | — | 40% | 0.8 | less than 1 | 107 |
Polk County, NC | No consistent tier | — | 38% | 1.6 | 33 | 49 |
Rutherford County, NC | No consistent tier | — | 40% | 1.7 | 45 | 89 |
Transylvania County, NC | No consistent tier | — | 40% | 1.4 | 7 | 111 |
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 |
|---|---|---|---|
Alleghany County, NC | 12 | 97 | 1 station |
Ashe County, NC | 1 | 123 | 2 stations |
Avery County, NC | less than 1 | 107 | 1 station |
Buncombe County, NC | 7 | 97 | 8 stations |
Burke County, NC | 35 | 88 | 1 station |
Caldwell County, NC | 36 | 88 | 1 station |
Cherokee County, NC | 21 | 100 | 2 stations |
Clay County, NC | 3 | 100 | 1 station |
Graham County, NC | 8 | 87 | 1 station |
Haywood County, NC | 2 | 119 | 2 stations |
Henderson County, NC | 10 | 91 | 3 stations |
Jackson County, NC | 13 | 98 | 1 station |
Macon County, NC | 9 | 102 | 2 stations |
Madison County, NC | 13 | 114 | 1 station |
McDowell County, NC | 21 | 102 | 2 stations |
Mitchell County, NC | 2 | 115 | 1 station, nearby county |
Polk County, NC | 33 | 49 | 1 station |
Rutherford County, NC | 45 | 89 | 2 stations |
Swain County, NC | 8 | 105 | 2 stations |
Transylvania County, NC | 7 | 111 | 2 stations |
Watauga County, NC | less than 1 | 102 | 2 stations |
Wilkes County, NC | 32 | 98 | 2 stations |
Yancey County, NC | 2 | 98 | 2 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.