BeforeAfterThe main array, looking south
The widest section of the roof — months of Arroyo dust and pollen had dulled the panels to a flat, hazy gray. After one pure-water cleaning, the panels read deep black again and the cell grid pops.
Every photo below is from the same South Pasadena rooftop — we just walked the array and shot three different sections so you can see how consistent the result is across an entire roof. Top frame in each image is before our visit, bottom frame is right after. No filters beyond color correction, no staging. Just deionized pure water, soft brushes, and a careful walk across the panels.
BeforeAfterThe widest section of the roof — months of Arroyo dust and pollen had dulled the panels to a flat, hazy gray. After one pure-water cleaning, the panels read deep black again and the cell grid pops.
BeforeAfterSame roof, different row. Tree pollen and bird traffic from the neighbor's oaks had baked a chalky film onto the glass. A careful soft-brush pass restored a clean, mirror-like surface — no streaks, no residue.
BeforeAfterSame home again, this time the panels tucked next to the brick chimney. Brick grit and exhaust haze leave a stubborn matte coating; after cleaning, the panels reflect cleanly enough to mirror the sky.
These are screenshots from the same home's solar production app — the day before the cleaning and the day of. By 12:15 PM, the freshly cleaned array was already pulling 4.41 kW, a peak the dirty panels never reached the day before (their best was 3.9 kW at the exact same time). That's about a 13% jump in peak output from a single wash — on the same roof, same weather, same hour.

Before · Yesterday
3.9 kW peak · 31 kWh total
Dusty panels, gentle bell curve, capped well below the array's potential.

After · Today, same time
4.41 kW peak · climbing past yesterday's high
New peak punches straight through yesterday's dashed ceiling — about +13% at noon.
Most South Pasadena homes get a same-week appointment. Free quotes, no pressure.
Request a quote