If your roof is bone dry during a Tuesday drizzle and then drips through the ceiling the one Saturday a year San Diego gets a real storm, you don’t have a roof problem. You have a drainage problem, a flashing problem, or a wind-driven rain problem. Three different categories. Different fixes. Different price tags.
Whole-roof failure (worn-out shingles, cracked underlayment across the whole field) leaks every time it rains, not just in storms. So the fact that yours is rain-event selective is good news. The bad news is the homeowner-side diagnosis is harder, because the failure point only reveals itself in conditions you can’t safely inspect during.
Here’s the short version: in San Diego, six causes account for almost every heavy-rain-only leak we hear about. Most of them are repair-scale, not replacement-scale.
TL;DR: The 60-Second Answer
Heavy-rain-only leaks happen because some part of your roof system has just enough defense to handle low water volume and low wind, but not enough to handle a real storm. The most common culprits in San Diego, in order of frequency:
- Marginal flashing failure at a chimney, skylight, or wall transition
- Wind-driven rain pushing water sideways into gable ends, vents, or ridge caps
- Overwhelmed valley flashing with a debris dam upstream
- Flat-roof ponding that rises above the membrane lap height
- Backed-up gutters spilling water under the drip edge
- A single cracked tile or shingle that only leaks once it’s saturated
The rest of this guide walks each one, what it costs to fix, and how to tell which one you have without climbing on a wet roof.
| Cause | How Often in SD | Typical Repair Cost | Fix Difficulty |
|---|---|---|---|
| Marginal flashing failure | Very common | $400 to $1,800 | Moderate |
| Wind-driven rain at gable / vents | Common | $300 to $1,400 | Easy to moderate |
| Overwhelmed valley flashing | Common | $500 to $2,200 | Moderate |
| Flat-roof ponding above lap | Common on flat roofs | $600 to $3,500 | Moderate to hard |
| Backed-up gutters | Very common | $250 to $900 | Easy |
| Cracked tile or shingle | Common | $250 to $700 | Easy |
Why Heavy Rain Reveals Leaks That Drizzle Hides
Two things change in a storm that don’t change in a drizzle: water volume and water direction.
Volume matters because every part of a roof system is rated for some flow rate. A valley that handles a hundred gallons an hour during light rain can be completely overwhelmed at four hundred gallons an hour. The water has nowhere to go, so it backs up, finds the nearest underlayment seam, and comes inside. Same with gutters. Same with scuppers on a flat roof.
Direction matters because most roof flashings are built to repel water coming down. They’re not built for water coming sideways. A Santa Ana-driven storm (rare in San Diego, but they happen) pushes rain laterally at twenty to forty miles per hour. That water hits the underside of shingles, the back of vents, the unexposed leg of a gable rake flashing, places that are dry every other day of the year.
San Diego averages around ten to twelve inches of rain a year, and most of that arrives in a handful of atmospheric river events between December and March. So a heavy-rain-only leak might only show itself two or three times a year. That’s why so many San Diego homeowners go three or four years thinking the problem is fixed when really it just hasn’t rained hard enough to expose it again.
Cause #1: Marginal Flashing Failure
This is the single most common cause we hear described. Chimney flashing, skylight flashing, and wall-to-roof step flashing all live in transition zones where two materials meet at an angle. Water concentrates at those transitions. The flashing’s job is to channel that concentrated flow back onto the roof surface so the shingles or tiles can handle it.
When flashing fails marginally, a popped sealant joint, a corner that’s lifted a quarter inch, a counter-flashing that’s pulled out of its reglet groove, it still works at low volume. Drizzle hits the flashing, runs down, drains off. But once volume picks up, water pools at the failure point and finds the gap.
The tell is location. If your ceiling stain is directly below a chimney, a skylight, a vent pipe, or where a wall meets the roof above it, marginal flashing is your top suspect. The stain may be six to twenty-four inches off-center from the actual failure, because water travels along the underside of the deck before dropping.
Cost in San Diego: chimney flashing rebuild typically runs $600 to $1,800 depending on whether the counter-flashing is set in the masonry or surface-mounted. Skylight flashing reseal is usually $400 to $900. Wall step flashing repair runs $500 to $1,500 depending on how much siding or stucco has to come off to access it.
For deeper coverage on this category, see our guides on chimney flashing repair in San Diego and roof flashing leak repair.
Cause #2: Wind-Driven Rain at Gable Ends and Vents
San Diego doesn’t get a lot of high-wind rain events. But the ones we do get, atmospheric river fronts arriving from the southwest, or a December storm overlapping with a Santa Ana reversal, drive water at angles a normally-designed roof isn’t built for.
Three failure points dominate this category:
Gable rake water entry. The gable end of a roof has flashing called the rake flashing that wraps the edge of the roof deck. In sideways-driven rain, water can be forced up under that flashing, past the drip edge, and onto the underlayment from the wrong direction. Once it’s there, it follows the slope of the deck inward and shows up as a ceiling stain ten or fifteen feet from the actual entry point.
Ridge vent over-saturation. Ridge vents are designed for vertical rain. In horizontal rain, water can be pushed into the vent cavity, past the internal baffle, and into the attic. This is more common on older ridge vents installed before the late-2000s when baffle design improved. If you have an attic that’s wet only after windy storms, look at the ridge vent.
Box vent and turbine vent intrusion. Same physics as ridge vents, smaller scale. Sideways rain enters the vent opening, drips down into the attic, and saturates insulation. The ceiling below stains in a roughly circular pattern.
The diagnostic question: did the leak appear during a storm with sustained winds over fifteen miles per hour? Check the National Weather Service San Diego event archive for the storm in question. If yes, wind-driven entry is on the table.
Cost: rake flashing repair runs $300 to $900 per gable end. Ridge vent replacement with modern baffle design is $400 to $1,200. Box vent reseal is usually under $250.
Cause #3: Overwhelmed Valley Flashing
Valleys are where two roof planes meet to form a downhill channel. They concentrate runoff from two slopes into one path. A valley sized for normal San Diego rain (an inch or two an hour) gets overwhelmed when an atmospheric river drops three or four inches in a few hours.
What usually pushes a valley past its limit isn’t the storm by itself. It’s a debris dam upstream. Leaves from a neighbor’s pepper tree, palm fronds, eucalyptus litter, even tennis balls, anything that lodges in the valley creates a small dam. Below the dam, water is fine. Above the dam, water backs up, rises above the valley’s metal flashing edge, and runs sideways under the shingles or tiles next to the valley.
The tell: the ceiling stain is in a long line parallel to a valley, not at a point. If you can safely look at the valley between storms, you’ll usually see a band of debris or staining that marks where water has been backing up.
A good contractor’s first move is to clear the valley, then check whether the valley metal itself is undersized. Code-minimum valley flashing is 18 inches wide. On steep San Diego pitches with long contributing slopes (common on Carmel Valley and Scripps Ranch homes built in the 90s), 18 inches isn’t enough. A 24-inch or 30-inch valley metal upgrade is sometimes the real fix.
Cost: valley clearing and reseal is $300 to $700. Valley metal replacement runs $1,200 to $2,200 depending on length and whether shingles or tiles need to be lifted on both sides. For tile roof leak diagnosis specifically, see common causes of tile roof leaks in San Diego.
Cause #4: Flat-Roof Ponding That Exceeds Membrane Lap Height
If you have a flat or low-slope roof, this is probably your cause.
Flat roofs aren’t actually flat. They’re supposed to slope about a quarter inch per foot toward a drain or scupper. Over time, and almost always faster in San Diego than spec because of UV exposure, the substrate settles, the slope flattens, and water starts ponding. A small puddle that drains in a day is fine. A puddle that’s still there a week later is not.
The leak mechanism is specific: every flat-roof membrane has laps where two pieces of material overlap and are sealed together. Those laps are typically two to four inches tall. As long as the pond depth stays below the lap, water just sits there. Once the pond depth exceeds the lap height, usually during a sustained storm, water finds the seam and gets through.
That’s why ponding leaks are heavy-rain-only. Light rain doesn’t raise the pond high enough. A real storm does.
The fix is either drainage (add a drain, add scuppers, slope the deck with tapered insulation) or membrane upgrade (recover with a thicker membrane that has a taller lap profile). It’s usually not a small repair.
Cost: drain addition runs $800 to $2,500. Tapered insulation recover on a small area is $2,000 to $5,000. Full flat-roof replacement is a separate conversation, see flat roof replacement cost in San Diego.
Full diagnostic guide here: flat roof ponding water in San Diego.
Cause #5: Backed-Up Gutters Spilling Under the Drip Edge
This is the cheapest cause and the most common one homeowners miss because they assume the water is coming through the roof.
Gutters in San Diego get clogged with eucalyptus pods, palm seeds, and the fine grit that washes off asphalt shingles. When a gutter is partially blocked, light rain still drains. Heavy rain doesn’t. Water backs up, rises above the back lip of the gutter, and runs behind the gutter onto the fascia, and from there, sometimes, under the drip edge of the roof and onto the top of the soffit or into the wall cavity.
The ceiling stain pattern is along the eave, often near a corner where two gutter runs meet. If you can step outside during light rain and watch where the water comes off your gutter, you’ll see it: light rain comes out of the downspout, heavy rain spills over the back.
Fix: clean the gutters, check the slope (a quarter inch per ten feet toward the downspout), repair any spots where the back of the gutter has pulled away from the fascia, and verify the drip edge is properly tucked behind the gutter’s back lip.
Cost: gutter cleaning is $150 to $300. Re-pitching or re-securing gutters is $250 to $600. Drip-edge correction with shingle lift is $400 to $900. See gutter repair cost in San Diego for the full breakdown.
Cause #6: Cracked Tile or Shingle That Only Leaks When Soaked
Tile roofs in San Diego have a hidden vulnerability: the tile itself isn’t the waterproof layer. The underlayment is. The tile sheds most of the water and protects the underlayment from UV. But underlayments have a service life, typically twenty to thirty years for the felt under older tile installs, longer for modern synthetic, and as they age they get brittle.
When a tile cracks (foot traffic from a solar install, a falling branch, a baseball), light rain hits the crack, runs onto the underlayment below, and drains down the slope without finding a hole. Heavy rain saturates the underlayment in that spot. Saturated, brittle felt finally fails. Water comes through.
Same principle on a shingle roof with a single damaged shingle: the layer below holds up under low volume and fails under high volume.
The diagnostic clue is that the leak shows up during a heavy storm and then stops within a few hours of the rain ending, never returns during the next light rain, and then shows up again the next heavy storm. That pattern is almost always a single damaged unit over aging underlayment.
Cost: individual tile replacement is $250 to $500. Shingle patch is $300 to $700. If the underlayment is brittle across a wide area, the conversation may shift toward replacement, see tile roof repair in San Diego.
How to Diagnose During the Storm
The single most useful thing you can do is be home during the next real storm and observe. From inside. Safely.
What to look for:
- Time of first drip. How long into the storm before the leak starts? A leak that starts in the first few minutes is usually flashing or a cracked unit. A leak that starts after thirty or sixty minutes of sustained rain is usually drainage-related (valley dam, flat-roof ponding, gutter backup).
- Drip rate vs. storm intensity. Does the drip speed up when the rain intensifies and slow down when it eases? That’s classic volume-overwhelm, drainage or valley problem.
- Stop-and-start pattern. Does the leak stop within an hour of the rain ending? Probably a flashing or volume issue. Does it keep dripping for hours after the rain stops? Probably saturated insulation or a wider underlayment failure.
- Location of the first drip relative to features above. Use your phone and mark the spot on the ceiling. Then go outside (after the storm) and figure out what’s directly above and within ten feet uphill on the roof.
Take photos and video. Time-stamp them. If you end up filing an insurance claim, this is the gold standard documentation.
For a deeper diagnostic walkthrough, see how to find a roof leak in San Diego.
Why These Get Missed by Dry-Weather Inspections
Most roofers inspect roofs in dry weather. That’s when it’s safe to walk them. But every cause on this list is invisible in dry weather unless you know exactly what to look for.
A clean-looking valley with no debris dam upstream of it looks fine when it’s dry. A flat-roof pond that’s evaporated leaves only a faint mineral ring. A piece of cracked tile in the middle of a roof field, with the crack pointing the wrong way for foot traffic to spot, looks intact. Marginal flashing that’s still sealing in calm conditions looks identical to flashing that fails at thirty gallons a minute.
This is why the standard “we’ll come out and take a look” inspection often comes back with “we didn’t see anything”, and then the next storm leaks again. A real diagnostic visit on a heavy-rain-only leak should include a water test (a controlled hose flood from above, targeting suspected entry points one at a time) and an attic inspection from below looking for staining, mineral trails, and rust marks on nails.
When to Tarp vs. When It’s a Same-Day Emergency
Heavy-rain-only leaks are usually not same-day emergencies. The storm ends, the leak stops, you have weeks of dry weather to schedule a real repair. That’s a big advantage over a continuous leak, you have time to get two or three quotes and choose well.
The exception is if the storm is ongoing and the water volume is enough to be damaging your ceiling, your electronics, or your floors right now. In that case, you’re in active-leak territory and the playbook is different.
| Situation | Action |
|---|---|
| Storm just ended, dripping has stopped, ceiling is stained but intact | Schedule a diagnostic visit in the next week. No tarp needed. |
| Storm ongoing, drip rate under a cup per hour, contained with a bucket | Document everything, schedule a same-week inspection. Tarp only if safe and dry conditions return briefly. |
| Storm ongoing, heavy drip, ceiling bulging or water visible at a light fixture | Active-leak protocol. Tarp if safe, otherwise emergency call. |
| Multiple drip locations appearing during the same storm | Likely a major flashing or underlayment failure. Emergency call. |
If you’re in the third or fourth row, read the active roof leak emergency response guide and call for emergency roof repair now.
The Lift-Truck Visual Test a San Diego Roofer Should Do
Most heavy-rain-only leak diagnoses get nailed with one of two methods: a controlled water test, or a lift-truck visual at the suspected failure point.
The water test is what you’d guess: a helper on the ground runs a hose at the lowest-probability area first, then moves uphill in zones, while the roofer is in the attic watching for the first sign of moisture. Each zone gets ten or fifteen minutes. It’s slow. It works.
The lift-truck visual is less common but underrated. A bucket truck or a tall extension ladder puts a trained eye six to ten feet above the suspected flashing or valley, looking down. From that angle, you can see lifted corners, separated counter-flashing, popped sealant, and undersized valley metal that’s invisible from on the roof itself.
When you’re vetting a roofer for this kind of repair, ask which method they use. If the answer is “we’ll just go up and look,” that’s usually not enough for a leak that hides in dry weather.
How We Help
We’re a connector. We don’t fix roofs. We match San Diego homeowners with vetted local roofers who do diagnostic work on heavy-rain-only leaks the right way, water testing, attic inspection, and lift-truck visuals, not just a walk-around in dry weather. Every contractor in our network is checked for current CSLB license, insurance, and recent customer reviews.
If you’ve got a leak that only shows up in storms and you want a real diagnostic visit, get connected with a vetted San Diego roofer for a free estimate. We’ll usually have someone to you within a few business days, sooner if a storm is on the forecast.
You can also verify any contractor’s license yourself at the CSLB license check. Ask for their C-39 roofing license number before you sign anything.
FAQ
Why does my roof leak in heavy rain but not in normal rain? Because some part of your roof system, flashing, valley, gutter, vent, or a single damaged tile or shingle, has just enough defense to handle low water volume but not high volume. Light rain drains off normally. Heavy rain overwhelms the weakest point and finds an opening. The most common SD culprits are marginal flashing failure, wind-driven rain at gable ends, debris-dammed valleys, ponding on flat roofs, and backed-up gutters.
How do I find the source if it only shows up in a storm? Be home during the next heavy rain and observe from inside. Note the time of first drip, the drip rate vs. storm intensity, the exact ceiling location, and whether the drip stops quickly after the rain ends. Then have a roofer do a controlled water test from above, working in zones, while someone watches the attic. Dry-weather visual inspection alone usually misses heavy-rain-only leaks.
Should I call right away or wait for the next dry day? If the leak has stopped and the ceiling is intact, you can wait a few days and get two or three quotes. If the leak is active and water is pooling, bulging the ceiling, or hitting a light fixture, call for same-day emergency service. Storm-only leaks are usually repair-scale, not emergency-scale, but only after the immediate water is contained.
Will homeowners insurance cover a leak that only happens in storms? California policies typically cover sudden, storm-caused damage but exclude gradual wear and deferred maintenance. A flashing failure during a documented atmospheric river event usually qualifies. A long-term gutter backup that finally caused interior damage often does not. Document the storm, the timing, and the damage thoroughly. See does homeowners insurance cover roof leaks in California for the full coverage breakdown.
Is it safe to tarp the roof myself during a storm? Almost never during the storm itself. A wet roof, especially a tile roof, is dangerously slick, and most heavy-rain leaks don’t justify the fall risk. If you must tarp, wait for a break in the weather, work in daylight, use a second person as a spotter, and only attempt it if you’ve done it before. Otherwise, call a roofer who carries emergency tarp service and let them take the risk.
How much does a typical heavy-rain-only leak repair cost in San Diego? Most repairs in this category fall between $400 and $1,800. Gutter and drip-edge fixes are at the low end. Chimney and skylight flashing rebuilds are mid-range. Valley metal replacement and flat-roof drainage corrections are at the high end. Full roof leak repair cost breakdowns by issue type are linked. A whole-roof replacement is almost never the right answer for a leak that’s storm-event selective, that’s a sign the field of the roof is still doing its job.
Get a Real Diagnosis Before the Next Storm
Heavy-rain-only leaks reward acting between storms, not during them. The next atmospheric river is probably weeks or months away. That’s plenty of time to get a proper diagnostic visit, two or three quotes, and a real fix scheduled before the next one tests your roof.
Get connected with a vetted San Diego roofer for a free estimate. We’ll match you with a local pro who does water testing and lift-truck visuals, not just a walk-around. Same-day matching, no obligation, no pressure.