Research by DoINeedAPermit Research Team · Updated May 2026
The Short Answer
A full roof replacement, tear-off, or material change in Oakdale requires a permit. Repairs under 25% of roof area and patching fewer than 10 squares are typically exempt — but Minnesota's three-layer rule and cold-climate flashing requirements make inspection nearly mandatory if you have any doubt about existing conditions.
Oakdale follows Minnesota Building Code (adopted from 2020 IRC with state amendments) and enforces it strictly on reroofing through the City of Oakdale Building Department. The city's critical local enforcement point is the three-layer rule: if your roof has two existing layers, you MUST tear off to bare deck — you cannot overlay. This is checked during permit review and again at deck inspection, and it's the #1 reason for permit denials and stop-work orders on Oakdale jobs. Additionally, Oakdale's climate zone (6A south, 7 north) triggers Minnesota-specific requirements for ice-and-water-shield placement (must extend 24 inches from eaves in most of the city, more in elevated-risk areas) and deck-nailing inspection before covering — requirements not as strictly enforced in neighboring Dakota County cities. The city permits roof work over the counter for like-for-like replacements with a completed-by-contractor affidavit, but you must declare scope and existing conditions honestly upfront. Fees run $150–$350 depending on roof area (typically charged per square foot of roof); the city's online portal is available but many roofers still file in-person at city hall. Owner-occupants can pull the permit themselves, but if you hire a roofing contractor, they almost always pull it.

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

Oakdale roof replacement permits — the key details

Minnesota Building Code (2020 IRC + state amendments) governs roofing in Oakdale, and the three-layer rule is your first gate: per IRC R907.4, if your existing roof has two or more layers, you cannot overlay — you must tear to bare deck. The City of Oakdale Building Department enforces this strictly; inspectors will visually check the existing roof during permit review (photos are often required) and again during the pre-cover inspection. If you misrepresent the number of layers and an inspector finds three during the job, the city issues a stop-work order and you pay double permit fees plus fines. Many homeowners discover they have a hidden layer only after the roofer starts tearing off — and at that point, you're already partially into the job. To avoid this, ask your roofer to do a probe or partial tear-off in a hidden area (attic access or low-slope corner) before you commit to a permit application. If you find three layers, you still need to tear off, but you'll know the cost upfront.

Ice-and-water-shield placement is the second enforcement hotspot in Oakdale's climate zone 6A/7 environment. Minnesota code requires underlayment (typically synthetic or rubberized) to extend at least 24 inches from the eaves in areas subject to ice dams (which is virtually all of Oakdale). Additionally, you must specify fastening pattern on your permit application or the contractor's submittal: typical shingles are 6 fasteners per shingle (or per manufacturer spec), but the inspector will count on at least a few shingles to verify. Flashing detail drawings are required for any valleys, skylights, or wall penetrations — the city will not approve a permit with the notation 'standard flashing' alone. If your roofer is used to working in Dakota County (which has lighter enforcement), they may not bring detailed flashing plans to Oakdale; this can cause delays. Have the roofing contractor provide a one-page flashing detail or diagram showing ice-and-water-shield extent, underlayment type, and fastener count before you sign the permit application.

Material changes (shingles to metal, tile, slate, or wood) always require a permit and often a structural engineer review. If you're upgrading from 3-tab asphalt shingles (60–70 lbs per square) to architectural shingles (80–90 lbs) or metal standing-seam (50–70 lbs), the deck is usually adequate — but the city requires a written statement from the roofer confirming deck adequacy or a structural evaluation if the weight change is significant. Tile, slate, and concrete tile are heavy (500–1,200 lbs per square) and almost always require an engineer's sign-off, especially on older homes with 2x4 or 2x6 rafters. If you're in an older Oakdale neighborhood (built pre-1960), assume a structural review is needed and budget $500–$1,200 for that engineer's report; newer subdivisions (1980+) with trusses may pass without one. Never assume the city will 'just let it through' — the inspector will stop the job if the deck isn't rated for the new material.

Owner-occupants can pull a permit themselves in Oakdale, but most do not because roofing contractors are responsible for code compliance and typically pull it. If you're hiring a roofer, confirm they have pulled the permit and obtained it before they schedule work; some crews start without the permit thinking they'll 'file it later,' which is a common violation. The city requires the permit to be posted on-site during work. If you're re-roofing your own owner-occupied home, you can apply in-person or online (if the city's portal is fully functional — check ahead by calling the Building Department). Your application must declare the scope (full replacement, square footage, existing number of layers, new material), the existing roof condition (photos help), and fastening/underlayment specifications. For a straightforward like-for-like replacement (same shingles, same slope, same square footage), the city often issues permits over the counter within 1–2 days. If there are questions (layer count, material change, flashing detail), expect 3–5 business days for review.

Inspection and timeline in Oakdale typically follow this sequence: (1) Permit issuance (1–2 days over-the-counter, 3–5 days with review). (2) Pre-tear-off inspection (optional but recommended — inspector confirms layer count and deck condition before work begins; schedule this with the city). (3) Deck inspection after tear-off but before underlayment is installed (this is mandatory and must be scheduled in advance; inspectors want to see deck nails, any damage, and ice-and-water-shield location staked out). (4) Final inspection after roofing is complete, flashing is sealed, and gutters are in place. The deck inspection is the bottleneck: if the city is busy, you may wait 3–7 days for an inspection slot, so schedule this as soon as tear-off is done. Total permit-to-sign-off timeline is typically 2–4 weeks. If you're doing work in winter (November–March), expect inspections to be slower and weather delays to add time. The Building Department is open Monday–Friday, 8 AM–5 PM (verify current hours by phone).

Three Oakdale roof replacement scenarios

Scenario A
Like-for-like tear-off replacement, 2,000 sq ft home, existing single layer of asphalt shingles, no material change — typical Oakdale 1980s rambler
You're replacing 20 squares of 3-tab asphalt shingles with the same product (Timberline or equivalent, 60-lb weight). Your roofer confirms one layer during the bid walk, so no three-layer issue. You hire the roofer to pull the permit; they submit a standard permit application with photos of the existing roof, a one-page flashing detail (showing 24-inch ice-and-water-shield from eaves, standard valley flashing, and 6 fasteners per shingle), and the roofing contractor's current license and insurance. The city issues the permit over the counter in 1 day; permit fee is $250 (based on $12.50 per square foot of roof area). The roofer schedules tear-off for the following week. Before they tear off, you call the Building Department and request a pre-tear-off inspection (optional, but smart if you have any doubt about hidden layers). The inspector arrives, briefly confirms one layer, signs off. Tear-off happens Monday–Wednesday. Thursday morning, the roofer calls for deck inspection; the inspector visits, counts nails (verifies 2-inch centers on rafter tails), approves the ice-and-water-shield layout, and clears the job to cover. New shingles are installed Friday–Monday. Final inspection Tuesday morning: inspector visually confirms shingle nailing pattern, flashing detail at valleys and eaves, gutter installation, and roof perimeter. Permit is signed off same day. Total cost: $250 permit fee, $6,500–$9,000 for labor and materials (depending on waste and penetrations). Timeline: 10–14 days from permit to final sign-off. No surprises, no delays.
Permit fee $250 | Over-the-counter approval (1 day) | Single-layer tear-off | Standard asphalt shingles | Ice-and-water shield 24 in. from eaves | Two inspections (deck + final) | Total project cost $6,750–$9,250
Scenario B
Material upgrade to metal standing-seam roof, same tear-off, pre-1960 brick colonial, structural deck evaluation required
You want to upgrade to metal standing-seam roofing (50–70 lbs per square, modern look, 50-year lifespan). Your home was built in 1952 with 2x6 rafters on 24-inch centers and collar-tied trusses. The roofer correctly flags this as a material-change scenario requiring structural review. Before pulling the permit, you hire a local structural engineer ($600–$1,000 for a single-visit evaluation). The engineer visits, measures rafter depth and spacing, confirms adequate nailing and collar-tie placement, and issues a one-page letter stating the deck is adequate for metal roofing (weight = 60 lbs per square, live load rating acceptable). The roofer includes this engineer letter with the permit application, plus a detailed drawing showing metal panel profile, fastener locations, underlayment type (typically synthetic non-woven), and flashing details at eaves, valleys, and wall penetrations (metal requires special flashing — can't use standard shingle flashing). The city requires full review due to material change (not over-the-counter). Building Department spends 4 days reviewing the structural letter and flashing details, then issues the permit with a condition: 'Structural engineer's approval letter must be on-site during work; inspector will visually verify deck compliance before covering.' Permit fee is $320 (higher due to material change and structural review). Tear-off reveals two existing layers of asphalt (the roofer missed this in the initial bid); three-layer rule is triggered, requiring full tear-off (which was the plan anyway). Pre-tear-off inspection confirms two layers, approves tear-off scope. Deck inspection after tear-off: inspector examines rafter nailing, collar ties, and any rot; a few areas of minor rot are found on the southwest side (water intrusion from old flashing). Roofer patches the rotten wood, and the engineer approves the repair via a follow-up phone call. Underlayment and metal installation proceed. Final inspection confirms panel fastening, flashing detail at eaves (ice-and-water-shield under metal underlayment), and sealant at wall penetrations. Permit signed off 18 days after issuance. Total cost: $250 engineer review, $320 permit fee, $12,000–$16,000 for metal installation (pricier than shingles, but 50-year lifespan). Timeline: 20–25 days due to structural review and deck prep. Key lesson: material changes and older homes trigger structural review in Oakdale — budget time and money accordingly.
Structural engineer review $600–$1,000 | Permit fee $320 | Full review (4 days) | Material change to metal | Two-layer tear-off | Deck repair (rot patching) | Three inspections (pre-tear-off, deck, final) | Total project cost $13,170–$17,320
Scenario C
Partial roof repair, 15% of roof area (hail damage to south slope, 3 squares), existing two layers detected, no permit pulled
A hail storm damages 300 sq ft of your roof (3 squares on the south slope). Your homeowner's insurance adjuster approves the claim for $2,000 in repairs. A local roofer gives you a quote: 'We can patch it — just replace the damaged shingles and underlayment, no tear-off, $1,800 all-in.' You accept the quote and the roofer starts work without pulling a permit (common mistake). During the repair, the roofer discovers that beneath the surface shingles is a second layer of old shingles (not visible from the ground). At this point, the roofer is legally required to stop and pull a permit, because patching three layers violates IRC R907.4. If the roofer pushes forward and covers the third layer without a permit, the work is unpermitted and you're liable. Alternatively, if the roofer does the right thing and stops, you're now facing a full tear-off (not a $1,800 patch) to comply with code. A full tear-off of the south slope (about 1,200 sq ft, including adjacent areas for nailing pattern) costs $4,500–$6,000. You pull a permit for the full tear-off; the city issues it within 2 days. Deck inspection happens the next week; inspector clears the work. Final inspection after re-roofing. Permit fee: $180 (based on the adjusted scope). Insurance covers $2,000; you're out-of-pocket $2,500–$4,000 for the expanded scope. If the roofer HAD pulled a permit upfront for the 15% repair (even though it seemed exempt), the inspector would have caught the two-layer condition and triggered the tear-off requirement before work began, saving time and stress. Total cost: $180 permit fee (on the expanded scope), $4,500–$6,000 for materials and labor, plus $2,500 out-of-pocket overage. Timeline: 10–14 days once you decide on the full tear-off, but 3–4 days wasted if the roofer starts without a permit. Key lesson: any time you're unsure about existing layer count, pull a permit upfront or request a pre-work inspection (free) — it protects you and catches the three-layer rule early.
Initial repair quote $1,800 (no permit) | Two layers discovered during work | Full tear-off required | Permit fee $180 (adjusted scope) | Insurance covers $2,000 | Out-of-pocket overage $2,500–$4,000 | Single deck inspection | Timeline 10–14 days | Lesson: permit upfront avoids surprises

Every project is different.

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

Minnesota's three-layer rule and why Oakdale enforces it strictly

IRC R907.4 prohibits adding a new roof layer if two or more existing layers are present; instead, you must remove all old layers down to the deck. Minnesota Building Code adopts this rule verbatim, and Oakdale inspectors treat it as a show-stopper. The reason: multiple layers trap heat and moisture, shorten shingle lifespan (especially in Minnesota's freeze-thaw cycles), hide deck damage, and violate fire code in some interpretations. Oakdale's climate (48–60 inch frost depth, frequent ice dams) makes this rule even more critical because trapped moisture in multiple layers can lead to roof rot and structural failure over time.

Many homeowners don't know if they have one, two, or three layers until the roofer starts tearing off. Some homes built in the 1970s and 1980s have two original layers; a second layer added in the 1990s or 2000s often gets missed in a casual inspection. The city's standard practice is to ask the roofer or applicant 'how many layers are currently on the roof' — and if you guess wrong or the roofer underestimates, you'll hit the three-layer rule mid-project. To protect yourself, request a destructive probe: the roofer cuts a small hole (12x12 inches) in a hidden area (like the north slope or above the garage) and photographs the layer count. Cost: $200–$400, but it prevents a $3,000–$5,000 surprise mid-job.

Once three layers are discovered, the city has no discretion — tear-off is mandatory. You cannot ask for a variance or exception; the inspector will not sign off on a covered third layer. If you ignore the rule and cover it anyway, the home becomes non-compliant with Minnesota code, title is clouded, and refinancing or resale becomes impossible. The city can issue a retroactive stop-work order and demand removal, even years later if the roof fails and an inspector investigates.

Oakdale's ice-and-water-shield requirement and cold-climate flashing in practice

Minnesota climate zone 6A (most of Oakdale) experiences freeze-thaw cycles, ice dams, and wind-driven rain — conditions that demand ice-and-water-shield (a rubberized adhesive underlayment) to extend 24 inches from the eaves along all roof edges, plus the full length of any valley. IRC R908.1 and Minnesota amendments specify this. Oakdale inspectors verify the ice-and-water-shield layout during the deck inspection (after tear-off but before shingles are installed) by visually checking the material is in place and staked or marked at the 24-inch line. If the roofer has installed it only 12 inches from the eaves (a common contractor shortcut in milder climates), the inspector will mark it for correction and re-inspect after adjustment.

The practical challenge: ice-and-water-shield costs $0.50–$1.00 per square foot installed, so extending it 24 inches across a 2,000 sq ft roof adds $400–$800 to the job compared to a 12-inch application. Some roofers absorb this cost; others pass it to the homeowner. The permit application (if you're the applicant) or the contractor's submittal (if the roofer pulls the permit) must clearly state 'ice-and-water-shield extended 24 inches from all eaves and full length of valleys.' If the plan or submittal doesn't specify this, the city may approve the permit conditionally or ask for clarification before issuing.

In northern Oakdale (climate zone 7), the requirement may extend to 36 inches in some cases, especially on low-slope roofs or in snow-load areas. Verify with the Building Department at permit time. Additionally, valleys require special attention: if you're replacing half your roof (just one slope), Oakdale requires the roofer to extend ice-and-water-shield across the valley junction to tie into the existing roof. Flashing details showing valley overlap and fastening must be included in the permit application or contractor submittal. This is another common rejection point if flashing details are missing or vague.

City of Oakdale Building Department
Oakdale City Hall, Oakdale, MN 55128 (call to confirm building permit office address and hours)
Phone: (651) 730-2700 or local building permit line (verify current number) | Oakdale online permit portal: https://www.oakdalemn.gov/ (navigate to 'Permits' or 'Building Services' — check if fully operational for roofing permits)
Monday–Friday, 8:00 AM–5:00 PM (call to confirm current hours and any closures)

Common questions

Do I need a permit if I'm just replacing damaged shingles on one slope?

If the repair is under 25% of the total roof area (roughly 5 squares or fewer on a 20-square roof), you typically don't need a permit for patching — provided there's only one existing layer. However, if you discover a second layer during patching, you immediately must stop and pull a permit for a full tear-off. To be safe, request a pre-work inspection from the Building Department (usually free) before starting any repair, or ask your roofer to probe for hidden layers. If it's more than 5 squares or involves flashing replacement, pull a permit upfront to avoid surprises.

Can my roofer just overlay new shingles on top of the old ones?

Only if there is exactly one existing layer. If your roof has two or more layers, overlaying is forbidden by IRC R907.4 and Minnesota code — you must tear off to bare deck. Many homes in Oakdale built in the 1970s–1990s have two layers, and overlaying them without tearing off will fail inspection and result in a stop-work order. Always confirm the layer count (via roofer probe or pre-work inspection) before agreeing to an overlay job.

How much does a roof replacement permit cost in Oakdale?

Permit fees typically range $150–$350 depending on roof area and scope. For a standard 2,000 sq ft home (about 20 squares), expect $200–$300. Material changes (shingles to metal, tile, etc.) may incur an additional review fee or engineer requirement, raising the total to $300–$500. Structural evaluations (if required for material change or deck repair) are separate and cost $600–$1,200. Contact the Building Department for the exact fee schedule — they calculate fees based on roof square footage, so they'll give you a precise quote once you provide measurements.

Do I need an engineer's approval if I'm switching to metal roofing?

Yes, if your home is more than 40 years old or if the rafter size is uncertain, a structural engineer review is typically required. Metal roofing (standing-seam, metal shingles) weighs 50–70 lbs per square, while asphalt shingles are 60–90 lbs, so weight is similar — but the inspector wants written confirmation from an engineer that your deck is adequate. For modern homes (1980+) with standard trusses, the roofer may be able to sign off on deck adequacy in writing without an engineer; ask the roofer and the Building Department at permit time. Budget $600–$1,200 for an engineer letter if required.

What happens during the deck inspection, and how long does it take to schedule?

After tear-off is complete but before underlayment is installed, the city inspector visits to verify deck condition (checking for rot, proper nailing, and roof framing integrity), confirm ice-and-water-shield is staked at the 24-inch line, and approve the overall scope. This inspection is mandatory and usually takes 30 minutes to 1 hour. Scheduling can take 3–7 business days depending on the city's workload, so call the Building Department immediately after tear-off is complete. If the inspector finds rot, deck repair or reinforcement may be required before the job can proceed to covering — this can add 2–4 days and $500–$2,000 in materials and labor.

Can I pull a roof replacement permit myself if I'm the owner-occupant?

Yes, owner-occupants are allowed to pull permits for their own homes in Oakdale. You'll need to complete a permit application, provide photos of the existing roof, specify the new material and fastening details, and include underlayment and flashing specifications. Most homeowners hire a roofing contractor to pull the permit because contractors know the local requirements and can submit flashing details and material specs immediately. If you pull it yourself, allow 3–5 business days for review and approval. The permit must be posted on-site during work; the city may stop the job if the permit is not visible.

What if the roofer discovers a third layer after they've started tear-off?

Work must stop immediately. The roofer is required by code to notify the Building Department and pull a permit for the expanded (full tear-off) scope. You'll get a stop-work notice if the city is involved, but the alternative is worse: if the roofer covers a third layer without a permit, the roof is non-code-compliant and you cannot sell or refinance the home. Always request a pre-tear-off inspection or roofer probe to catch hidden layers before work begins. If a third layer is discovered, a full tear-off is required — there is no exemption or variance.

Is my roof repair or replacement covered if I didn't pull a permit?

Insurance may deny a claim or delay payment if they discover unpermitted roof work, especially if deck damage or leaks occur after the repair. Many insurers require proof of permit and inspection sign-off for major roofing work. If you suspect you're dealing with unpermitted work, contact your insurance agent immediately and ask about their permit requirements before submitting a claim. For new work, always pull the permit first — it protects your claim and your home's resale value.

How long does a typical roof replacement take from permit to final sign-off in Oakdale?

For a straightforward like-for-like replacement with a single existing layer, expect 2–4 weeks total: 1–2 days to receive the permit, 3–7 days to schedule the deck inspection after tear-off, 3–5 days for re-roofing and flashing, and 1–2 days for final inspection and sign-off. Material changes, structural reviews, or deck repairs add 5–10 days. If you're working in winter (November–March), add another week or two due to weather delays and inspection scheduling. Start planning your roofing project 4–6 weeks in advance to allow time for permit review and inspector scheduling.

What's the difference between synthetic underlayment and felt underlayment in Oakdale?

Minnesota code (and Oakdale) does not mandate one over the other; both are acceptable. Felt (traditional tar-impregnated paper, 30-lb or 50-lb) is cheaper ($0.15–$0.25 per sq ft installed) but tears easily and wears faster in Minnesota's UV and freeze-thaw cycles. Synthetic (non-woven polypropylene, typically 3–5 mil thick) costs $0.35–$0.50 per sq ft installed but resists tearing, lasts longer (10+ years vs. 3–5 years for felt), and performs better in high-wind scenarios. The city's inspector doesn't care which you choose as long as it meets IRC R905 specs and is properly fastened. Most roofers in Oakdale recommend synthetic for longevity, especially combined with 24-inch ice-and-water-shield. Your permit application or contractor submittal must specify which type; you can choose based on budget and contractor recommendation.

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 Oakdale Building Department before starting your project.