Last updated October 17, 2026
Metal roofing
Architectural shingles
Tile roofing
Owens CorningFree roof inspection with deck photos before we talk money - GAF and Owens Corning certified installation
How to Hire a Roofing Contractor in San Diego: A Step-by-Step Guide
The California Contractors State License Board logged more than 19,000 complaints against unlicensed contractors statewide in a recent two-year period, and roofing consistently ranks in the top three trades for complaints. Most of those homeowners thought they’d done their homework. They checked a box, got a handshake, and handed over a deposit to someone who never finished the job. Before you spend $12,000 to $30,000 on a new roof in San Diego, there are three verification steps that separate the roofers who will be here in ten years from the crews who won’t return your call in ten weeks. This guide walks you through each one, in order, with the exact questions to ask and the documents to demand.
Styles & brands we work with




Quick Answer
Hiring a roofing contractor in San Diego should follow a three-part verification sequence: confirm a current C-39 roofing license and active status on the CSLB website, request a workers’ compensation certificate of insurance directly from the insurer, and get a written contract with itemized scope, brand-specific materials, a milestone-based payment schedule, lien waiver language, and a named workmanship warranty term. Then confirm exactly who will show up at your door before they arrive. Skip any of these steps and you’re trusting a deposit to someone you haven’t actually verified.
Table of Contents
- Step 1: Verify the C-39 License on the CSLB Website
- Step 2: Get the Insurance Certificate From the Insurer, Not the Roofer
- Step 3: The Five Contract Clauses That Protect You
- Step 4: Know the Name and Face of Who Shows Up
- San Diego Red Flags: What a Bad Roofer Looks Like Before You Sign
- What Roofing Materials Actually Cost in San Diego Right Now
- Common Mistakes to Avoid
- When to Call a Professional
- Frequently Asked Questions
- The Bottom Line
Step 1: Verify the C-39 License on the CSLB Website
Every legitimate roofing contractor in California must hold a C-39 Roofing Contractor license issued by the Contractors State License Board. Not a general contractor license. Not a handyman registration. A C-39 specifically. The license number should appear on the roofer’s business card, their website, their truck, and their estimate. If it doesn’t appear anywhere, that’s your first red flag. If it does, your job is to verify it yourself, in real time, on the CSLB’s license lookup tool.
Here’s exactly how to check a license:
- Go to cslb.ca.gov and click “Check a License” under the Consumers tab.
- Enter the license number or the business name.
- Confirm the license classification reads C-39 Roofing, not a different classification.
- Check the status field. It must say Active. Not suspended, not expired, not “inactive.”
- Look for “clear” next to the license status. A license can be active but carry a suspension or disciplinary action pending. Active and clear is what you want.
- Confirm the business name on the license matches the name on the contract. If the estimate says “ABC Roofing” but the license is under “XYZ Construction,” ask why.
Here’s what most San Diego homeowners miss: a license being “active” doesn’t mean the contractor is in good standing. A license can be active with a worker misclassification judgment, an outstanding complaint, or a bond cancellation pending. The status line on the CSLB page includes this information, but you have to read past the first word. Look for phrases like “suspended,” “revoked,” “expired,” or “bond not on file.” Those are disqualifying. If you see a complaint disclosure or arbitration award listed, ask the contractor about it before you sign anything. A reputable roofer will explain it. A storm chaser will get defensive or change the subject.
One more San Diego-specific note: the CSLB requires contractors to include their license number in all advertising. That includes Craigslist posts, Yelp pages, and vehicle lettering. If someone knocks on your door in Clairemont or La Mesa and hands you a flyer with no license number, the state already considers that a violation. That tells you everything you need to know before you even look them up.
Step 2: Get the Insurance Certificate From the Insurer, Not the Roofer
Here’s the second mistake we see repeated across San Diego County, from Oceanside to Chula Vista: homeowners ask the contractor for proof of insurance, the contractor hands over a certificate, and everyone moves on. That certificate means almost nothing if it wasn’t issued directly by the insurance company. A certificate of insurance is easy to fake, easy to let lapse, and easy to generate from a policy that was cancelled three months ago. The document you want is a certificate that comes from the insurer or the insurer’s agent, with you listed as the certificate holder. That means the insurance company knows you exist and will notify you if the policy cancels before the job finishes.
What to request and what to look for:
- Ask the roofer for their insurance agent’s contact information, then call the agent yourself. Say you need a certificate of insurance issued with you listed as the certificate holder for the project at your address.
- On the certificate, confirm the policy effective and expiration dates cover your project timeline. Roof replacements in San Diego typically take 3 to 7 days, but repairs can stretch longer if decking replacement is needed.
- Look for workers’ compensation coverage specifically. In California, roofers must carry workers’ comp if they have any employees. If a worker falls off your roof and the company doesn’t have workers’ comp, your homeowner’s insurance is the next stop. That’s a claim on your policy, and it’s avoidable.
- Confirm general liability limits of at least $1 million per occurrence. This covers damage to your property, and most reputable roofers carry $1 million to $2 million.
- Check that the named insured on the certificate matches the name on the CSLB license and the contract. Three different names means three different entities, and that’s a problem.
We’ve seen homeowners in San Diego’s older neighborhoods, places like North Park and South Park with steep pitches and tight access, discover after a fall that the roofer’s workers’ comp policy lapsed months before the job started. The owner of the house is the one left negotiating with their own insurance company. Spending ten minutes on the phone with an insurance agent before you sign prevents that. Roofing is genuinely dangerous work, and no homeowner should carry the liability for someone else’s crew.
Step 3: The Five Contract Clauses That Protect You
A verbal quote is not a contract. A text message is not a contract. An email thread is not a contract. The piece of paper you sign should include five specific clauses, and if any of them are missing, don’t sign until they’re added. None of these are negotiable. Any legitimate San Diego roofing contractor will include them without being asked.
- Written scope of work. This should describe in plain English what is being done: tear off one layer of existing shingles, inspect and replace damaged decking as needed, install new underlayment, install new asphalt shingles on all roof planes, replace all flashing at penetrations and valleys, haul away all debris. If a line item says “decking as needed” without a per-sheet price, see the red flags section below.
- Materials spec by brand and grade. “Architectural shingles” is not a spec. The contract should name the manufacturer (GAF, CertainTeed, Owens Corning, Boral) and the specific product line (for example, GAF Timberline HDZ, not just “GAF shingles”). It should also specify underlayment type, ice and water barrier zones, flashing material, and ridge vent style. When the shingles arrive on your driveway, you want to be able to check the bundle labels against the contract.
- Payment schedule tied to milestones. A deposit may be required to secure the project, but the rest should be tied to completion milestones, not calendar dates. For example: 30% at contract signing, 40% at tear-off and dry-in, 30% at final inspection and walkthrough. Never pay 100% upfront. Never agree to a schedule where the final payment is due before you’ve walked the roof with the contractor and the city inspection has passed.
- Lien waiver requirement. The contract should state that the contractor, all subcontractors, and all material suppliers will provide lien waivers upon payment. In California, if a subcontractor doesn’t get paid, they can file a mechanics lien against your home, even if you paid the general contractor in full. A lien waiver is a signed document saying “we got paid, we waive our right to lien.” It’s the difference between paying once and paying twice.
- Workmanship warranty term. The contract should name a number: 5 years, 10 years, 365 days. Whatever it is, it needs to be in writing, and it should specify what “workmanship” covers. Manufacturer warranties cover the shingles themselves. Workmanship warranties cover installation errors: leaks at flashing, improper nailing, valleys that fail. If the roofer won’t put a workmanship warranty term in writing, they’re telling you something about how long they expect their work to last.
Every repair and installation we do at Mercer Roofing Co San Diego home includes a written price before any work begins and a written guarantee on every repair. The 365-Day Done Right Promise means if the work isn’t right within a year, we make it right. That’s the bar you should hold any roofer to.
Step 4: Know the Name and Face of Who Shows Up
You’ve verified the license. You’ve confirmed the insurance. You’ve signed a contract with all five protective clauses. Here’s the step almost no San Diego homeowner takes: you ask who, specifically, by name, will be walking through your front door or climbing onto your roof on the day of the job. You ask for a photo. You confirm it before they arrive.
This feels awkward the first time you do it. It shouldn’t. You’re about to give someone access to the outside of your home, often when you’re home alone or when your kids are home from school. For older homeowners in neighborhoods like Rancho Bernardo, Mission Valley, or Point Loma, opening the door to an unknown person is a genuine concern, and “he said he was with the roofing company” is not a verification method. It’s a hope.
How to ask without it feeling strange:
- “Who will be leading the crew on site, and can you send me their name and a photo before they arrive?”
- “When your technician gets here, what ID will they be carrying? Can they show it at the door?”
- “Will the same person who did the estimate be the one doing the work, or will it be a different crew?”
A professional company will answer these questions without hesitation because they already have a system for it. Under the Threshold Verified standard, every technician who works on a Mercer Roofing Co San Diego job is background-checked and identity-verified, and we send their name and photo before they arrive. When they knock on the door, they’re in a clean marked uniform with a photo ID badge. That’s the standard, and it exists because of exactly the concern this guide is about.
If a roofer balks at telling you who’s coming to your house, or gives you a vague “one of our guys” answer, that’s information. Use it.
San Diego Red Flags: What a Bad Roofer Looks Like Before You Sign
San Diego has a particular vulnerability: our roofing season runs year-round, and our mild climate means roofs age slowly and fail suddenly, especially after winter rain events. That creates a market for out-of-town crews who follow the storms. They’ll work a neighborhood for a few weeks, take deposits, do whatever work they do, and move east. By the time the first leak shows up, they’re listing their phone number in a different state.
Specific red flags that show up in San Diego more than anywhere else:
- Post-storm door-knockers. After a heavy rain event in areas like Santee, Spring Valley, or El Cajon, you’ll see crews walking door to door offering “free roof inspections.” Some are legitimate. Many are not. A legitimate company doesn’t need a storm to find work in San Diego.
- “Today only” pricing. A verbal quote with pressure to sign before they leave is not a quote, it’s a tactic. Real roofing estimates hold for weeks, not hours. We give written prices before any work starts, and nobody at Mercer Roofing Co San Diego has ever used the phrase “today only.”
- Vague allowance line items. A contract that says “decking allowance included” without specifying what happens if the decking is worse than expected. Roof decking on older San Diego homes, especially in coastal neighborhoods where fog and marine air accelerate rot, frequently needs more replacement than the estimate assumes. Your contract should specify the per-sheet replacement cost in writing so you know the math before it happens.
- “We’ll work with your insurance.” There’s nothing wrong with roofing contractors who help with insurance claims. There’s a lot wrong with roofers who promise they can “get the whole thing covered” before they’ve seen the roof. Insurance pays for storm damage, not for wear and tear. Anyone promising otherwise is angling for a supplement request that may or may not be approved after you’ve already signed.
- No local address. If the contractor’s “office” is a P.O. box in another city, or they can’t tell you where they’re based, that’s a problem. You want a roofer with a stake in the community, someone who’ll answer the phone in five years because their business address is here, not somewhere else.
At Roofing Company in San Diego, we’ve been part of the Threshold Group family since 2000. Each location is independently owned and operated, but we’re all held to the same Threshold Verified standard: background-checked technicians, photo ID at the door, written pricing before work starts. That’s not a marketing line. That’s a contractual obligation.
What Roofing Materials Actually Cost in San Diego Right Now
You deserve real numbers before you pick up the phone. Prices fluctuate with material costs and demand cycles, but these ranges reflect what we’re seeing across San Diego County in the current market.
| Material | Installed Cost per Square (100 sq ft) | Typical Lifespan in San Diego |
|---|---|---|
| Three-tab asphalt shingles | $350 – $450 | 15 – 20 years |
| Architectural asphalt shingles (GAF, CertainTeed, Owens Corning) | $450 – $650 | 25 – 30 years |
| Concrete tile (Boral, Eagle) | $800 – $1,200 | 50+ years |
| Standing seam metal | $900 – $1,400 | 40 – 60 years |
For a typical 1,800 square foot single-story home in San Diego, that translates to roughly $9,000 to $14,000 for architectural shingles, $16,000 to $25,000 for concrete tile, and $18,000 to $30,000 for standing seam metal. Add $2,000 to $5,000 if full decking replacement is needed, which is more common in coastal neighborhoods where salt air and fog keep decking damp.
One detail San Diego homeowners often miss: concrete tile is the most common roofing material in San Diego, and it’s heavy. If you’re replacing a tile roof with tile, the structure was probably built for the load. If you’re switching from tile to asphalt, or asphalt to tile, that’s a structural question, and it needs to be answered before you get a final price. A professional Roof Installation in San Diego includes a structural check as part of the estimate process.
Common Mistakes to Avoid
- Skipping the license lookup entirely. The CSLB website takes three minutes to use. Every year, homeowners in San Diego hand deposits to unlicensed operators because they “seemed professional.” Professional is a vibe. A license is a fact.
- Accepting a certificate of insurance from the roofer’s hand without verifying it with the insurer. A certificate is a copy pasted onto letterhead unless the insurer confirms it’s active. Call the agent. It’s a phone call that could save you a lawsuit.
- Signing a contract without a materials spec. “Premium shingles” can mean a $55-per-square product or a $110-per-square product. If the contract doesn’t name the brand and product line, you’re signing an open check.
- Paying more than a reasonable deposit upfront. California law limits deposits for home improvement contracts to $1,000 or 10% of the project cost, whichever is less. Anyone asking for 50% upfront is already violating state law.
- Choosing the lowest bid by a wide margin. If four roofers quote $14,000, $15,500, $13,800, and $8,900, the $8,900 one isn’t a deal. They’re either cutting labor, cutting materials, or cutting insurance. None of those are things you want cut.
- Not asking who will show up. You know who you hired. You should know who’s actually climbing onto your roof. Name, photo, badge. Before they arrive.
- Keeping an old roof alive with repeated patches. At some point, patchwork costs more than replacement. A Roof Repair in San Diego professional can tell you honestly where that line is. Repeated repairs on a roof past its service life is just paying rent on a roof you’ll eventually replace anyway.
When to Call a Professional
Some roofing issues are clear emergencies, and you’ll know them when you see them: water coming through a ceiling, shingles scattered across the yard after a wind event, a tree limb resting on the roof. Call a professional immediately. Other signs are slower and easier to rationalize away: granules collecting in gutters, shingles curling at the edges, moss growing in shaded sections, daylight visible from the attic. None of these fix themselves, and all of them are cheaper to address before water finds its way inside. If you’re in San Diego and want a straight answer about what you’re looking at, Mercer Roofing Co San Diego offers free estimates. Call (619) 810-5520 and someone will answer. Not a voicemail, not a callback form. A person.
Frequently Asked Questions
For a typical 1,800 square foot single-story home, expect $9,000 to $14,000 for architectural asphalt shingles, $16,000 to $25,000 for concrete tile, and $18,000 to $30,000 for standing seam metal. Final cost depends on roof pitch, access, decking condition, and the number of roof planes. For an exact price on your roof, call (619) 810-5520 for a free estimate.
Go to cslb.ca.gov, click “Check a License,” and enter the license number or business name. Confirm the classification is C-39 Roofing, the status is Active, and there are no suspensions or disciplinary actions on file. The license should match the name on the contract. If you can’t find the license, don’t hire the contractor.
A C-39 is the California license classification specifically for roofing contractors. It means the contractor passed a trade exam, holds a contractor’s bond, and is authorized to perform roofing work in the state. A general contractor license (Class B) does not qualify someone to specialize in roofing. Always verify the C-39 designation specifically.
California law limits home improvement contract deposits to $1,000 or 10% of the project cost, whichever is less. Never pay in full upfront, and never agree to a payment schedule where the final payment comes due before the work is complete and the city inspection has passed. A legitimate San Diego roofer will work with milestone-based payments.
Most asphalt shingle roof replacements in San Diego take 3 to 7 days, depending on size, access, and how much decking needs replacement. Tile and metal roofs typically take longer, often 7 to 14 days. Weather delays are rare in San Diego, but the work shouldn’t be rushed. A proper tear-off, dry-in, and installation takes the time it takes.
Homeowner’s insurance covers sudden, accidental damage from events like storms, falling trees, or fire. It does not cover normal wear and tear, age, or maintenance issues. If you’re in San Diego and wondering whether your roof damage qualifies, get an honest assessment from a licensed roofer first, then decide whether to file a claim. Don’t sign with anyone who promises insurance coverage before inspecting the roof.
The Bottom Line
Hiring a roofing contractor in San Diego isn’t about finding the cheapest price or the friendliest salesperson. It’s about verification: confirm the C-39 license is active and clear on the CSLB site, get the insurance certificate directly from the insurer with you named as certificate holder, sign a contract with the five protective clauses, and know the name and face of who’s coming before they knock. Do those four things in order, and you’ve eliminated most of the risk that costs San Diego homeowners thousands of dollars every year. Skip any one of them, and you’re betting your house on someone’s word. Mercer Roofing Co San Diego has been part of the Threshold Group family since 2000, and every job includes written pricing and the 365-Day Done Right Promise. Call (619) 810-5520 if you want help with your roof.
Written by Grant Whitlock, Owner at Mercer Roofing Co San Diego, serving San Diego since 2000.
See the difference
Before
After
Before
After
Before
After