Trueline Roofers inspects and re-roofs houses across Dauphin County, where the median home dates to 1947 in Harrisburg and 1976 in Lawnton. Your first visit at the house is free.
Dauphin County holds 127,828 housing units, and 24,398 of them were built in 1939 or earlier, yet the county median year built is 1972. Both halves of that matter. Harrisburg's median is 1947, with 10,425 of its 24,130 homes dating to 1939 or earlier. Lykens, Paxtang and Williamstown sit at 1938. Roofs on houses that old sit over plank decking and framing that has carried a century of snow, and slate turns up on some of them. Lawnton at 1976, Paxtonia at 1975 and Hershey at 1970 raise different questions: layer count and attic ventilation rather than century-old boards.
A Dauphin County winter piles snow on the roof, thaws it, and refreezes it at the eave, which is how ice dams get started. Ice dams and snow load are what people here talk about most. In the humid summers it is mildew, moss and roof algae on the shingles.
Permits here are handled borough by borough rather than at one county counter. Harrisburg and Millersburg both call for a re-roof permit. Millersburg's borough office handles zoning, while building code permits go through Barry Isett & Associates or Building Inspection Underwriters. Highspire has its own Codes/Zoning Department, Steelton has a Codes Department, Paxtang uses its borough office, and Lykens works through Light-Heigel. For a house outside those boroughs, start with the municipality your address falls in before you sign anything.
Each city’s own page gives what is on record for its permit office and code.
| City | Permit for a re-roof | Adopted code | Building official | Building dept. |
|---|---|---|---|---|
| Colonial Park | Not published | UCC (2021 IRC) | — | — |
| Unincorporated Dauphin County | Not published | UCC (2021 IRC) | — | — |
| Elizabethville | Not published | Not published | — | — |
| Enhaut | Not published | UCC (2021 IRC) | — | — |
| Harrisburg | Yes | Not published | — | — |
| Hershey | Not published | UCC (2021 IRC) | — | — |
| Highspire | Not published | Not published | Rachel Vega, Codes & Zoning Officer | 717-939-3303 ext. 1103 |
| Hummelstown | Not published | Not published | — | — |
| Lawnton | Not published | UCC (2021 IRC) | — | — |
| Linglestown | Not published | UCC (2021 IRC) | — | — |
| Lykens | Not published | Not published | — | 800-257-2190 |
| Millersburg | Yes | Not published | — | 717-692-2389 |
| Palmdale | Not published | UCC (2021 IRC) | — | — |
| Paxtang | Not published | Not published | — | 717-564-4770 |
| Paxtonia | Not published | UCC (2021 IRC) | — | — |
| Penbrook | Not published | Not published | — | — |
| Progress | Not published | UCC (2021 IRC) | — | — |
| Steelton | Not published | Not published | Aaron Curry, Codes Director | 717-939-9842 ext. 5019 |
| Williamstown | Not published | Not published | — | — |
Each line is a summary of that town's own page.
Dauphin County has 127,828 homes in the Census count, with a median year built of 1972. 19% were built before 1940, 62% before 1980 and 17% in 2000 or later; the single biggest decade was the years before 1940, with 24,398 homes (19%). 50% of homes are single-family detached houses and 63% of occupied homes are owner-occupied; the count includes 3,368 mobile homes.
A roof's first layer has a service life of about 20 years, according to HUD's Residential Rehabilitation Inspection Guide. On that yardstick, 106,056 homes across Dauphin County (83%) were built before 2000 and have outlived at least one roof, and 61,222 (48%) predate 1970. The 12,176 homes from the 2000s are where first replacements are coming up now.
Across the 18 places we cover here with their own Census figures, Williamstown has the largest share of pre-1940 homes (63%) and Palmdale the largest share of newer ones (30% built in 2000 or later). Harrisburg is the largest, at 24,130 homes, and Palmdale has the highest share of renters (66%), where the roof is more often a landlord's decision.
| Place | Homes | Median built | Before 1940 | 2000 or later | Detached | Owner-occupied |
|---|---|---|---|---|---|---|
| Harrisburg | 24,130 | 1947 | 43% | 6% | 14% | 37% |
| Colonial Park | 7,439 | 1969 | 9% | 10% | 45% | 47% |
| Hershey | 5,982 | 1970 | 10% | 8% | 48% | 54% |
| Progress | 4,828 | 1960 | 15% | 4% | 62% | 57% |
| Linglestown | 2,804 | 1969 | 5% | 9% | 88% | 84% |
| Steelton | 2,629 | 1949 | 39% | 7% | 28% | 48% |
| Hummelstown | 2,308 | 1965 | 17% | 17% | 56% | 54% |
| Lawnton | 1,959 | 1976 | 3% | 2% | 60% | 71% |
| Paxtonia | 1,896 | 1975 | 9% | 8% | 65% | 66% |
| Penbrook | 1,479 | 1952 | 38% | 18% | 31% | 57% |
| Highspire | 1,436 | 1964 | 20% | 10% | 35% | 39% |
| Millersburg | 1,284 | 1953 | 38% | 9% | 50% | 51% |
| Lykens | 970 | 1939 or earlier | 56% | 5% | 60% | 61% |
| Paxtang | 712 | 1939 or earlier | 61% | 0% | 66% | 83% |
| Palmdale | 657 | 1976 | 11% | 30% | 36% | 34% |
| Williamstown | 638 | 1939 or earlier | 63% | 0% | 62% | 63% |
| Elizabethville | 585 | 1951 | 44% | 2% | 70% | 69% |
| Enhaut | 474 | 1950 | 44% | 15% | 84% | 96% |
| Built | Homes | Share | |
|---|---|---|---|
| Before 1940 | 24,398 | 19% | |
| 1940s | 7,361 | 6% | |
| 1950s | 17,726 | 14% | |
| 1960s | 11,737 | 9% | |
| 1970s | 17,659 | 14% | |
| 1980s | 13,015 | 10% | |
| 1990s | 14,160 | 11% | |
| 2000s | 12,176 | 10% | |
| 2010s | 8,057 | 6% | |
| 2020 or later | 1,539 | 1% |
Figures: U.S. Census Bureau, American Community Survey 2020–2024 5-year estimates (tables B25001, B25003, B25024, B25034, B25035). Survey estimates carry margins of error, widest in the smallest places. Census table.
NOAA’s Storm Prediction Center logged 13 reports of hail 1 inch or larger in Dauphin County from 2016 through 2025, on 7 days. 1 was 1.75 inches or larger, and 0 of those reached 2 inches; the largest, 1.75 inches, fell on June 3, 2023. The busiest single day was June 3, 2023, with 6 reports.
| Year | Reports | |
|---|---|---|
| 2016 | 0 | |
| 2017 | 0 | |
| 2018 | 1 | |
| 2019 | 0 | |
| 2020 | 3 | |
| 2021 | 1 | |
| 2022 | 0 | |
| 2023 | 8 | |
| 2024 | 0 | |
| 2025 | 0 |
Counted within 5 miles of each town’s center, Colonial Park has the most reports (6) and Millersburg the fewest (0). Each town’s own page lists its latest dates. Reports come from spotters and the public, so busier places log more of them.
Pennsylvania sets one building code for the whole state, the Uniform Construction Code, but a municipality may adopt standards that equal or exceed it, and the local permit office still decides the permit steps.
Colonial Park, Unincorporated Dauphin County, Elizabethville, Enhaut, Harrisburg, Hershey, Highspire, Hummelstown, Lawnton, Linglestown, Lykens, Millersburg, Palmdale, Paxtang, Paxtonia, Penbrook, Progress, Steelton, Williamstown publish no edition. The statewide code applies there all the same.
Design wind is set by location, not one figure for the whole area, and the building office that issues the permit can tell you the figure for a given address. What each figure does to a roof is in our Harrisburg-Carlisle roofing code guide.
Yes. The county median is 1972, but Lykens, Paxtang and Williamstown are at 1938, and Harrisburg is at 1947. Houses that old need their decking and framing checked before the roof is priced, and the old boards may need work that a 1970s house in Lawnton or Paxtonia would not.
Snow piles on the roof, warmth from the house melts its underside, and the meltwater refreezes at the cold eave. Freeze-thaw cycles repeat that through the winter, so water backs up under the shingles. Attic insulation and ventilation decide how much heat reaches the snow.
Which office issues the permit depends on the city you live in. Across Dauphin County we cover 19 jurisdictions and 5 permit offices on record: the Borough of Highspire Codes/Zoning Department issues them for Highspire and publishes no answer either way; the Borough of Steelton Codes Department issues them for Steelton and publishes no answer either way; Light-Heigel issues them for Lykens and publishes no answer either way; the Millersburg Borough Office issues them for Millersburg and requires a permit for a re-roof; the Paxtang Borough Office issues them for Paxtang and publishes no answer either way; Harrisburg requires a permit for a re-roof; Colonial Park, Unincorporated Dauphin County, Elizabethville, Enhaut, Hershey, Hummelstown, Lawnton, Linglestown and 5 more publish no answer either way. Each city page gives what is on record for its office.
None of the 19 jurisdictions we cover in Dauphin County publishes the code edition it enforces, so ask the building department before work starts.
The Census Bureau's 2020–2024 estimates put the median year built across Dauphin County at 1972, with 19% of its 127,828 homes built before 1940 and 17% in 2000 or later. 83% were built before 2000, and an original roof on one of those homes is worth a close look.
Ask any roofer working in Dauphin County to put the state and local credentials they hold in writing, and check them with the office that issued them before you sign. The roof work itself has to meet Pennsylvania's Uniform Construction Code, which adopts the 2021 International Residential Code (34 Pa. Code 403.21). Permits and inspections run through the municipality that enforces the code, or through a third-party agency or the Department of Labor and Industry where it does not.
2 of the 19 we cover publish a name: Highspire, Steelton. Where a name is published, it is on that city's page with the department's own number.
Town rules from each jurisdiction's own pages, researched 2026-11-09; housing, Census ACS 2020–2024; hail, NOAA Storm Prediction Center. Sources: data.census.gov · www.spc.noaa.gov · www.pacodeandbulletin.gov · www.pacodeandbulletin.gov. Rules and staff change; check with the jurisdiction.
Free inspection, a written scope, and photos you keep either way.
Book my free inspection →