Research by DoINeedAPermit Research Team · Updated May 2026
The Short Answer
A full roof replacement or any tear-off-and-replace in San Bruno requires a building permit. Like-for-like repairs under 25% of the roof area may be exempt, but material changes, structural work, or overlay situations almost always require a permit.
San Bruno enforces California's standard IRC R907 reroofing rules, but what sets this coastal city apart is its dual exposure to wind-load requirements (Bay Area wind speeds near the coast can trigger enhanced tie-down specs) and the San Mateo County Building Department's specific interpretation of existing-layer limits. Unlike some inland Bay Area cities, San Bruno's proximity to the coast means that reroofing permits are scrutinized for proper underlayment extension and fastening patterns to meet wind resistance — inspectors flag inadequate ice-and-water shield placement even on single-layer tear-offs. Additionally, San Bruno sits in FEMA-mapped flood zones, and the city's plan review can be slow if your property is in an A or AE zone, requiring elevation certification or flood-resistant materials callout on the permit. Most reroofs pull within 1–2 weeks for standard like-for-like asphalt shingle work, but material changes (to metal, tile, or composite) or any hint of a third existing layer will trigger a full structural review, adding 2–4 weeks. The city uses an online portal for permit intake, but plan-review comments are often issued via email, and inspectors require at least 24-hour notice for deck and final inspections.

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

San Bruno roof replacement permits — the key details

San Bruno follows California's Title 24 energy code and the California Building Code (CBC), which adopts IRC R905 and R907 standards. The primary trigger for a permit is any tear-off-and-replace of existing roofing, or any replacement that covers more than 25% of the roof area. Per IRC R907.4, if your roof currently has two existing layers of shingles or other material, a third layer (an overlay without tear-off) is prohibited — you must tear off to one layer minimum. San Bruno Building Department inspectors check this in the field during the pre-work inspection; if they discover a hidden third layer during the job, work stops and you face fines plus forced removal. The city's online permit portal allows you to submit documents electronically, but inspectors often request additional clarification via email, so plan for a 3–7 day back-and-forth before approval is issued.

Material changes always require a permit and structural evaluation. If you're upgrading from asphalt shingles to metal, clay tile, or concrete tile, the Building Department requires a structural engineer's sign-off to confirm the roof deck (trusses, rafters, headers) can support the added weight. Metal roofing adds 50–100 lbs per square (vs. 250–300 for tile); inspectors will ask for a stamped structural assessment if there's any doubt. Underlayment specs are mandatory: San Bruno's coastal location means inspectors enforce strict ice-and-water shield placement per IRC R908.2 — the shield must extend from the eaves up to at least 24 inches inside the building line (or to the interior wall line in conditioned space), even on single-layer tear-offs. Fastening patterns must be called out on the permit application or on a note sheet provided by your roofing contractor; IRC R905.2 specifies nail spacing and type by roof slope and wind speed. For San Bruno's coastal zone, expect 6-inch nail spacing in high-wind areas and explicit fastening schedules on plans.

Exemptions are narrow but real. Repairs to fewer than 10 squares (100 sq. ft. per square = 1,000 sq. ft. max) of existing roof using the same material and not requiring deck work are often permit-exempt under CBC Section 105.2.3. Gutter replacement, flashing repair, or re-sealing without touching the underlying sheathing is also exempt. However, if the repair requires removal of shingles and inspection of the deck (common if you've had a leak), the city often requires a permit because the work triggers a structural inspection. It's safer to assume a permit is needed unless your contractor explicitly confirms exemption status with the city's plan-review staff before starting work. Many San Bruno contractors submit a simple 'Request for Exemption' form to avoid disputes mid-project.

San Bruno's geographic position in a coastal flood zone adds complexity. Properties in FEMA A or AE zones (check the Flood Insurance Rate Map or ask your agent) may require a permit that includes flood-elevation language or a Flood Development Permit from the city's planning staff. If your roof is being replaced as part of a flood-mitigation project (e.g., raising the roof line), the permit review expands to 4–6 weeks. The city also enforces California's Title 24 solar-readiness rules (CBC Section 110.2); if your roof faces south or west and is suitable for solar panels, the permit may include a solar-easement disclosure or attachment point requirement. This rarely blocks a roof permit but can add 1–2 weeks to review if the city's planning staff needs to weigh in.

Contractor vs. owner-builder considerations: California's Business & Professions Code Section 7044 allows owner-builders to pull roofing permits without a license, but many San Bruno contractors insist they pull the permit themselves (they're licensed, and the city issues the permit to them, with you as the property owner). This shifts liability to the contractor if inspections fail. If you're pulling the permit yourself, you must be present for all inspections and sign off on the final. San Bruno's Building Department typically issues permits to the contractor, requiring a signed contract showing the contractor as the applicant and you as the property owner. Permit fees run $100–$400 depending on the roof area and complexity; the city usually charges a base fee of $75–$150 plus $0.50–$1.00 per roofing square (100 sq. ft.). A 3,000 sq. ft. roof (30 squares) might cost $175–$300 in permit fees alone, plus inspection fees if the city charges separately. Check the city's current fee schedule online or call the Building Department to confirm.

Three San Bruno roof replacement scenarios

Scenario A
Standard asphalt shingle tear-off and re-roof, single existing layer, coastal neighborhood (Sea View or Crestmoor area)
You're replacing a 35-year-old asphalt-shingle roof (one layer, typical for a 1980s-built home in San Bruno) with new architectural asphalt shingles. Your roofing contractor confirms it's a single layer, no hidden surprises. This is a straightforward permit: the contractor submits the permit application to the City of San Bruno Building Department via the online portal, attaching a roof plan (can be as simple as a photo with dimensions, length/width, and slope), the manufacturer's shingle specification sheet, and the underlayment product data sheet. The city's plan-review staff check the ice-and-water shield spec (must extend 24 inches from the eaves per IRC R908.2) and fastening schedule (6-inch nail spacing for coastal wind loads). Approval arrives within 5–7 business days. The contractor schedules a pre-work inspection (inspectors look for hidden layers or deck damage); once approved, tear-off and re-roof proceed. A final inspection confirms proper fastening, flashing installation, and underlayment placement. Total timeline: 2–3 weeks from application to final sign-off. Permit fee: $175–$250 (assuming 30–35 squares). No structural engineer required.
Full tear-off, single layer | Permit required | Asphalt shingles (like-for-like) | Ice-and-water shield to 24 in. from eave | Two inspections (pre-work, final) | $175–$250 permit fee | $4,500–$8,000 total roofing cost | 2–3 week timeline
Scenario B
Material upgrade: asphalt shingles to standing-seam metal roof, same structure, coastal exposure
You're replacing asphalt shingles with a metal (standing-seam) roof. Metal is lighter than tile but adds ~50–80 lbs per square, and San Bruno's coastal wind loads (design wind speeds 115–125 mph in some coastal zones) mean the city requires a structural verification. Before the contractor submits the permit, you must obtain a stamped structural engineer's letter confirming that the existing roof framing (trusses, rafters, connections) can safely support the metal roof's weight plus wind uplift forces. The engineer typically charges $300–$600 for this assessment. The permit application now includes the structural letter, metal roofing product specs, underlayment data sheet, and a detailed fastening schedule for metal-to-wood attachment (metal roofing requires mechanical fasteners, not nails, and spacing is critical per IRC R905.10). Plan-review takes 7–10 business days because the staff must stamp-check the structural engineer's work. Once approved, inspections include pre-work (deck and framing assessment), mid-work (fastener and underlayment check before roofing is installed), and final. Total timeline: 3–4 weeks. Permit fee: $225–$350 (higher due to structural review). Contractors often add $1,500–$3,000 to the job cost for metal-specific labor and fastening. Material upgrade cost: metal roofing runs $8,000–$15,000 installed, vs. $5,000–$9,000 for asphalt.
Full tear-off to single layer | Material change (asphalt to metal) | Structural engineer letter required ($300–$600) | Wind-load fastening schedule required | Three inspections (pre-work, mid-work, final) | $225–$350 permit fee | $9,500–$18,000 total project cost | 3–4 week timeline
Scenario C
Partial roof repair/replacement, under 25% area, leak investigation, deck repair needed
You have a roof leak in the northeast section of your home (a 2,500 sq. ft. roof, so the leak area is ~400 sq. ft. — 4 squares, or 16% of the roof). Your contractor wants to tear off and inspect the deck in that section before deciding if full tear-off is needed. This scenario triggers permit ambiguity: the work is under 25%, which might be exempt, but the tear-off and deck inspection almost always require a permit because the city needs to inspect the framing and confirm no structural damage or asbestos materials are present (common in older Bay Area homes). Submit a permit application marked 'Partial Roof Repair / Leak Investigation' with a site photo showing the affected area and a note that deck inspection is required. San Bruno's Building Department usually treats this as a lower-priority permit (over-the-counter review, 2–3 days) but will require a pre-work inspection before tear-off. Once inspectors see the deck, they may require full tear-off if the substructure is compromised or if a hidden second layer is discovered. If the deck is solid and only shingles are replaced, you might stay under permit, but the safe path is to permit. If asbestos-containing roofing is found (common in homes built pre-1980), the project escalates to a hazmat-abatement contractor and timeline extends 2–4 weeks. Permit fee: $100–$175 for a repair-only application. Total cost: $1,500–$4,000 depending on deck repair scope.
Partial tear-off (16% of area) | Leak investigation + deck inspection required | Permit status depends on deck findings | Pre-work inspection mandatory | Asbestos screening common (pre-1980 homes) | $100–$175 permit fee | $1,500–$4,000 total cost | 1–2 week timeline (or 2–4 weeks if asbestos found)

Every project is different.

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

San Bruno's coastal wind loads and underlayment requirements

San Bruno sits in a high-wind coastal zone, and the City of San Bruno Building Department enforces strict underlayment and fastening specs that inland Bay Area cities don't always catch. The CBC Section 1405 and IRC R905.2 specify that roofing in areas with design wind speeds above 100 mph (San Bruno's coastal neighborhoods fall into this category) require high-wind fastening schedules — typically 6-inch nail spacing in the field vs. 8-inch spacing in lower-wind zones. Inspectors physically measure nail spacing during the mid-work inspection, and violations result in a 'fail' and rework requirement.

Ice-and-water shield (or self-adhering underlayment) placement is equally critical and often overlooked. IRC R908.2 requires the shield to extend from the eaves to a point at least 24 inches inside the building line (measured horizontally from the wall plane). Many roofers install it only to the 'inside of the overhang' (sometimes 12–18 inches), which fails inspection in San Bruno. The city's plan-review staff note this on the permit approval, and inspectors verify it during the mid-work walk. If the shield is undersized, the inspector will not sign off final.

For coastal properties, ask your roofing contractor to specify a premium underlayment product (e.g., GAF Bituthene, Owens Corning WeatherLock, or equivalent) rated for high-wind and moisture exposure. Budget an extra $200–$400 for upgraded underlayment vs. basic felt. San Bruno inspectors don't mandate a specific brand, but they do verify that the product is rated for the wind speed and that installation matches the manufacturer's specs and the plan.

Flood-zone considerations and permit delays in San Bruno

San Bruno's geography puts portions of the city in FEMA-mapped flood zones (A and AE zones along the bay shoreline and creek corridors). If your property is in one of these zones, the roof permit might require cross-referencing with the city's Flood Development Permit process. Check your property's flood zone status on the FEMA Flood Insurance Rate Map (search 'San Bruno FIRM' online or ask your insurance agent). If you're in a flood zone, the city's plan-review staff will flag the permit and route it to the planning department, adding 1–2 weeks to approval.

Properties in flood zones don't face a permit denial for roof replacement, but the city requires documentation that the new roof meets flood-resistant material standards (CBC Section 1612). Asphalt shingles and metal roofing are both compliant; concrete tile is acceptable. The city may also require an elevation certificate if your home is in an AE zone and you're modifying the roof height or structure — this is rare for straightforward reroofs but can add 2–3 weeks if needed. Ask the contractor to confirm flood-zone status before application submission.

If your property is in a designated Flood Plain Management Zone or within 100 feet of a creek, San Bruno's Public Works Department may require a separate review. Budget an extra 2 weeks and $200–$500 in administrative processing for flood-zone permits. Most roof-only replacements are approved, but the bureaucracy moves slower in flood-mapped areas.

City of San Bruno Building Department
San Bruno City Hall, 567 El Camino Real, San Bruno, CA 94066
Phone: (650) 616-7060 | https://www.sanbrunoCA.gov/en/departments/building-planning (check for online permit portal link)
Monday – Friday, 8:00 AM – 5:00 PM (call to confirm current hours)

Common questions

Do I need a permit if I'm just replacing gutters and flashing?

No. Gutter and flashing replacement without touching the underlying roof deck is typically exempt from permitting under CBC Section 105.2.3. However, if gutter work requires removal of shingles or inspection of the deck, a permit is required. Confirm with the city's Building Department before starting if there's any ambiguity.

What if my roof has two existing layers of shingles?

You cannot overlay a third layer per IRC R907.4. You must tear off to a single layer. San Bruno inspectors check this during the pre-work inspection; if a second hidden layer is discovered mid-project, work stops and you'll face a stop-work order. Always get a roofer's written assessment of existing layers before applying for a permit.

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

California allows owner-builders to pull roofing permits under B&P Code § 7044. However, most San Bruno contractors pull the permit themselves (they're licensed and the city prefers it). If you pull it yourself, you're the applicant and responsible for all inspections and sign-offs. Many homeowners delegate this to the contractor to avoid liability.

How long does a roof permit typically take in San Bruno?

Standard like-for-like asphalt shingle replacements take 5–7 business days for plan review and 2–3 weeks total from application to final inspection. Material changes (to metal or tile) add 7–10 days for structural review. Flood-zone properties add 1–2 weeks. Expedited review is sometimes available for an additional fee — ask the Building Department.

What happens at the final roof inspection?

The inspector verifies fastening pattern (nail spacing per the permit plan), underlayment placement (ice-and-water shield to 24 inches from eave), flashing installation, and overall workmanship. They'll also confirm all layers are removed if it was a tear-off. Plan to have the contractor present or available by phone during the inspection.

Do I need a structural engineer's letter for a metal roof upgrade?

Yes, if the roof is being replaced with a material heavier or structurally different than the original (e.g., asphalt shingles to metal, tile, or concrete). The city requires a stamped letter confirming the existing framing can support the new load plus San Bruno's coastal wind loads. Cost: $300–$600 for the engineer's assessment.

What if asbestos-containing roofing is found during tear-off?

Asbestos is common in pre-1980 Bay Area homes. If discovered, work must stop and a licensed hazmat abatement contractor must handle removal. This adds 2–4 weeks and $2,000–$8,000 to the project. Ask the contractor to do a pre-inspection assessment; if asbestos is suspected, hire a lab sample before permitting.

Are solar-readiness requirements triggered by a roof permit in San Bruno?

California's Title 24 (CBC Section 110.2) requires solar-readiness documentation on permitted roofing projects. If your roof faces south or west, the permit may include a solar-easement disclosure or roof-attachment-point design. This rarely blocks a permit but can add 1–2 weeks to plan review. It does not add cost to the roofing project itself.

How much does a roof permit cost in San Bruno?

Roof permits cost $100–$400 depending on roof area and complexity. The city typically charges a base fee ($75–$150) plus $0.50–$1.00 per roofing square (100 sq. ft.). A 30-square roof might cost $175–$300 in permit fees. Material-change permits and structural reviews add $50–$100. Call the Building Department or check the fee schedule online for exact rates.

What if the city finds code violations during final inspection?

The inspector will issue a 'fail' notice specifying the violation (e.g., undersized ice-and-water shield, incorrect fastening pattern). The contractor must correct the issue within a set timeframe (usually 7–10 days) and request a re-inspection. If major structural issues are found, the timeline extends significantly. Plan for back-and-forth on final inspection; it's common.

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