Research by DoINeedAPermit Research Team · Updated May 2026
The Short Answer
Any attached deck in Millbrae requires a permit, regardless of size or height. California Building Code and Millbrae's adoption of IRC R507 mandate this. Plan review typically takes 3–4 weeks.
Millbrae, like all San Mateo County bay-area jurisdictions, has adopted the current California Building Code (2022 CBC, based on IBC 2021 and IRC R507). Critically, Millbrae's code enforcement practice is notably strict on ledger flashing compliance — the city's permit office regularly flags incomplete or non-compliant ledger-to-band-board connections in plan review, often delaying approval by 1–2 weeks. This is bay-mud country; frost depth is not a footings concern on the flats (most Millbrae is sea-level adjacent), but the city requires geotech-signed footing designs if the deck sits over fill or within 5 feet of a setback line. Unlike some inland Bay Area cities (e.g., Hayward, Livermore) that grandfather older code editions, Millbrae enforces current code, so guardrails must meet 2021 IBC 1015 (36-inch minimum height, 4-inch sphere test). The permit fee in Millbrae runs $200–$450 depending on deck valuation — the city uses a square-footage-based fee table that most homeowners find reasonable compared to neighboring Burlingame or San Bruno.

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

Millbrae attached deck permits — the key details

Millbrae is unambiguous: any deck attached to a house requires a permit, period. This is codified in the city's adoption of California Building Code Title 24 and IRC R507. There is no square-footage exemption, no height exemption, no 'one-time-only' pass. The only decks that escape permit in California are true ground-level freestanding structures under 200 square feet and under 30 inches high — if your deck is attached (bolted or ledged to the house), or if it is 30+ inches above natural grade, or if it exceeds 200 square feet, it needs a permit. Millbrae's Building Department enforces this consistently. The rationale is sound: an attached deck is a lateral-load path to your house; the ledger connection is a structural responsibility that ties to the band board, rim joist, and main framing — if flashing fails, water intrusion follows within months, leading to rot and mold. The IRC R507.9 ledger-flashing rule exists specifically to prevent this. Millbrae's experience mirrors the broader Bay Area pattern of moisture problems in older homes; the city has seen hundreds of ledger failures and takes the flashing requirement seriously in plan review.

The ledger detail is the single most-scrutinized item in Millbrae's deck permit review. You must show a section drawing of the ledger-to-band-board connection per IRC R507.9, which requires flashing (typically galvanized or stainless steel, 26-gauge minimum) installed behind the band board, over the top of the rim joist, and down the face at least 4 inches. The flashing must be sealed with compatible caulk or sealant (not cheap silicone). If your deck is over a concrete patio or has steps below, the flashing routing becomes even more critical — water cannot pool. Millbrae's plan checklist (available from the Building Department) explicitly calls out flashing slope, fastener spacing (max 12 inches), and ledger bolt spacing (16 inches max per R507.9.2). Many DIY or first-time applicants submit plans with a generic ledger sketch; the city will reject this and ask for a code-compliant section. This delays approval by 7–10 days on average. If you're hiring a deck contractor, insist that they submit the ICC-compliant section drawing, not a fuzzy photo. If you're designing it yourself, download the IRC R507 section from your local library or ICC website and trace the flashing detail step-by-step.

Footings and posts in Millbrae present a secondary but real concern. The bay flats are not a frost-depth zone — Millbrae's elevation hovers at or below 50 feet, and the frost line is essentially nonexistent. However, the soil is bay mud: soft, compressible, and prone to settlement if you don't dig to stable bearing. Millbrae's code (per the CBC and local engineering practice) requires posts to bear on undisturbed soil or rock, minimum 12 inches deep for residential decks, but if you hit fill, clay, or saturated mud within 24 inches, the city will ask for a geotech letter or a deeper pier system (often going to 36+ inches and 18-inch diameter piers). This is not theoretical; many Millbrae homes sit on fill from mid-20th-century development. If your deck is on the bay side or near a creek, geotech involvement is standard. Cost: $300–$800 for a geotech site visit and brief letter. Factor this into your budget. Posts themselves must be rated for ground contact; PT (pressure-treated) lumber rated UC2/UC3 is acceptable; redwood heartwood is not (water sits in Millbrae winters). Concrete piers must extend 6–12 inches above grade and be sloped to shed water. The city will flag deck plans that show posts sitting in mud or in wood-on-soil contact.

Guardrails and stairs follow the 2021 IBC 1015 and IRC R311.7 strictly in Millbrae. Guardrails must be 36 inches high (measured from the deck surface to the top of the rail); a 4-inch sphere must not pass through any opening (this applies to balusters, the space between the rail and the deck surface, and any angled members). Stair stringers must support a 40 psf live load, with treads 10 inches deep minimum and risers 7 inches high maximum (or within 3/8 inch of each other if variable). The top and bottom landing must be 36 inches deep minimum. Millbrae's inspectors carry a 4-inch sphere test ball and will reject guardrails with gaps; this is nonnegotiable. Many homeowners want wider-spaced balusters for a 'modern look' — the answer is no. Exceptions exist for horizontal cable rail systems (which must be approved in advance), but these are rare and require third-party testing. Stairs and landings also trigger a separate inspection; don't assume the final walk-through will pass if the stringers are marginal.

The permit and inspection timeline in Millbrae is typically 3–4 weeks from submission to approval, assuming your plans are complete and compliant on first review. Most submissions result in a 'first response' e-mail within 5–7 days flagging issues; common rejections are ledger flashing (40% of cases), footing depth or bearing (20%), and guardrail details (15%). After you address corrections and resubmit, a second review cycle takes another 5–7 days. Once approved, you schedule inspections: footing inspection before concrete pour (if applicable), framing inspection after ledger and posts are set, and final after railings and stairs are installed. Each inspection is typically scheduled on 2–5 days' notice. If you miss an inspection window or the work fails (e.g., bolts are wrong spacing, flashing is missing), rework and re-inspection cost $75–$150 per inspection. Plan for 6–8 weeks from permit issuance to final approval, accounting for weather delays and inspector scheduling. Millbrae's Building Department office is open Monday–Friday, 8 AM–5 PM, with a lunch closure 12–1 PM; online portal submissions are available but phone and in-person follow-up is often faster.

Three Millbrae deck (attached to house) scenarios

Scenario A
12x16 treated-lumber deck, 2 feet high, no stairs, single-ledger connection, Millbrae flats home
You're adding a modest deck to the back of a 1970s ranch home in central Millbrae, roughly 100 feet from the bay wetlands. The deck is 12 feet wide by 16 feet deep (192 square feet), sits 2 feet above the patio grade, and will be built with PT 2x6 decking, 2x8 rim, 2x10 beams, and 4x4 posts. The ledger bolts to the existing 2x band board (you've confirmed there's solid rim joist beneath). This deck does not trigger electrical or plumbing, so no trade licensing required for you as owner-builder. The permit fee is calculated at $200–$250 based on the deck valuation (square footage method; Millbrae uses roughly $15–$20 per square foot of deck area, so 192 sq ft times $1.30 per sq ft = $250 permit fee, plus $50 plan-check fee if applicable). Your plans must include (1) site plan showing setbacks and orientation; (2) deck plan view with dimensions, post locations, and joist sizes; (3) ledger section per R507.9 showing flashing, bolts, and spacing; (4) post-and-beam details with connection hardware (joist hangers, post bases, lateral bracing). The footings can be 12–18 inches deep on undisturbed soil (no geotech required for a ground-level deck on stable clay or native soil, but you'll need to show the inspection pit or core sample; many Millbrae contractors simply dig post holes, backfill with concrete, and slop a 4-inch above-grade collar). Ledger flashing is the critical detail; you must show 26-gauge min. galvanized flashing routed behind the band board and sealed. Plan review typically takes 1 week; once approved, you pull the permit ($250 fee + city taxes) and schedule the footing inspection before posts go in. Framing inspection occurs after ledger bolts and beam connections are set. Final inspection checks guardrails (if railing is required by the city based on height — 2 feet is borderline; some jurisdictions require railings for any deck 30+ inches, others only for 36+ inches; Millbrae enforces the 30-inch threshold per CBC, so at 2 feet you may be exempt, but verify in advance). Timeline: 4–5 weeks from submission to final approval.
Permit required | $200–$250 permit fee | 192 sq ft deck valuation | PT lumber UC3 | Galvanized ledger flashing required | 12-inch post spacing on grade | No railing required (below 30-inch threshold) | Estimated total project cost $4,000–$7,000 | 4–5 weeks for permit and inspection
Scenario B
16x20 composite deck, 3.5 feet high with stairs and landing, bay-mud site, requires geotech
You're building a larger composite deck on a Millbrae home near the bay edge, elevated 3.5 feet above the back lawn to address water runoff and sloped terrain. The deck footprint is 16x20 feet (320 square feet), with composite decking, aluminum railings, and a 36-inch-wide stair with landing. This is a more complex build: you're attaching the ledger to the band board, setting posts 3–4 feet deep due to bay-mud settlement concerns, and installing a proper landing and stair assembly per IRC R311.7. Because the site is within 200 feet of the bay and you've encountered soft soil in your test holes, the city's plan checklist (and good practice) requires a geotech site assessment. A licensed civil engineer will visit, test the soil, and issue a brief letter confirming bearing capacity and recommended footing depth (likely 36+ inches with 18-inch-diameter concrete piers). This geotech report costs $400–$800 and is non-negotiable for permit approval in Millbrae. Your permit fee jumps to $350–$450 based on the larger footprint and structural complexity (deck valuation now ~$7,000–$9,000 at $20–$30 per sq ft for composite and stairs). Plans must be more detailed: site and deck plans, ledger flashing section, footing and pier details with geotech data, stair stringers with load calcs, landing framing, guardrail elevation with balusters and spacing. Composite decking does not rot, but flashing still fails if not installed correctly; aluminum railings are common in Millbrae due to salt-air corrosion (composite or wood railings absorb moisture). Plan review takes 2–3 weeks due to geotech involvement and stair complexity. Inspections are footing (before concrete pour), framing (after ledger and beams), stair assembly (before stairs are opened to use), and final. One inspection failure (e.g., bolts spaced wrong, flashing incomplete, stair riser height out of spec) costs an additional 5–7 days and $75–$150 re-inspection fee. Timeline: 7–9 weeks from initial submission to final sign-off, accounting for geotech, plan review cycles, and inspection scheduling.
Permit required | $350–$450 permit fee | Geotech report required $400–$800 | 320 sq ft deck with stairs | Composite decking + aluminum railings | 36-inch-deep concrete piers with geotechnical engineering | Ledger flashing (stainless preferred in salt-air zone) | Stair landing 36 inches deep min. | Guardrails 36 inches high, 4-inch sphere test | Estimated total project cost $12,000–$18,000 | 7–9 weeks for permit, geotech, and inspection
Scenario C
10x12 ground-level deck with integrated plumbing rough (outdoor shower), licensed plumber required
You're considering a small 10x12 foot ground-level deck (120 sq ft) directly on the patio, but with plans for an outdoor shower integrated into a corner (plumbing rough under the deck). This scenario showcases Millbrae's trade-licensing requirement, which differs from inland jurisdictions that may allow owner-builder plumbing in certain cases. California Building & Professions Code Section 7044 allows owner-builders to do their own work on single-family residential homes, BUT with critical exceptions: electrical, plumbing, and gas work typically require a licensed contractor or a C-36 (plumbing) or C-4 (electrical) trade license. In Millbrae, if your deck has plumbing (even rough-in), you must hire a licensed C-36 plumber for that portion, or you must pull a plumbing permit separately and have the city inspect the work. If you hire a deck contractor, they cannot touch the plumbing; the plumber must do that work under their license. This splits the project into two permits: a deck permit ($150–$250) and a plumbing permit ($200–$300 for the rough-in and hookup). The deck-only scope (framing, decking, ledger, railings) can be owner-built, but the plumbing rough (supply line under the deck, drain line, vent stack) must be licensed and inspected separately. Millbrae's Building Department maintains this split explicitly; the deck and plumbing inspections are scheduled independently. If you don't hire a plumber and run the water line yourself, the city will catch it at the plumbing rough inspection and issue a notice to correct or remove; refusal to comply triggers a stop-work order. Timeline is 8–10 weeks total: 1–2 weeks for both permits to be approved, 3–4 weeks for plan review (the plumbing plans must show trap sizing, slope, vent routing), and 4–6 weeks for inspections and possible rework. Cost: $300–$400 in permits, plus $1,500–$3,000 for licensed plumber labor.
Deck permit required $150–$250 | Plumbing permit required $200–$300 | Licensed C-36 plumber mandatory for rough-in | Deck scope: framing, ledger, decking, railings (owner-builder OK) | Plumbing scope: supply/drain/vent (licensed contractor only) | 120 sq ft ground-level deck | Two separate inspection cycles (deck framing and plumbing rough) | Estimated total project cost $5,000–$8,000 | 8–10 weeks for dual permits and inspections

Every project is different.

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

Ledger flashing: why Millbrae inspectors are strict, and how to get it right the first time

Ledger flashing is the difference between a deck that lasts 30 years and one that rots in 5. Millbrae's Bay Area climate — persistent fog, salt air, high humidity, winter rains — is ideal for wood decay. The ledger connection is where your new deck meets your existing house; if water breaches this joint, it infiltrates the rim joist and band board, leading to soft rot visible from the attic and sometimes structural failure of the connection itself. The IRC R507.9 flashing rule exists because of decades of failed decks. Millbrae's Building Department has seen this pattern repeatedly; they're not being pedantic, they're preventing your house from rotting. The flashing must be installed behind the band board (not on top, not beside — behind), run over the rim joist, slope downward, and terminate well below the rim, typically 4–6 inches. The material must be corrosion-resistant: galvanized (26-gauge minimum) or stainless steel (preferred in salt-air zones like Millbrae). Fasteners must be corrosion-resistant too (stainless bolts and fasteners, not galvanized or mild steel). Caulk and sealant must be compatible with the flashing metal and the house rim material; polyurethane or silicone-based sealants are acceptable, but cheap latex caulk fails within 2–3 years in the bay climate.

When you submit your deck plans to Millbrae's Building Department, the ledger section is the first thing the plan reviewer scrutinizes. They're looking for: (1) the flashing material and gauge specified; (2) the flashing routed behind the band board, with a clear section view showing the overlap and slope; (3) fastener spacing (max 12 inches O.C. on the ledger itself) and size (typically 1/2-inch diameter bolts); (4) sealant indicated at all joints; (5) the connection to the house rim joist secure and adequate (the ledger must be bolted, not nailed, per R507.9.2). If your drawing shows the flashing sitting on top of the rim, or if it's missing a dimension or slope indication, the city will issue a 'first response' correction request. You'll have 5–10 days to revise and resubmit. Most first-time applicants waste a week on this round-trip. The fix is simple: hire a structural engineer or an experienced deck contractor to draw the section, or download the IRC R507 detail and use it as your template. Cost to hire an engineer for a ledger detail sketch: $200–$400.

Once you've submitted a compliant ledger section and the permit is approved, the actual installation is equally critical. Don't skimp on the flashing material; buy 26-gauge minimum galvanized or stainless steel, not aluminum (aluminum corrodes rapidly in salt-air settings). Slope the flashing at least 30 degrees downward; a flat or upward-sloping flashing is worthless. Caulk every joint — the top edge of the flashing where it sits on the rim, the sides where the flashing meets the joist, and the bottom edge where it exits below the rim. Some contractors use flashing tape (ice-and-water shield adhesive style); this is acceptable if the flashing itself is installed correctly underneath. During the framing inspection, the city inspector will verify that the flashing is present, positioned correctly, and fastened. If the flashing is missing or installed wrong, the inspector will fail the framing inspection and issue a correction notice. You can't cover it with deck boards and hope the inspector doesn't see it at final; they will require a re-inspection after you expose and correct it. Budget 1–2 weeks and $150 for a re-inspection if this happens.

Millbrae's bay-mud soil and footing realities: why your contractor's 12-inch post hole may not pass

Millbrae sits atop the San Francisco Bay's alluvial plain. Much of the city, especially areas developed in the 1960s–1980s, was built on imported fill and bay mud. Bay mud is soft, compressible, and has low bearing capacity — typically 1,000–2,000 pounds per square foot, compared to native clay or rock at 3,000+ psf. When you drive a post hole in Millbrae and hit soft mud within 18 inches, the city's building code (per the CBC and local precedent) requires you to either: (a) go deeper to stable bearing (often 30–36 inches or more), (b) install a concrete pier extending below the mud to stable clay or rock, or (c) use a helical pier or driven pile system if the bearing is very poor. Many DIY builders and even some contractors assume a standard 12–18 inch post hole with concrete backfill is fine everywhere. In Millbrae, this assumption fails. The Building Department will ask for one of three things during footing inspection: (1) a geotech letter confirming bearing capacity, (2) a signed affidavit from the contractor confirming the footing depth and soil conditions, or (3) photographic evidence of the soil exposure in the post hole (a clear image showing the depth and soil type). If you can't provide this documentation, the inspector will require deeper footings or piers.

The cost implication is significant. A standard 12-inch post hole with a concrete collar costs roughly $100–$200 per post. A 36-inch deep pier with an 18-inch diameter and a post base plate costs $400–$700 per post. A full geotech site assessment (which covers multiple posts and confirms bearing across the site) costs $400–$1,000. For a small 4-post deck, the difference between shallow and deep footings can be $800–$1,500, a meaningful hit to the project budget. The solution is to acknowledge this upfront and budget accordingly. When you get your first deck quote, ask the contractor: 'Have you pulled permits on Millbrae decks before? Do you do soil testing or geotech reports?' If they say 'no, I just dig 12 inches and pour concrete,' they're not experienced in Millbrae. Find a contractor with bay-area references. If you're DIYing the design, contact the Building Department or a local engineer and ask for the standard footing depth in your neighborhood; they may tell you '18 inches is usually OK here, but if you hit bay mud, bring in a geotechnician.' Plan for this contingency in your budget.

Frost depth is not a concern in Millbrae proper (elevations 0–200 feet, where frost line is negligible), but if you're building in the Millbrae foothills or near the western boundary toward the Santa Cruz Mountains, frost depth becomes relevant (12–30 inches depending on exact elevation and microclimate). Verify your exact address's frost depth with the Building Department or a local contractor. For bay-side decks, focus on bearing capacity and settlement; for elevated sites, focus on frost depth and drainage. In both cases, the ledger flashing is equally important.

City of Millbrae Building Department
Millbrae City Hall, One Industrial Road, Millbrae, CA 94030
Phone: (650) 558-7600 | https://millbrae.municipal.codes/ (permit applications and code lookup; online submission link available on city website)
Monday–Friday, 8:00 AM–5:00 PM (closed 12:00–1:00 PM lunch)

Common questions

Do I need a permit for a ground-level patio deck that's not attached to the house?

If the deck is truly freestanding (not bolted or ledged to the house), sits at or below 30 inches above natural grade, and is under 200 square feet, it may be exempt under IRC R105.2(3). However, Millbrae typically requires a permit application to confirm exemption status, even if the final verdict is 'no permit needed.' A few jurisdictions grant blanket exemptions; Millbrae does not. Call or visit the Building Department with your deck dimensions and photos; they will verify exemption in writing. This usually costs nothing and takes 1–2 days.

Can I build the deck myself, or do I need to hire a contractor?

California law allows owner-builders to do their own work on single-family residential homes under B&P Code Section 7044, provided there are no trade-licensed components (electrical, plumbing, gas). In Millbrae, if your deck involves only structural framing, decking, ledger, and railings, you can be the builder of record and pull the permit yourself. If the deck includes electrical (lights, outlets, heating) or plumbing (outdoor shower, built-in irrigation), you must hire a licensed C-4 electrician or C-36 plumber for those portions. Many owner-builders hire a contractor for the structural work and a separate trade for utilities. The permit is typically issued to the owner or the contractor of record; verify with the Building Department before starting.

How much does a deck permit cost in Millbrae?

Millbrae's deck permit fee is based on valuation, typically $200–$500 for residential decks. The city uses a square-footage method (roughly $15–$25 per sq ft of deck area) to estimate valuation, then applies a permit-fee percentage (usually 1–2% of valuation). A 12x16 deck (192 sq ft) at $20 per sq ft = $3,840 valuation, yielding a permit fee of $60–$80 plus plan-check fee (if applicable, $50–$100). A 16x20 composite deck with stairs at $30 per sq ft = $9,600 valuation, yielding a $150–$200 permit fee. These are ballpark figures; call the Building Department with your deck dimensions for an exact quote. Plan-check fees and processing times vary; allow 1–2 weeks for approval after submission.

What is the 'ledger flashing' requirement, and why is Millbrae so strict about it?

The ledger is where your deck bolts to the house band board; flashing is the metal barrier (galvanized or stainless steel sheet) that channels water away from the wood joint. If flashing is missing or installed wrong, water infiltrates the rim joist and causes rot — a $3,000–$8,000 repair. Millbrae's Bay Area climate (fog, salt air, winter rain) accelerates decay. Millbrae's inspectors are strict because the city has documented dozens of ledger failures in older decks; the IRC R507.9 rule exists to prevent this. Your plan must show a section view of the flashing routed behind the band board, with slope, fastener spacing (max 12 inches), and sealant indicated. Most first-time permit rejections cite incomplete ledger flashing details. Hire an engineer or experienced contractor to draw this detail correctly; do not skip it.

Do I need a surveyor or site engineer for a simple deck?

For most residential decks in Millbrae, a surveyor is not required unless the deck is near a property line or within a setback-sensitive zone (e.g., rear setback, creek buffer). The city's permit application asks you to show setbacks on a site plan; you can often estimate these using aerial photos or measurement from the property deed. A geotech engineer is required if the site has bay mud or questionable soil bearing (common in Millbrae bay-side homes). A structural engineer is optional but helpful if you're designing complex footings, stairs, or lateral bracing. Budget $200–$1,200 for professional support (engineer or geotech) depending on complexity.

How long does the permit and inspection process take in Millbrae?

Typical timeline: 1 week for initial plan review, 5–10 days for corrections (if any), 1 week for re-review and approval, then 2–4 weeks to schedule and complete inspections (footing, framing, final). Total: 4–8 weeks from submission to final approval, assuming no major issues. Delays occur if plans are incomplete, ledger flashing is non-compliant, geotech is required, or inspector schedules are booked. Weather and contractor availability add another 2–4 weeks to actual construction. Plan for 8–12 weeks total from permit submission to a finished deck.

What happens if my deck exceeds a setback or violates height restrictions?

Millbrae's zoning code limits deck setbacks and height based on your district (residential zoning typically requires rear setbacks of 15–25 feet, depending on the lot size and district). If your proposed deck violates setback or height limits, the city will request a variance or modification before approving the permit. A variance requires a formal hearing with the Planning Commission and costs $500–$1,000 plus legal fees and notice postings; timeline is 6–8 weeks. Most residential decks fit within setbacks; verify your lot dimensions and zoning district with the Planning Department before designing the deck. Avoiding a variance saves 2–3 months and significant money.

Are there any Millbrae-specific amendments to the California Building Code that affect decks?

Millbrae adopts the current California Building Code (2022 CBC, based on 2021 IBC and IRC) without major local amendments specific to residential decks. However, the city enforces stricter ledger flashing compliance and bay-mud footing standards than some inland jurisdictions, reflecting local climate and soil conditions. The city also requires geotech assessment for decks on fill or soft soil (common in bay-area developments). Check Millbrae's municipal code (millbrae.municipal.codes) or contact the Building Department for any code updates or local amendments.

Can I use composite or vinyl decking instead of pressure-treated wood?

Yes, composite and vinyl decking are permitted in Millbrae and are popular for their durability and low maintenance. Composite decking (plastic-lumber blend) resists rot and mold, a significant advantage in Millbrae's moist climate. However, composite decking costs 2–3x more than PT wood and requires similar structural support (ledger flashing, footings, railings). All structural members (ledger, rim, beams, posts) still must meet code if wood, or equivalent if composite/metal. The permit fee is typically the same regardless of decking material; however, the valuation used to calculate the fee may be higher for composite (at $25–$30 per sq ft vs. $15–$20 for PT wood). Verify the valuation estimate with the Building Department before designing the deck.

Will my homeowner's insurance cover an unpermitted deck?

Likely not. Most homeowner's policies exclude unpermitted or non-compliant structures from coverage. If an unpermitted deck collapses, causes injury, or sustains damage, your insurer may deny the claim and refuse to insure the home going forward. Additionally, when you sell the home, disclosure requirements (TDS — Transfer Disclosure Statement) mandate you inform the buyer of unpermitted work, which can reduce the home's value by 5–10% and kill the sale. Getting the permit right prevents insurance issues, resale problems, and liability exposure. The small cost and time investment in a permit ($200–$500 and 4–8 weeks) is worth far more than the risk of unpermitted work.

Disclaimer: This guide is based on research conducted in May 2026 using publicly available sources. Always verify current deck (attached to house) permit requirements with the City of Millbrae Building Department before starting your project.