Last updated October 17, 2026
Metal roofing
Architectural shingles
Tile roofing
GAF
Owens Corning
Flat & low-slopeFree roof inspection with deck photos before we talk money - GAF and Owens Corning certified installation
How to Hire a Roofing Contractor in San Francisco: A Step-by-Step Guide
Most homeowners in San Francisco don’t realize that the state’s licensing system has a structural blind spot, and it costs people real money every year. California requires roofing contractors to hold a C-39 license, but it does not require the license holder to personally perform or even supervise the work they sell you. In San Francisco, it is perfectly legal for a licensed C-39 holder to sign your contract and then hand the entire job to an unlicensed crew that never appears on any paperwork. This guide walks you through a concrete vetting sequence that eliminates most of the bad actors before they ever set foot on your roof.
Quick Answer
To hire a roofing contractor in San Francisco, verify their C-39 license status on the CSLB database, confirm who will physically perform the work and whether they are on payroll, require a written estimate that matches California’s legal requirements, and check that the contract addresses permits, debris disposal, and weather delays in writing. Never accept a bid from anyone who cannot show you a current, active C-39 license in their own name or company name.
Styles & brands we work with






Table of Contents
- Step 1: Verify the C-39 License on the CSLB Database
- Step 2: Ask the Subcontracting Question Before You Sign Anything
- Step 3: What a Legal Written Estimate Must Contain in California
- Step 4: The Three Contract Clauses That Protect San Francisco Homeowners
- Step 5: How to Compare Bids Without Falling for the Lowest Number
- Step 6: San Francisco Specific Factors: Flat Roofs, Fog, and Permits
- Step 7: Questions to Ask Every Contractor Before Work Begins
Step 1: Verify the C-39 License on the CSLB Database
The single most important step in hiring a roofer in San Francisco takes less than two minutes, and most people skip it entirely. Go to the California Contractors State License Board website, click “Check a Contractor’s License,” and enter the license number the contractor gave you. The license must say “C-39 Roofing” and the status must read “Active.” Not “Expired,” not “Suspended,” not “Inactive,” and definitely not “Revoked.”
Here is what the status codes actually mean when you pull up a license on the CSLB database:
- Active: The license is current and the contractor can legally work in California. This is the only status you should accept.
- Expired: The contractor let the license lapse. They cannot legally perform roofing work until it is renewed. Walk away unless they renew it and you verify again.
- Suspended: Usually means a bond issue, unpaid judgment, or failure to maintain workers’ compensation insurance. Do not hire anyone with a suspended license.
- Revoked: The state has stripped the license due to serious violations. A revoked license is a permanent red flag.
- Inactive: The contractor is not currently authorized to operate. Some contractors keep a license inactive and then “reactivate” it, but an inactive license on the day you check means no legal work.
You also want to check two additional fields on the same page. First, look at the “Workers’ Compensation” status. If you hire a roofer without workers’ comp coverage and someone gets hurt on your property, your homeowner’s insurance can be on the hook. Second, check the “Bonding” status. California requires roofing contractors to carry a $15,000 contractor’s bond, and the CSLB page will show whether it is current. In our experience in San Francisco, we have seen too many homeowners accept a verbal claim of “we’re licensed” without ever checking the database. The database exists for a reason. Use it.
One more note: the license holder’s name on the CSLB page should match the name of the person or company on your contract. If the name on the contract is different from the name on the license, you are not hiring who you think you are hiring. That mismatch is one of the most common ways unlicensed crews operate in San Francisco.
Step 2: Ask the Subcontracting Question Before You Sign Anything
This is the question that separates a legitimate roofing operation from a sales front, and it is the one most homeowners in San Francisco never think to ask: Who will physically be on my roof, and are they on your payroll?
Here is why this matters, in plain terms. A C-39 license allows a contractor to sell roofing work. It does not require the contractor to personally perform the work or to directly employ the people who do it. In San Francisco, a licensed C-39 holder can legally sign your contract and then sub the entire job to a crew the license holder has never met, never trained, and never insured under their own policy. That crew might be excellent, or it might be three people picked up outside a supply yard that morning. You have no way of knowing unless you ask.
The right answer to the subcontracting question sounds like this: “Our installers are on our payroll. We background-check everyone who steps on a customer’s property, and they arrive in uniform so you know exactly who is on your roof.” That is the standard we hold at Brennan Roofing Co San Francisco, and it is a direct expression of what we call The Garrison Standard. Before any work starts, you should know the name of the company that employs the people who will actually tear off your old roof and install the new one.
The wrong answer sounds like this: “We have crews we work with” or “Our guys handle that.” That is subcontracting language, and it means the person who signs your contract is not accountable for the people doing the work. If something goes wrong, the finger-pointing starts immediately.
Ask the question and write down the answer. If the contractor will not answer in writing, move on.
Step 3: What a Legal Written Estimate Must Contain in California
A legitimate written estimate in California is not a one-page summary with a single number at the bottom. It is a detailed document that survives scrutiny if a dispute ever lands in small claims court or mediation. Here is what California law and basic trade practice require a roofing estimate to contain:
- Full scope of work: Every layer being removed, every material being installed, every flashing point being addressed. “Remove old roof and install new roof” is not a scope. “Tear off two layers of existing composition shingle to decking, inspect decking for damage, install new underlayment, install new drip edge, install new GAF Timberline HDZ shingles with hip and ridge cap, replace all pipe flashings” is a scope.
- Materials with brand and product line named specifically: “30-year shingle” is not specific enough. You want the manufacturer and product line: GAF Timberline HDZ, CertainTeed Landmark, Owens Corning Duration. Specific product names let you verify what was ordered and what was delivered.
- Line-item pricing: The estimate should break out labor, materials, disposal, permits, and any other charges. A single lump sum with no breakdown is a red flag.
- Start and completion dates, or a written timeline: In San Francisco, weather can delay any roofing job, but the estimate should state an expected duration and a start window in writing.
- Payment schedule: California law caps the down payment for home improvement work at 10 percent of the total contract price or $1,000, whichever is less. Anyone asking for more upfront is breaking the law.
- Contractor’s name, license number, and address: These must match the CSLB record exactly.
The most common missing item we see in San Francisco estimates is the permit line. Some contractors leave permits off the bid entirely, which means the homeowner finds out later that they owe an additional fee, or worse, the contractor proceeds without a permit and the homeowner is left holding the liability. A legitimate estimate includes the permit cost, and the contract states who pulls the permit. At Brennan Roofing, the price goes on paper before any work starts, and it does not move at the door. That is part of the no-hassle upfront pricing commitment that has been our practice since the company was founded. If a roofer cannot give you a written price before work begins, you are not getting an estimate, you are getting a guess.
Step 4: The Three Contract Clauses That Protect San Francisco Homeowners Specifically
Once you have a detailed estimate, you need a contract that addresses the realities of roofing in San Francisco. Three clauses matter more than the rest, and they are the ones most often missing from contracts written by crews that do most of their work in the East Bay or South Bay and come into the city occasionally.
Clause 1: Permit Responsibility
San Francisco has its own permitting process through the Department of Building Inspection, and roofing work generally requires a permit, especially for full replacements or structural repairs. The contract must state in writing that the contractor is responsible for pulling the permit, scheduling the inspection, and ensuring the work passes. At Brennan Roofing Co San Francisco, we pull the permit, we schedule the inspection, and we do not consider the job complete until the city signs off. If a contractor says a permit “is not necessary” for a full roof replacement in San Francisco, that is a false statement, and it should end the conversation.
Clause 2: Debris Disposal
Reroofing generates a lot of material: old shingles, rotted decking, torn underlayment, nails, and fasteners. In San Francisco, street parking and narrow driveways make debris staging a real issue. The contract should state who hauls the debris, where it goes, and when the site will be clean. “We will clean up after ourselves” is not a contract clause. “Contractor will provide a debris container at the property, remove all construction debris from the site upon completion, and magnet-sweep the property for nails” is a contract clause. The magnet sweep matters. Nails in a driveway are a flat tire waiting to happen, and a roofer who does not magnet-sweep is not done with the job.
Clause 3: Weather-Delay Terms
San Francisco fog and rain are facts of life, and you cannot reroof in the rain. The contract should state what happens if weather delays the job: how delay days are communicated, whether the price changes, and what the new schedule looks like. A legitimate contractor plans for weather. In the Sunset and the Richmond, fog can roll in before noon and shut down a roofing crew. In the Mission and Noe Valley, the weather may be fine while the avenues are socked in. Your contract should not assume perfect weather for two straight weeks. It should state plainly how weather interruptions are handled, in writing.
Step 5: How to Compare Bids Without Falling for the Lowest Number
The standard advice for hiring a roofer is to get three bids. It is good advice, but most homeowners in San Francisco use it wrong. They take the three numbers, find the middle one, and hire that contractor. Or worse, they take the lowest number because a roof is an unplanned expense and money is tight. Here is what the bid comparison actually tells you if you read it correctly.
The lowest bid in a three-bid comparison in San Francisco is statistically the one most likely to involve an unlicensed crew, skipped permit, or materials substitution. That is not an opinion, it is arithmetic. A roofing job has fixed costs: materials at current supply house pricing, dump fees, permit fees, labor, workers’ comp insurance, and liability insurance. When one bid comes in 30 or 40 percent below the other two, something is being left out. Usually it is one or more of these:
- The permit is not in the price. The contractor plans to work without one, or plans to hit you with a change order for the permit fee later.
- The crew is unlicensed or paid off the books. No workers’ comp, no payroll taxes, no liability coverage for the workers on your roof.
- The materials are not what you were told. The bid says “architectural shingle” but the truck delivers a builder-grade three-tab from a manufacturer you have never heard of.
- The scope is missing something. No underlayment replacement. No drip edge. No flashing replacement. The low bid wins, then the change orders start.
When you compare bids, compare line items, not bottom lines. Place the three estimates side by side and check that each one includes the same scope, the same materials, the same permit line, the same debris hauling. If one bid leaves out a line that the other two include, that is not savings, it is deferred cost. The roofer who gives you a complete written price before any work starts is the one who has done the math. At Brennan Roofing, the price goes on paper before any work begins, always, and it does not move at the door. If a roofer will not put the price in writing up front, that is the entire conversation.
Step 6: San Francisco Specific Factors: Flat Roofs, Fog, and Microclimates
San Francisco is not one roofing market. It is a dozen microclimates stacked on top of each other, and the right roof for a house in the Outer Sunset is not necessarily the right roof for a house in Glen Park. A contractor who knows San Francisco will talk about this with you, and a contractor who treats the city as one big zip code will not.
The fog belt, which covers most of the Sunset, the Richmond, and the hills facing the ocean, stays damp for much of the year. Moss and algae are real problems, and underlayment choices matter more than shingle color. Flat roofs are common in the Sunset and the Richmond, and flat roofing is a different trade from pitched shingle work. The membrane system, the torch-down or modified bitumen or TPO, has to be installed by someone who actually does flat roofs regularly. An East Bay shingle crew that picks up a flat roof job in the Outer Richmond is a liability. Ask for flat-roof references specifically.
In the hills, wind exposure changes the equation. Homes in Twin Peaks, Diamond Heights, and the upper slopes of Noe Valley get hit with wind that never reaches the Mission. Fastening patterns and shingle ratings have to account for it. In the Mission and Potrero Hill, the concern is heat and sun exposure, which degrades some materials faster than others.
Permits also work differently here than in surrounding counties. San Francisco’s Department of Building Inspection has its own inspection process, and a roofer who has never passed an SF inspection may not know the specific code requirements. Ask any contractor you are considering whether they pull permits in San Francisco regularly and when they last passed an inspection with DBI. If they hesitate, that is your answer. We pull permits and pass inspections in San Francisco as standard practice. The inspection is not a hurdle for us, it is the proof that the job was done right.
Step 7: Questions to Ask Every Contractor Before Work Begins
By the time you get to the contract stage, you should already have verified the license, asked the subcontracting question, and reviewed a written estimate. These remaining questions close the remaining gaps.
- “What is your license number, and can I verify it on the CSLB website while you wait?” A legitimate contractor gives you the number and expects you to check it. Anyone who bristles at the question is hiding something.
- “Who will be on my roof, and are they on your payroll?” The answer tells you whether you are hiring a roofing company or a sales operation.
- “What is the written guarantee, and what exactly does it cover?” At Brennan Roofing, it is called the 365-Day Done Right Promise, and it is in writing for one full year. If a repair or installation fails within that period, we come back and make it right at no charge. If a roofer will not put the guarantee in writing, there is no guarantee.
- “What happens if I find a problem after the job is done?” The answer should include a specific process: call us, we schedule a return visit, we fix it. It should not include “we will see” or “that depends.”
- “Do you carry workers’ compensation insurance, and can I see the certificate?” If the answer is no, anyone injured on your property becomes your liability. That is not a risk worth taking.
- “What manufacturer lines do you install, and why do you recommend this one for my roof?” A roofer who installs GAF, CertainTeed, Owens Corning, and IKO can explain the differences between them in plain English. A roofer who only installs one brand and cannot explain why is not giving you options, they are giving you their inventory.
Common Mistakes to Avoid
- Hiring the first roofer who returns your call. In San Francisco, roofing demand is high and good crews are booked out. That does not mean you settle for whoever answered the phone. Run the vetting sequence anyway.
- Accepting a verbal estimate. A roofer who will not put the price in writing is not giving you a price. They are giving you a starting point for negotiation later.
- Skipping the CSLB check because “the company seems legit.” Looking legit is not a license status. The database takes two minutes, and it has the actual legal record.
- Not asking about permits in San Francisco specifically. SF has its own inspection process, and an unpermitted roof can complicate a future home sale. Ask who pulls the permit and who schedules the inspection.
- Paying more than 10 percent upfront. California law caps the down payment for home improvement work at 10 percent or $1,000, whichever is less. Anyone asking for more is violating state law.
- Choosing a bid because it is the lowest. In a three-bid comparison, the lowest number is usually missing something. Compare line items, not bottom lines.
- Not getting the guarantee in writing. A verbal promise to “come back if something goes wrong” is worth the paper it is not written on. Insist on a written guarantee with a specific duration and specific coverage.
See the difference
Before
After
Before
After
Before
AfterWhen to Call a Professional
Some roofing questions do not need a professional. If you want to know whether your gutters need cleaning, a ladder and a quick look will tell you. But certain situations demand a trained roofer, and in San Francisco, those situations come up more often than homeowners expect. Visible shingle granules in your downspouts, water stains on your ceiling after a storm, daylight visible through your roof deck in the attic, sagging areas on a flat roof, or flashing that has pulled away from vents or chimneys are all signs of real problems. Flat roofs in the Sunset and Richmond develop ponding water that a non-expert will not recognize as a problem until it leaks. If you are seeing any of these warning signs, call Brennan Roofing Co San Francisco for a roof inspection. We offer free estimates in San Francisco, and the inspection gives you a written assessment before any work is discussed. Call (831) 318-8819 to schedule.
Frequently Asked Questions
A new roof in San Francisco typically costs between $12,000 and $30,000 for a standard composition shingle roof on a single-family home, with flat roofs running higher due to membrane material costs. The final number depends on roof size, pitch, number of layers being removed, and whether the decking needs repair. Call (831) 318-8819 for an exact quote with a written price before any work starts.
Yes, roofing work in San Francisco generally requires a permit through the Department of Building Inspection, and the contractor should pull it and schedule the inspection. The contract should state in writing who is responsible for the permit. At Brennan Roofing Co San Francisco, we handle the permit and the inspection as standard practice.
Go to the CSLB website, enter the contractor’s license number in the license check tool, and confirm the license is active and classified as C-39 Roofing. Check the workers’ compensation field and the bond field on the same page, and confirm the name on the license matches the name on your contract.
The biggest red flag is a contractor who will not give you a written price before any work starts. A legitimate roofer does the math up front and puts the number on paper. Anyone who will not do that is planning to change the price later. The second biggest red flag is a bid that comes in far below the others, because it is usually missing a permit, insurance, or materials line.
A standard shingle roof replacement on a single-family home typically takes two to five working days, depending on roof size, pitch, and weather. San Francisco fog and rain can add days, especially in the Sunset and Richmond, and your contract should state how weather delays are handled in writing.
Call a roofing contractor who handles repairs and ask for a roof repair in San Francisco. A temporary patch or tarp can stop the water while you plan the full replacement, and a written estimate for the full job should be available before you commit to anything. At Brennan Roofing, every repair and installation is guaranteed in writing for one full year under the 365-Day Done Right Promise.
The Bottom Line
Hiring a roofer in San Francisco is a process of elimination. You eliminate anyone whose C-39 license does not check out on the CSLB database. You eliminate anyone who will not say in writing who will physically be on your roof. You eliminate anyone who will not put a detailed, line-item price on paper before work starts. You eliminate anyone who skips the permit line or dodges the guarantee question. What is left, if you follow the sequence, is a short list of contractors who operate the way a roofing company should operate: licensed, insured, accountable, and willing to put everything in writing. Brennan Roofing Co San Francisco home has been serving the city under The Garrison Standard since 2000, and we would rather lose a job than cut a corner. Call (831) 318-8819 to schedule your free estimate.
Written by Travis Oakley, Owner at Brennan Roofing Co San Francisco, serving San Francisco since 2000. For more guides & resources, visit our blog.