Charlotte roofing code requirements catch more homeowners off guard than any other part of a roof project, and the rules around when you need a permit, who pulls it, and what the inspector actually checks have changed enough in recent years that even some contractors get it wrong. Mecklenburg County handles building permits and inspections for Charlotte properties, with the City of Charlotte handling separate zoning and stormwater reviews under the Unified Development Ordinance. For homeowners planning a roof replacement, repair, or insurance claim, understanding the permit and code basics protects your investment, your insurance settlement, and your manufacturer warranty.
Here’s what you’ll learn in this guide:
- When a roofing permit is required: What triggers a permit versus what doesn’t.
- The 6 code requirements that affect your roof: Specific code provisions every homeowner should know.
- Who pulls the permit and what it costs: How the process actually works in practice.

How Roofing Permits Work in Charlotte and Mecklenburg County
Permitting in Charlotte involves two jurisdictions. Building permits and inspections come from Mecklenburg County. Zoning and stormwater reviews come from the City of Charlotte. Both work together through a shared online portal, but they’re separate approvals.
Who Handles Roofing Permits in Charlotte
Mecklenburg County Land Use and Environmental Services Agency (LUESA) Code Enforcement issues building permits for residential and commercial properties throughout the county, including Charlotte. The City of Charlotte separately reviews projects for zoning compliance, stormwater requirements, and urban forestry under the Unified Development Ordinance that took effect June 1, 2023. Permit applications are submitted through Accela Citizen Access, the shared online portal. For verification of current requirements specific to your project, contact Mecklenburg County Code Enforcement directly before work begins.
- Mecklenburg County LUESA: Issues building permits and conducts inspections.
- City of Charlotte Planning, Design and Development: Reviews zoning and UDO compliance.
- Accela Citizen Access: Online portal for permit applications and inspection scheduling.
- Unified Development Ordinance (UDO): Charlotte’s land use code, effective June 1, 2023.
- Verification source: Always confirm requirements with LUESA before starting work.
When a Roofing Permit Is Required
This is the most common question we get from homeowners in Charlotte and surrounding areas. The short answer: permits are required for roofing projects that involve structural work, decking replacement, or projects that meet certain cost thresholds. Simple shingle replacements without structural changes typically don’t require a permit, but the line between “simple” and “structural” can shift based on what we find during tear-off. Roof Medic verifies current requirements with Mecklenburg County for every project we handle.
- Permit typically required: Structural repairs, decking replacement, complete roof system changes.
- Permit typically not required: Like-for-like shingle replacement with no structural changes.
- NC contractor license threshold: Projects $40,000 and over require a licensed NC General Contractor.
- Insurance claim work: Even simple shingle replacement may require a permit when tied to an insurance scope.
- HOA approvals: Separate from county and city permitting, may be required by your neighborhood.
6 Code Requirements That Affect Your Charlotte Roof
The North Carolina Residential Code (currently based on the International Residential Code with North Carolina amendments) governs the technical requirements for residential roofs in Charlotte. The 2024 NC Residential Code became mandatorily effective January 1, 2025, with portions of the broader 2024 NC State Building Code phasing in over time. The six provisions below are the ones that show up most often on residential roof projects.
1. Roof Replacement Rules (IRC Section R908)
IRC Section R908 governs roof replacement and re-cover operations on existing buildings. The provision allows a single layer of new shingles over an existing roof in limited cases, but full tear-off is required where the existing roof is water-soaked, deteriorated, or already has two layers of roof covering. We almost always recommend full tear-off, and most manufacturer warranties require it, but the code provision matters for understanding what’s actually allowed.
- Tear-off required: When existing roof is water-soaked, deteriorated, or has 2+ existing layers.
- Overlay allowed: Limited cases where existing single layer is in good condition.
- Manufacturer warranties: GAF and CertainTeed top-tier warranties typically require tear-off.
- Decking inspection: Must be performed after tear-off, before new roof installs.
- Why we recommend tear-off: Adds weight, hides decking damage, voids warranties when not done.
2. Drip Edge Requirements (IRC Section R905.2.8.5)
IRC Section R905.2.8.5 requires drip edge to be installed at all eaves and gable edges on asphalt shingle roofs. This is a real code requirement that gets skipped on cheap installs all the time. Drip edge is the metal flashing along the roof edges that directs water into the gutter and prevents it from running back under the shingles. Without it, water can wick under the underlayment and rot the fascia board. We install drip edge on every roof we do, every time. It’s code-required and it’s cheap insurance.
- Where required: Eaves and gable rakes on asphalt shingle roofs.
- Material: Metal flashing, typically aluminum, in 8-foot to 10-foot sections.
- Installation: Mechanically fastened, lapped at joints, integrated with underlayment.
- What it does: Directs water into the gutter, protects fascia from water damage.
- Common shortcut: Cheap contractors skip drip edge to save material and labor cost.
3. Underlayment Standards (IRC Section R905)
IRC Section R905 sets minimum underlayment requirements for asphalt shingle roofs. The minimum is 15-pound felt, though synthetic underlayments are widely used in modern installs and offer better performance. North Carolina’s mild winters mean ice barrier requirements that apply in colder climates may not be enforced the same way here, but check current Mecklenburg County interpretations before assuming. Synthetic underlayment is the standard on every Roof Medic install because it outperforms felt in NC’s heat and humidity.
- Minimum code requirement: 15-pound asphalt-saturated felt.
- Synthetic underlayment: Widely used industry standard, exceeds minimum code requirements.
- Ice barrier: Code-required in colder climates, NC application varies by jurisdiction.
- Fastening: Specified by code with required patterns and attachment intervals.
- High-temp synthetic: Required under metal roofs to handle higher temperatures.

4. Wind Resistance (IRC Section R905.2.6)
IRC Section R905.2.6 governs asphalt shingle attachment, including fastener type, pattern, and spacing. Shingles in Charlotte should be installed to handle the wind loads typical for the Charlotte metro area, which the IRC categorizes by basic wind speed zones. Most asphalt shingles in Charlotte are installed with a 6-nail pattern (versus the minimum 4-nail) to meet higher wind ratings. The 6-nail pattern is also required for most manufacturer warranties on enhanced wind coverage.
- Code minimum: 4 nails per shingle in standard wind zones.
- 6-nail pattern: Required for enhanced wind coverage on most manufacturer warranties.
- Fastener requirements: Galvanized roofing nails with minimum penetration into the deck.
- Wind zones: Charlotte falls in a moderate wind zone per IRC mapping.
- Manufacturer specs: Top-tier warranties require specific install patterns beyond code minimums.
5. Ventilation (IRC Section R806)
IRC Section R806 sets attic ventilation requirements at a minimum of 1 square foot of net free ventilation area per 150 square feet of attic floor space, which can be reduced to 1 per 300 with balanced intake and exhaust. Ventilation matters in Charlotte. NC summers push attic temperatures well past 130 degrees, which cooks shingles from below and shortens roof lifespan dramatically. Most older homes in Charlotte don’t meet current ventilation code, and roof replacements are the right time to bring them up.
- Code minimum: 1 sq ft of net free ventilation per 150 sq ft of attic floor.
- Reduced ratio: 1 per 300 allowed with balanced intake and exhaust.
- Intake side: Soffit vents at the eaves.
- Exhaust side: Ridge vents, gable vents, or powered attic fans.
- Charlotte conditions: Hot, humid summers make adequate ventilation critical for shingle lifespan.
6. Decking Requirements (IRC Table R503.2.1.1)
IRC Table R503.2.1.1 sets minimum sheathing thickness and span ratings for roof decks. Most residential roofs in Charlotte use 7/16-inch OSB on rafters spaced 16 to 24 inches on center. Older homes may have plank decking or thinner sheathing that doesn’t meet current code. During a roof replacement, the deck gets inspected after tear-off. Damaged sections must be replaced before the new roof goes down. Sections that don’t meet current span and thickness requirements may need to be replaced or supplemented depending on the inspector’s call.
- Minimum thickness: 7/16-inch OSB or 15/32-inch plywood for standard residential.
- Rafter spacing: 16 to 24 inches on center, affecting required sheathing thickness.
- H-clips: Required on panel edges where edge support isn’t provided by framing.
- Decking inspection: Performed after tear-off, before new roof installation.
- Replacement triggers: Water damage, delamination, soft spots, or thickness below code minimum.

How the Permit Process Actually Works
The permit process in Charlotte and Mecklenburg County is straightforward when handled by a contractor who works in the area regularly. Here’s what actually happens.
Who Pulls the Permit
The contractor pulls the permit in the vast majority of residential roof replacements. This is the right call. The contractor is the licensed responsible party for code compliance, the named license holder, and the entity that interacts with the inspector. Homeowners can technically pull their own permits as “owner-builders,” but doing so makes the homeowner personally responsible for code compliance and any issues that arise from inspections.
- Contractor pulls permit: Standard practice for residential roof projects.
- License holder responsibility: Contractor is the code-compliant responsible party.
- Inspector interaction: Contractor schedules and meets the inspector.
- Owner-builder permits: Available but rarely advisable for homeowners.
- Insurance work: Carrier may require a contractor-pulled permit for claim payment.
Permit Costs and Timeline
Permit fees in Mecklenburg County are set by the county fee schedule based on project scope and value. Most residential roofing permits cost in the low hundreds of dollars and process within a few business days for straightforward jobs. Larger or more complex projects may take longer. Verify current fee schedules with Mecklenburg County Code Enforcement before planning your project.
- Typical residential permit fees: Several hundred dollars depending on project scope.
- Processing time: Often within a few business days for standard residential.
- Inspection scheduling: Through Accela Citizen Access or contractor coordination.
- Required inspections: Vary by scope, typically include final inspection at minimum.
- City of Charlotte fees: Separate for UDO-triggered reviews (zoning, stormwater).
What the Inspector Checks
A roofing inspection in Mecklenburg County typically focuses on code-required elements that affect the structural integrity, watertightness, and ventilation of the roof. Inspectors verify drip edge, flashing, underlayment, ventilation, shingle installation, and any decking work performed during the project. They don’t grade workmanship beyond code compliance, so a passing inspection means the roof meets minimum code, not that it’s a quality install.
- Decking inspection: Soundness, thickness, span compliance, fastener requirements.
- Underlayment: Type, coverage, and fastening per code.
- Drip edge and flashing: Installation at eaves, valleys, and penetrations.
- Shingle installation: Pattern, fastening, and manufacturer-specified details.
- Ventilation: Intake and exhaust components per current code.
What Happens When You Skip the Permit
This part doesn’t get talked about enough. Skipping a required permit creates real problems that don’t show up until later, often when the homeowner is selling the house or filing an insurance claim. Cheap contractors sometimes suggest skipping the permit to save money. Don’t.
Real Risks of Unpermitted Roof Work
- Insurance claim issues: Unpermitted work can void or reduce settlements.
- Warranty problems: Manufacturer warranties often require code-compliant installation.
- Resale complications: Unpermitted work shows up on title searches and home inspections.
- Code enforcement penalties: Fines and required corrections from the county.
- Legal liability: If unpermitted work causes injury or property damage, the homeowner is exposed.
Why a Permit Protects You
A pulled permit creates a paper trail confirming the work was inspected and code-compliant. That documentation protects you on insurance claims, resale, and warranty enforcement. We pull every permit Mecklenburg County requires on every project, and we handle the inspection process so homeowners don’t have to. It’s the right way to do the work.
- Documented compliance: Permit creates a verified paper trail.
- Insurance support: Permitted work supports full claim settlements.
- Warranty preservation: Manufacturer warranties remain valid.
- Resale protection: Buyers and lenders see verified code compliance.
- Peace of mind: You know the work meets minimum legal standards.

Frequently Asked Questions
Do I need a permit to replace my roof in Charlotte?
A permit is generally required for roof replacements in Mecklenburg County when the project involves structural work, decking replacement, or other modifications beyond simple like-for-like shingle replacement. Straightforward shingle-only replacements with no structural changes often don’t require a permit, but always verify with Mecklenburg County Code Enforcement before assuming. Insurance claim work may require a permit regardless of scope.
How much does a Charlotte roofing permit cost?
Mecklenburg County roofing permit fees vary by project scope and value. Most residential roofing permits cost in the low hundreds of dollars. The City of Charlotte may charge separate review fees for UDO-triggered zoning or stormwater reviews. Verify current fee schedules with Mecklenburg County Code Enforcement and the City of Charlotte before planning your project.
Who pulls the permit, the contractor or the homeowner?
The contractor pulls the permit in the vast majority of residential roof replacements in Charlotte. The contractor is the licensed responsible party for code compliance. Homeowners can technically apply as “owner-builders,” but this makes the homeowner personally responsible for inspections and code compliance, which most homeowners are not equipped to handle.
What North Carolina building code applies to my roof?
The North Carolina Residential Code is based on the International Residential Code with North Carolina amendments. The 2024 NC Residential Code became mandatorily effective January 1, 2025. The 2018 NC Residential Code applied through that transition. Always verify which code edition applies to your specific project with Mecklenburg County Code Enforcement.
Will an unpermitted roof void my home insurance?
Unpermitted roof work can affect insurance coverage in several ways. Claim settlements may be reduced or denied if the carrier discovers unpermitted work. Resale issues commonly arise when buyers’ inspections or title searches reveal undocumented work. The risk almost always outweighs the small permit fee that was avoided.
Can I install a metal roof over existing shingles in Charlotte?
IRC Section R908.4 allows installation of metal panel and metal shingle roof coverings over existing wood shake roofs in specific circumstances. Installing metal over existing asphalt shingles is more limited and requires verification with Mecklenburg County for specific project conditions. Manufacturer warranty requirements often dictate tear-off regardless of code allowance.
Why Roof Medic Is the Right Team for Your Charlotte Roof Project
Roof Medic is a GAF Master Elite Contractor and a CertainTeed SELECT ShingleMaster with Wizard certification, which places us in the top 3% of roofers nationwide. We pull every permit Mecklenburg County requires on every project, handle the inspection process, and install every roof to current code minimums and manufacturer requirements. We inspect first and recommend second on every roof we evaluate, and we’ll explain exactly what code requirements apply to your specific project before we start. Our workmanship warranty is 2 years standard and 5 years when homeowners follow our recommended approach, all backed by a veteran-owned team that handles insurance claims start to finish and takes your home as seriously as you do.
Want guidance on permitting requirements for your roof project or want to learn more about how Charlotte and Mecklenburg County rules affect your insurance claim or replacement? Contact Roof Medic today. We work with homeowners throughout Charlotte and surrounding areas, and we’re happy to walk you through what your project requires, what it’ll cost, and how to make sure the work is done right and documented properly. Contractor License #79946.