Soiling is the single largest O&M variable in solar system yield — yet it is often dismissed as a minor nuisance. In arid markets like the Middle East, Central Asia, and Northern Africa, soiling losses of 20–30% are documented at unmanaged utility-scale sites. Even a temperate-climate rooftop in a dusty industrial zone can lose 5–8% annually with quarterly cleaning.

What causes soiling and how it reduces yield

Soiling refers to any material deposited on a module's front glass that reduces light transmission. Sources include:

Soiling reduces yield through two mechanisms. First, it directly attenuates incident irradiance — a 10% reduction in light reaching the cells reduces output by approximately 10%. Second, non-uniform soiling (such as bird droppings or heavy soiling on one end of a string) causes mismatch losses within a string, activating bypass diodes and further amplifying the output reduction beyond the directly shaded area.

Soiling loss by climate and site type

Climate / siteTypical annual soiling lossCleaning frequency needed
Humid temperate (UK, NW Europe)1–3%1–2×/year or rain-dependent
Mediterranean (South Europe, East Med)3–6%3–4×/year
Tropical (SE Asia, sub-Saharan Africa)2–5% (heavy rain season) / 10–15% (dry season)Seasonal, 4–6×/year
Arid / semi-arid (MENA, Central Asia)15–30% or more without cleaningMonthly or automated
Industrial rooftop (any climate)Add 3–8% to climate baselineIncrease frequency by 2×

How to measure your system's soiling loss

There are three practical approaches for commercial systems:

1. Reference module comparison

Keep one module permanently clean. Compare its irradiance-normalised output to the average of adjacent uncleaned modules. The difference is the soiling factor. This method is low-cost and continuous, but requires a dedicated clean module and a monitoring system with module-level data.

2. Before/after cleaning comparison

Record the performance ratio (PR) of the system immediately before and after a cleaning event under similar irradiance. The PR improvement multiplied by annual generation gives the annual soiling loss in kWh. This is the most practical method for existing systems without reference modules.

3. Monitoring-based anomaly detection

Most modern monitoring platforms (iSolarCloud for Sungrow, SolarEdge Monitoring, Enphase) flag strings with persistent output below expected based on irradiance. A string that shows gradually declining PR over weeks is almost always experiencing progressive soiling. A string that drops suddenly is more likely a fault.

Cleaning ROI calculation

Before specifying a cleaning programme, calculate the breakeven cleaning cost:

  1. Determine your soiling loss rate in % per month between cleanings
  2. Multiply monthly loss by system generation × electricity value (or feed-in tariff) to get monthly revenue loss in USD
  3. If cleaning cost < recoverable revenue, cleaning pays back

Example: A 500 kWp system generating 700,000 kWh/year sells electricity at $0.10/kWh. At 1.5% soiling loss per month (arid climate), the monthly revenue loss is 700,000 × 0.015 ÷ 12 × $0.10 = $87.50 lost per month. If cleaning costs $300 for the whole system, cleaning every 3 months costs $100/month and recovers $262.50/month in avoided losses — a clear win.

Cleaning methods

Design choices that reduce soiling

Soiling loss is partly a design problem, not just an O&M problem:

Including soiling loss in yield models

When submitting a bankable energy assessment (PVsyst, Helioscope, SAM), soiling loss should be input as a monthly value based on site data, not a single annual average. Using an annual average underestimates peak-season soiling in arid markets. For sites without measured soiling data, the NREL global soiling database provides country-level defaults.