TL;DR

Roofing fraud in San Diego County follows the same playbook year after year. Someone knocks on your door after a wind event, quotes a price that sounds too good, asks for a big deposit in cash, and disappears before the work is done. There are ten specific warning signs that catch almost every bad actor before you sign anything. Verify the CSLB license on the state’s free lookup tool. Never pay more than 10% or $1,000 down (whichever is less), because that’s California law. Get every promise in writing. Don’t sign on the spot. If a contractor passes all ten checks, you’ve probably found a good one.

Why San Diego attracts roofing scams

A few things about San Diego County make it a target for roofing fraud, and it’s worth understanding why so you can spot the pattern before it lands on your porch.

The climate hides problems. Mild winters and low annual rainfall mean a roof can leak slowly for years without obvious damage inside the house. Homeowners often don’t know there’s an issue until a single Pineapple Express storm in January exposes it. That delay creates a window where door-knockers can show up after a weather event and claim damage you can’t easily verify.

Home values are high. The median home price across most of the county sits well into seven figures, which means roof replacements run into five-figure territory. A scammer who collects three or four cash deposits in a week can clear more money than a working contractor makes in a month.

Storm-chasers travel here. After any significant wind, hail, or atmospheric river event, out-of-state crews drive trucks down from Arizona, Nevada, and Texas. Their license plates give them away if you know to look. They knock on doors in neighborhoods where the storm hit hardest, offer to inspect the roof for free, and find damage whether it exists or not.

The state government has tried to push back. The Contractors State License Board runs sting operations, publishes enforcement actions, and maintains a free public lookup tool. Filing a complaint is free. The CSLB regularly issues citations and stop-work orders against unlicensed operators in San Diego County. But enforcement happens after the damage is done. Prevention happens at your front door.

The 10 red flags

Each one is a single signal. Two or three at once means walk away. Here they are with what to do about each.

#Red flagWhy it mattersWhat to do
1No CSLB license, expired license, or wrong classificationUnlicensed work voids your homeowner’s insurance, exposes you to liability if a worker gets hurt, and leaves you with no recourseLook up the license on cslb.ca.gov before any contractor sets foot on your roof
2Demanding more than 10% depositCalifornia law caps roofing deposits at 10% of the contract price or $1,000, whichever is lessRefuse to pay more, and report the request to the CSLB
3Pressure to sign todayLegitimate contractors give you time to compare bids and check referencesTake 48 hours minimum, no exceptions, no matter what discount they offer
4Verbal estimates or no written contractYou can’t enforce a promise that doesn’t exist on paperRequire a written contract listing scope, materials, timeline, and warranty before any work or payment
5Door-knocker after a stormReputable San Diego roofers don’t canvass neighborhoods after weather eventsPolitely close the door and call a contractor you found through your own research
6Out-of-state license platesStorm-chasers from Arizona, Nevada, and Texas follow weather events into SDAsk where the truck is registered and confirm a local physical address
7No physical local addressA PO box or “we’ll come to you” address means there’s nowhere to find them if things go wrongLook up the address on Google Maps before signing anything
8Refuses to pull a permit, or asks you toRoof replacements over 100 square feet require a permit in most SD jurisdictions, and pulling it is the contractor’s jobIf they want you to pull it, they’re hiding something from the city, or they aren’t actually licensed
9Asking for full payment upfrontNo legitimate contractor needs the full job paid before materials arrivePay the legal deposit, then pay milestones tied to completion stages
10Aggressively bad-mouthing other contractorsA confident contractor sells their own work, not against the competitionAsk for their own references and let those speak

Red flag 1: No CSLB license or expired license

Every contractor performing work over $500 in California, labor and materials combined, has to hold an active license from the Contractors State License Board. For roofing, the classification you want to see is C-39 Roofing. A General Contractor B license can perform roofing work as part of a larger project, but a C-39 is the specialist license.

The license lookup is free and takes about a minute. Go to cslb.ca.gov and enter the contractor’s name, license number, or business name. You’re looking for active status, the C-39 classification, valid workers’ compensation insurance, and a clean bond record.

If they can’t or won’t give you the license number, that’s the whole conversation right there.

Red flag 2: More than 10% deposit

This one is law, not opinion. California Business and Professions Code Section 7159.5 caps the down payment on any home improvement contract at 10% of the contract price or $1,000, whichever is less. A roofer asking for 30%, 50%, or “half upfront for materials” is either ignorant of state law or banking on you being ignorant of it. Neither is a good sign.

You’ll see this red flag dressed up in different ways. “We need the deposit for the manufacturer to lock in pricing.” “Our supplier requires payment before shipping.” “A qualified roofer can give you a discount if you pay more upfront.” None of those override the law.

Red flag 3: Pressure to sign today

The phrase “today-only pricing” is the single most reliable scam indicator in home improvement. Roofing materials don’t change price between Tuesday and Thursday. A legitimate quote is good for at least a week, usually thirty days. If the contractor needs an answer before they leave your driveway, the question is what they’re trying to keep you from doing in that 48 hours. The answer is usually checking their license, reading their reviews, or comparing their price to two other bids.

Red flag 4: Verbal estimates only

If a contractor tells you a price standing in your living room and doesn’t follow up with a written, itemized estimate, you have nothing to enforce. California law actually requires written contracts for home improvement work over $500, and the contract has to include specific elements: contractor name, address, license number, total price, payment schedule, start and completion dates, scope of work, and a notice of cancellation rights.

A contractor who hands you a one-line price on the back of a business card isn’t going to be the contractor who shows up with a permit and a crew.

Red flag 5: Door-knocker after a storm

After every significant San Diego weather event, the same pattern repeats. Crews fan out into neighborhoods that took the heaviest wind or rain. They offer to climb up and inspect the roof for free. They come down with photos of damage and a quote. Sometimes the damage is real and they caused it during the inspection. Sometimes the photos are from another house entirely.

Real local roofers do not do this. Their phones ring after storms because their existing customers refer them. They don’t need to canvass. The full breakdown on finding roof replacement near you in San Diego goes deeper.

If someone shows up uninvited after a storm and you’re worried about your roof, thank them, close the door, and call a contractor whose name you found yourself.

Red flag 6: Out-of-state license plates

San Diego County storm-chasers usually drive in from Arizona, Nevada, and Texas. They might rent a local PO box, but the truck in your driveway tells the real story. Walk out and look at the plates before you let anyone on a ladder. If they’re not California plates, ask why. The answer should make sense and check out against their CSLB record.

This isn’t xenophobia. Plenty of out-of-state companies operate legitimately. But when out-of-state plates show up on the same day as a storm, that’s the pattern.

Red flag 7: No physical local address

A PO box isn’t an address. A virtual office isn’t an address. A truck and a phone aren’t an address. Real local roofing companies have somewhere you could show up on a Tuesday morning. Look up the address on Google Maps before you sign. If the satellite view shows a UPS Store or a residential apartment, ask questions.

Want a local benchmark? See how we evaluate options in our guide to choosing a roofing contractor in Poway.

Red flag 8: Permit refusal

In San Diego County, most roof replacements require a building permit. The exact threshold varies by jurisdiction. The City of San Diego requires permits for re-roofing of more than 100 square feet. Unincorporated county areas, Carlsbad, Encinitas, Escondido, Chula Vista, and others all have their own permitting offices, but the requirement is similar.

Pulling that permit is the contractor’s job. They submit the plans, pay the fee, and schedule the inspection. When a contractor tells you the job doesn’t need a permit (and it does), or asks you to pull it yourself, the reason is usually one of three things. They aren’t licensed. Their license is suspended. Or they don’t want the city looking at the work.

Permits protect you. The inspection is a free second opinion on the work. If a contractor wants to skip it, that’s the answer.

Red flag 9: Full payment upfront

A legitimate roofing job has a payment schedule. Deposit at signing (capped by law, see red flag 2). A progress payment when materials are delivered or the tear-off is complete. Final payment after the city inspection passes and you’ve walked the job.

A contractor who needs the entire job paid before any work happens is asking you to fund their next scam. Once your money is in their account, you have no recourse and they have no reason to come back.

Red flag 10: Trash-talking other contractors

Confident contractors don’t need to tear down competitors. They show their own license, their own references, their own warranty, and let you decide. When someone spends 20 minutes telling you why every other roofer in town is a crook, the question is what they’re distracting you from. Usually it’s that they can’t compete on price, workmanship, or reputation, so they’re trying to compete on fear.

What an honest contractor looks like

The flip side is worth seeing in one place. Here’s what good looks like.

AspectLegitimate contractorScam contractor
LicenseProvides CSLB number unprompted, C-39 activeVague about license, or “in process,” or “my partner has the license”
InsuranceProvides certificate of liability and workers’ comp on request”We’re insured, don’t worry about it”
AddressPhysical local office or yard, listed on contractPO box, no address, or out-of-area
Deposit10% or $1,000, whichever is less30 to 100% upfront
ContractMulti-page document with scope, materials, timeline, warrantySingle page or handshake
PermitsPulls permits, schedules inspectionsSkips permits or asks you to pull them
TimelineGives a realistic window, usually one to three weeks out”A qualified roofer can start tomorrow”
ReferencesProvides 3 to 5 recent local customers willing to talkVague references, no contact info
ReviewsGoogle, BBB, Diamond Certified, Yelp, all consistentNo reviews, only reviews on their own website, or reviews that all sound the same
CommunicationReturns calls, written follow-up after meetingsDisappears between conversations, then high-pressure

A good contractor will not flinch when you ask any of these questions. They’ll often volunteer the information before you ask, because they know the homeowners who do their homework are the customers they want.

How to verify a CSLB license, step by step

This is the single most valuable thing you can do. Five minutes of work saves entire jobs from going sideways.

  1. Go to cslb.ca.gov and click “Check a License.”
  2. Search by license number, business name, or personal name. If the contractor gave you a number, use that.
  3. On the results page, confirm the status is Active. Anything else (Expired, Suspended, Revoked) is a stop.
  4. Confirm the classification includes C-39 Roofing, or a B General Contractor license if they’re doing roofing as part of a larger remodel.
  5. Check the bond status. Every licensed contractor in California must maintain a $25,000 contractor’s bond. If it’s expired or canceled, that’s a problem.
  6. Check workers’ compensation insurance. If the company has employees, they must carry it. If they claim to be exempt because they’re a sole owner with no employees, that’s allowed but worth asking about, especially if you see a crew show up.
  7. Scroll down and check for citations, judgments, or complaints. A clean record is what you want.
  8. Compare the business name and address on the CSLB record to what’s on the proposal in front of you. Mismatches are common in scams.

If anything looks off, you can call the CSLB at 800-321-CSLB and ask them to verify directly. They will.

What California law says about deposits

California Business and Professions Code Section 7159.5 is the deposit law. The key language: a contractor cannot ask for or accept a down payment in excess of 10 percent of the contract amount or $1,000, whichever is less. This applies to home improvement contracts, which covers virtually all residential roofing work.

There’s one limited exception. Contractors who post a “blanket performance and payment bond” or similar can take larger deposits. In practice, almost no residential roofer in San Diego County uses this structure, so if a contractor invokes it, ask to see the bond paperwork and verify it.

Violating the deposit law is grounds for a CSLB complaint and possible license suspension. You don’t have to argue with the contractor about it. You just say “California law caps the deposit at 10%, so that’s what I’m paying,” and if they push back, you have your answer about who they are.

For full context on what a roof actually costs and how those numbers translate into payment schedules, see our breakdown of new roof costs in San Diego for 2026 and the difference between a real roof inspection and a free estimate. If you’re dealing with an existing insurance claim while shopping contractors, our guide to public adjusters for California roof claims covers when third-party representation makes sense, and insurance non-renewal over roof age covers the carrier-side pressure that’s driving a lot of bad-actor scams in 2026. For more on this, see a free roof inspection in San Diego.

FAQ

How do I tell if a “free roof inspection” is a real inspection or a sales pitch? A real inspection includes photos of every slope, a written report, identification of materials and approximate remaining life, and notes on any active issues. A sales pitch is a person on your roof for ten minutes who comes down with a quote and no documentation. If you can’t read the inspection later without the salesperson present, it wasn’t an inspection.

Is it normal for a roofer to ask for any money before starting work? Yes. A deposit at signing is standard, but California caps it at 10% of the contract or $1,000, whichever is less. After that, payments should be tied to milestones: materials delivered, tear-off complete, installation complete, final inspection passed. The final payment should never be due before the city inspection signs off.

What’s the difference between a C-39 and a B license? C-39 is the specialty classification for roofing contractors. B is General Contractor, which allows roofing work when it’s part of a larger project involving at least two unrelated trades. For a straight roof replacement, you want a C-39. A B license alone, with no roofing experience, is a yellow flag worth asking about.

Should I be worried if a contractor doesn’t have a website? Less than you’d think. Plenty of long-running local roofers built their business on referrals and never invested in a website. What matters more is the CSLB record, the physical address, and references from real recent customers. The website is a convenience, not a credential.

What if I already signed a contract and now I’m worried? California gives you a three-day right to cancel any home improvement contract signed in your home. The contract must include written notice of this right. If you cancel within 72 hours, you owe nothing. Send the cancellation in writing (email is fine, certified mail is better) and keep a copy.

How long does it take to get a CSLB complaint resolved? The CSLB acknowledges complaints within a few weeks, but full investigations can take months. The faster path for getting money back is small claims court (for amounts up to $12,500) or civil court for larger amounts. File the CSLB complaint anyway, because it goes on the contractor’s public record and protects the next homeowner.

Where can I check reviews that aren’t on the contractor’s own website? Google Business, the Better Business Bureau, Diamond Certified, Yelp, and Nextdoor are the main ones. Cross-reference at least three of those. Reviews that all sound the same, all five stars with no detail, or all posted within the same week are warning signs.

If you’ve already been scammed

If a contractor took your money and disappeared, did substandard work, or violated the contract, you have options. They take time, but they work.

StepWhat to doTimeline
1Document everything: contract, payments, texts, photos, voicemailsSame day
2File a complaint with the CSLB at cslb.ca.gov/Consumers/Filing_A_ComplaintWithin 4 years of completion or discovery of the issue
3File a complaint with the BBB if they’re a memberAnytime
4File a police report if criminal fraud is involved (took money, did no work, lied about license)As soon as possible
5File in small claims court for amounts up to $12,500Within statute of limitations (4 years for written contracts in CA)
6Consult an attorney for larger amounts or complex casesFree consultations available through the SD County Bar Association
7Make a claim against the contractor’s bond if they’re licensed (every CA contractor holds a $25,000 bond)File through the CSLB
8Report to the CA Attorney General’s consumer protection divisionAnytime

The CSLB takes consumer protection seriously and runs regular sting operations against unlicensed contractors in San Diego County. Your complaint contributes to that enforcement record even if it doesn’t get your money back directly.

The bottom line

Most San Diego roofing contractors are honest. The ones who aren’t follow a predictable playbook, and almost every step of that playbook has a tell. Ten red flags, three documents to ask for (license, insurance, written contract), one website to check (cslb.ca.gov), and a willingness to take 48 hours before signing anything. That combination filters out almost every bad actor.

If you want a second opinion on a quote, a roof inspection that isn’t a sales pitch, or just a contractor who passes all ten checks, reach out to the roofing team. We’ll show you the license number, the insurance, the references, and the written estimate before we ask for anything. That’s how it should work.

Related reading: how to choose a roofing contractor in Poway · roof inspection vs. free estimate · best roofing brands in San Diego · roof repair costs in San Diego · new roof costs for 2026