Research by DoINeedAPermit Research Team · Updated May 2026
The Short Answer
A full roof replacement, tear-off, or material change requires a permit from the City of Duluth Building Department. Repair-only work under 25% of roof area may be exempt, but many projects that homeowners think are repairs are actually classified as replacements and require permitting.
Duluth enforces Georgia State Building Code (currently IBC 2021 cycle) and IRC R907 reroofing standards, which means any tear-off-and-replace, overlay over an existing layer (if one layer already exists), or material swap (shingles to metal, for instance) requires a permit. Unlike some metro Atlanta suburbs that have recently streamlined reroofing to over-the-counter approval, Duluth Building Department still routes most roof work through plan review due to the city's focus on deck-condition verification — the Piedmont clay-soil settlement patterns in north Fulton County mean that older homes built before 1990 sometimes have deck rot or undersized framing that comes to light during a tearoff. This means your contractor's permit application includes photos of the exposed deck, nailing pattern specs, and underlayment/ice-and-water-shield placement before you can start. The fee is typically $150–$350 depending on roof size (charged per square or flat-rate), and the process takes 1–2 weeks rather than the 1–3 days you might see in neighboring Brookhaven or Johns Creek.

What happens if you skip the permit (and you needed one)

Duluth roof replacement permits — the key details

Duluth Building Department requires a permit for any roof replacement or reroofing project that involves a tear-off, an overlay onto an existing layer, or a material change (IRC R907.4). The distinction matters: patching a few shingles or re-nailing loose flashing is repair and exempt; replacing 30% of the roof or re-covering the entire roof is replacement and requires permitting. Georgia Code § 43-41 allows owner-builders to pull permits on their own residence, so you can file the application yourself if you're doing the work, or your roofing contractor can file on your behalf with a signed authorization. The permit triggers two city inspections: one after the old roof is torn off and the deck is exposed (Building Department will look for rot, structural damage, proper nailing of remaining rafters, and confirm roof pitch and size), and a second final inspection after the new covering is installed to verify fastening pattern, underlayment placement, flashing seal, and ice-and-water-shield coverage per IRC R905 and R908.

Duluth sits in Climate Zone 3A (warm-humid per IECC), which means ice-and-water-shield must extend from the eaves back at least 24 inches per IRC R905.1.1, or per manufacturer spec if wider. This is routinely missed in DIY applications and is the #1 reason Duluth Building Department issues correction notices on initial submittals. Additionally, if your home is in a flood zone (check FEMA flood map for your address), additional underlayment and drainage requirements kick in per the Georgia Amendments to the IBC, and you will need a flood-elevation certificate if work exceeds 25% of floor area (a roof replacement alone does not trigger this, but it's worth knowing if you're bundling work). Duluth does not have a local overlay district for reroofing (unlike historic zones in Brookhaven, which restrict color and material), so material and color choice is yours — but if your subdivision has deed restrictions, those supersede the building code and may require HOA approval before you pull the city permit.

The permit fee for a roof replacement in Duluth is typically $150–$350, calculated either as a flat rate ($200) or as a percentage of project valuation (1.5–2% for a $10,000–$20,000 roof job). The City of Duluth Building Department website does not publish a per-square rate online, so call ahead or email to confirm for your roof size. Processing time is 5–10 business days for a standard like-for-like shingle replacement; if you're changing material (asphalt to metal, for example), plan for 2–3 weeks because the Building Department will want to see structural calculations if the new material is significantly heavier (metal is lighter, but tile or slate adds 5–8 lbs/sq ft and may require rafter reinforcement). Owner-builders typically receive faster turnaround than general contractors because the Building Department processes residential-owner applications on a shorter timeline.

One critical Duluth-specific item: the city requires that all reroofing contractors be licensed as Class A or Class B general contractors under Georgia law (GA Reg. § 110-7-2) OR hold a specific roofing contractor license. Verify your roofer's license on the Georgia Secretary of State website before signing a contract — unlicensed roofers cannot legally pull a permit, and the city will reject the application. If you are owner-building, you cannot subcontract the reroofing to an unlicensed roofer; you would be classified as the licensee and liable. Deck nailing patterns must meet IRC R905.2.5 (e.g., 6 nails per 10-inch-wide shingle, or per manufacturer spec if different), and the Building Department inspector will verify this on the in-progress inspection — plan for the crew to leave the roof partially uncovered for 1–2 days while you wait for the inspection.

Finally, if your home is over 20 years old and the existing roof has 2+ layers of shingles, IRC R907.4 mandates complete tear-off down to the deck — you cannot overlay a third layer. Duluth Building Department will catch this during the deck-exposure inspection, and if the contractor has not complied, the project is halted until removal is complete. Budget $1,500–$3,000 extra for disposal of old shingles (1–2 tons for a typical 2,000 sq ft roof). Some roofers try to 'hide' multiple layers by removing only the visible top layer; this is a code violation and will result in failure of the final inspection and potential stop-work orders.

Three Duluth roof replacement scenarios

Scenario A
Single-layer asphalt shingle roof, full replacement, like-for-like (typical residential home in Duluth subdivision)
You have a 20-year-old Cape Cod with a single layer of architectural shingles, no structural issues visible, and you want to replace with the same shingle type and color (or similar). The roof measures approximately 1,800 sq ft (about 18 squares). Your roofing contractor pulls a permit with the City of Duluth Building Department, submitting photos of the roof, dimensions, proposed shingle spec (brand, color, UL rating), underlayment type (synthetic or felt — Duluth Building Department prefers synthetic for longevity in the humidity), and nailing pattern. Permit fee is approximately $200–$250. Contractor schedules the tear-off for a Monday; by Tuesday morning, the city's roofing inspector shows up to verify that the deck is sound, nails are properly spaced (6 per 10-inch shingle per IRC R905.2.5), and roof pitch is adequate for the shingle type. Work resumes; by Thursday, new shingles are on, flashing is sealed, and ice-and-water-shield is run back 24 inches from the eaves (24 inches is the minimum for Climate Zone 3A, but the contractor uses 36 inches for extra protection in the humid Georgia climate). Friday, the final inspection clears the roof, and you receive a Certificate of Occupancy for the work. Total timeline: 1 week from permit to finish. Cost: $12,000–$16,000 for materials and labor; $200–$250 in permit fees.
Permit required | $200–$250 permit fee | 1–2 week turnaround | 2 inspections (deck-exposure and final) | No structural work needed | Synthetic underlayment recommended | Ice-and-water-shield 24–36 inches from eaves required
Scenario B
Material change from asphalt shingles to standing-seam metal roof (higher-end home or historic neighborhood)
Your home is a restored brick colonial in Duluth's Parkside area (not a historic district, but a high-value neighborhood), and you want to upgrade from worn asphalt shingles to a premium standing-seam metal roof for durability and appearance. Metal roofing is significantly lighter than asphalt (approximately 1–2 lbs/sq ft vs. 2–3 lbs/sq ft for asphalt), so structural reinforcement is not required. However, the material change means the City of Duluth Building Department will require a revised permit application that specifies the metal roof system (brand, profile, fastening method, warranty), and if your roofing contractor is unfamiliar with metal fastening, the city may require an in-progress inspection after flashing and closure strips are installed but before sealing. The city's building inspector will verify that the metal roof is installed per the manufacturer's fastening pattern (typically 12–16 inches on-center per standing-seam spec), that all penetrations (vents, chimney, etc.) are flashed correctly with metal-compatible sealant, and that the underlayment underneath is appropriate for metal (typically synthetic, not felt, because felt can trap moisture). Plan for 2–3 weeks of permit review time because this is not a standard like-for-like replacement. Fee is typically $250–$350 depending on the city's valuation of the metal roof (they often charge a higher percentage for premium materials). Once approved, the tear-off and installation timeline is 3–5 days (metal is faster to install than shingles), but the city's inspection schedule means you may wait 2–3 days for the in-progress inspection. Total job cost: $18,000–$28,000 for metal roofing; $250–$350 in permit fees.
Permit required | Material change increases review time to 2–3 weeks | $250–$350 permit fee | Fastening pattern verification during in-progress inspection | Metal roof lighter than asphalt, no structural upgrade needed | Synthetic underlayment required | Total project cost $18,000–$28,000
Scenario C
Partial roof repair on sloped rear section (under 25% of total roof area, multiple existing layers detected)
Your ranch-style home has a sloped rear addition that is 8 years old, and storm damage has blown off shingles on about 200 sq ft of the 2,200 sq ft total roof (roughly 9% of total area). Initially, this seems like a repair (under 25%), which would be exempt. However, when the roofer removes a few shingles to assess the damage, you discover there are already 2 layers of shingles underneath. Per IRC R907.4, if you have 2 or more existing layers, a complete tear-off to the deck is mandatory — you cannot overlay or patch over layers. This means your 9% partial repair now triggers a full-roof-permit requirement because removing those damaged shingles will expose the multiple layers, and code compliance demands you tear off all layers. You now need a permit for a full tear-off-and-replace, not a repair. This is a common surprise in older Duluth homes built before 1990. Permit fee jumps to $200–$300, and your timeline extends to 1–2 weeks for plan review plus 2 inspections. Your contractor will also contact the city before submitting because the permit category has changed, and the city wants to confirm that a tear-off is economically justified (sometimes they will allow a repair variance if the homeowner accepts the liability of the multiple layers in writing, but this is rare and still requires a permit). Total cost: $11,000–$15,000 for full tear-off-and-replace (cheaper than the metal roof scenario, but more than the initial 9% partial repair would have been).
Permit required due to IRC R907.4 multi-layer mandate | Inspection during tear-off is mandatory | $200–$300 permit fee | Multiple layers found = full replacement classification | Repair initially, replacement upon inspection | Plan for 1–2 week delay if layers detected | Total $11,000–$15,000

Every project is different.

Get your exact answer →
Takes 60 seconds · Personalized to your address

Why Duluth requires deck inspection and plan review (and why this differs from some Atlanta suburbs)

Duluth's Piedmont location sits on Cecil clay soil (heavily weathered, naturally acidic, prone to settlement), which means older homes built pre-1995 often have wood-frame decks that have experienced micro-movement or moisture infiltration. When a roof is torn off for replacement, the city's inspector is looking not just at the new shingles but at the deck condition underneath — soft spots, nailing failures, water stains, and structural rot are discovered during tear-off and must be corrected before the new roof goes on. This is different from neighboring Brookhaven or Johns Creek, which have more streamlined over-the-counter roofing approvals because they assume newer construction and lower rot risk. Duluth's older stock (homes from the 1970s–1990s) justifies the extra inspection step.

Plan review in Duluth focuses on three items: (1) Is the existing roof structure capable of supporting the new covering (weight and fastening), (2) Are the proposed underlayment and ice-and-water-shield specifications compliant with IRC R905 for Climate Zone 3A, and (3) Has the contractor provided proof of licensure (Georgia contractor license or roofing license). For a standard asphalt shingle over asphalt shingle, this review takes 3–5 business days. For a material change (metal, tile, slate), structural calculations may be required (especially for tile, which is heavier), extending review to 10–14 days. The city also cross-checks against any existing code violations or open permit history on the property — if you have an unpermitted addition or other code issue flagged, the Building Department may condition your roof permit on resolution of those issues first.

One nuance: Duluth does not charge a plan-review fee separate from the permit fee (unlike some jurisdictions that tack on 20–30% for review). The permit fee of $200–$350 includes the review. However, if the city issues a correction notice (e.g., underlayment spec missing, fastening pattern incorrect), a revised submittal is required, and some roofing contractors will charge you a re-submit fee ($100–$200) to redraw plans and re-file. Budget this into your timeline and cost if the city has questions.

Ice-and-water-shield, Climate Zone 3A humidity, and why Duluth inspectors emphasize placement

Duluth is in IECC Climate Zone 3A (warm-humid), which per IRC R905.1.1 requires ice-and-water-shield (or equivalent self-adhering peel-and-stick membrane) to be installed from the eave edge up the roof slope at a minimum distance of 24 inches measured from the inside face of the exterior wall. The purpose is to catch moisture that penetrates shingles or underlayment and prevent it from draining into the wall cavity or attic. In humid climates like Georgia, moisture gets trapped during summer afternoon thunderstorms and can linger for days, making this membrane critical. Many DIY and even some contractor-installed roofs fail Duluth's final inspection because the ice-and-water-shield is only 12–18 inches from the eave (a common shortcut), or it is omitted on valleys and roof penetrations where it should be extended. The Building Department inspector will measure and test the membrane with a moisture meter if any damp spots are visible on the underside.

Pro-tip from Duluth Building Department FAQ: use synthetic (polypropylene or polyester) ice-and-water-shield rather than traditional asphalt-impregnated felt. Synthetic breathes slightly, allowing trapped moisture to escape, while asphalt felt is vapor-closed and can trap moisture in the deck. In the Piedmont's humid environment, synthetic wins. Also, if you're installing metal roofing, note that metal conducts heat faster than asphalt, which means condensation is more likely on the underside of the panel in spring and fall. The ice-and-water-shield becomes even more critical — many metal roof failures in Duluth have been traced to inadequate ice-and-water-shield coverage, not metal failure.

The city recommends (though does not mandate) extending ice-and-water-shield 36 inches from the eave rather than the minimum 24 inches, especially if your home is near a tree line or in a low spot where wind-driven rain is likely. This is an area where the Duluth inspector will comment favorably on compliance-plus applications, and it reduces callbacks or warranty claims later.

City of Duluth Building Department
Duluth City Hall, Duluth, GA (call for Building Department hours and location)
Phone: (770) 622-3700 or contact via city website | https://www.ci.duluth.ga.us/ (check website for online permit portal or e-permitting link)
Monday–Friday, 8:00 AM–5:00 PM (verify roofing permit hours when calling)

Common questions

Do I need a permit if I'm just replacing a few missing shingles?

No. Repair work — including patching a few missing shingles, re-nailing loose shingles, or replacing a small section damaged by storm — does not require a permit as long as the work is under approximately 25% of the roof area. However, if you discover 2+ existing layers of shingles underneath, code requires you to tear off all layers, which converts your repair into a full replacement and requires a permit. Always have your contractor peek underneath before assuming a patch job is permit-exempt.

Can I pull the roof permit myself, or does my contractor have to do it?

You can pull the permit yourself if you are the owner-builder (Georgia Code § 43-41 allows this on your primary residence). However, most homeowners authorize their roofing contractor to pull and file the permit on their behalf using a signed letter of authorization. The contractor is responsible for plan submittals and inspection scheduling. Either way, you are the responsible party if work does not comply with code.

How long does the permit review take in Duluth?

For a standard like-for-like asphalt shingle replacement, 3–5 business days. For a material change (metal, tile, slate), or if the city issues a correction notice, plan for 10–14 days. Once approved, the contractor can begin work immediately; inspections are scheduled separately (1–2 days for the deck-exposure inspection, then 1–2 days for the final inspection after installation).

What is the permit fee, and how is it calculated?

Duluth charges $150–$350 depending on roof size and material. Most residential roofs fall in the $200–$300 range. The fee may be calculated as a flat rate or as a percentage of project valuation (1.5–2%). Call the Building Department at (770) 622-3700 and provide your roof square footage to get an exact quote.

Does my HOA's approval count as the city permit, or do I need both?

You need both. HOA architectural or design review is separate from the City of Duluth building permit. The building permit ensures code compliance; HOA approval ensures design consistency with the community. If your subdivision has deed restrictions on roof materials or color, get HOA sign-off before pulling the city permit — the city will not approve a roof change that violates HOA restrictions (they are private covenant matters).

I found 3 layers of shingles on my roof. Can I add a 4th layer instead of tearing off?

No. IRC R907.4 prohibits more than 2 layers total on a sloped roof, and if you already have 2 or more, a complete tear-off to the deck is mandatory. You cannot overlay a third or fourth layer. The city inspector will catch this during the deck-exposure inspection and halt the project if work is not compliant.

Do I need to get a structural engineer's approval if I switch from asphalt shingles to metal roofing?

Not typically. Metal roofing is lighter than asphalt (approximately 1–2 lbs/sq ft vs. 2–3 lbs/sq ft), so no additional structural support is needed. However, if you are switching to tile or slate (which are heavier at 5–8 lbs/sq ft), the city may require a structural calc to confirm that your rafters can support the additional weight. Ask your contractor or the city when submitting the permit.

What happens during the in-progress (deck-exposure) inspection?

The city inspector verifies that the old roof and underlayment are completely removed, that the deck is sound (no rot, soft spots, or inadequate nailing), that the roof pitch is appropriate for the new shingle type, and that the framing is structurally adequate. If rot is found, the contractor must repair or replace the damaged decking before installing the new roof. This inspection delays work by 1–2 days while you wait for the inspector's availability.

Is my roofer required to be licensed in Georgia?

Yes. Georgia requires roofing work to be performed by a licensed contractor (Class A or Class B general contractor license, or a specific roofing contractor license). Verify your roofer's license on the Georgia Secretary of State website (https://sos.ga.gov/cec) before signing a contract. Unlicensed roofers cannot legally pull a permit, and the city will reject any application filed on their behalf.

If I skip the permit and the city finds out, what fines or penalties apply?

Duluth can issue a stop-work order ($500–$1,500 fine), require you to pay double permit fees on the re-pull, demand proof of code compliance (which often means partial tear-down if framing was not inspected), and you will face insurance denial and home-sale disclosure liability. Georgia requires disclosure of unpermitted work on the Residential Property Disclosure Statement, which can kill a sale or trigger title hold-up.

Disclaimer: This guide is based on research conducted in May 2026 using publicly available sources. Always verify current roof replacement permit requirements with the City of Duluth Building Department before starting your project.