SolarSoftwares
Book a demo

What Is Soiling?

How we keep reviews fair

Quick answer

Soiling (also called dirt loss) is the energy a solar array loses when dust, pollen, droppings or other deposits build up on its glass. Soiling loss is one minus the ratio of soiled to clean power. IEA PVPS Task 13 estimates that soiling cost at least 3-4% of PV energy in 2018.

Ready to see how it works?

Tell the SolarSoftwares team which tool you are considering. We reply by email to book your demo.

Book a demo
Jump to a section

Key takeaways

  • Rain cleans only above a threshold. pvlib’s Kimber model defaults to 6 mm in a day, plus a 14-day damp-ground grace period.
  • pvlib tabulates Kimber’s measured rates. They run from 0 to 0.30% of energy per day across California and desert sites.
  • Models disagree on the same simulated rain: HSU read 8.8% on day 159, Kimber at 0.15% per day 21.3%. Treat both as placeholders until you have site data.
  • On placeholder costs, one wash on day 75 lost 560 USD at 0.15% per day and gained 987 USD at 0.30%. The wash first paid at 0.184% per day.
  • PVsyst, SAM and Aurora take monthly or annual soiling inputs. pvlib adds time-series models that use rainfall. HSU also uses particulate data.

To compare simulation tools that take monthly soiling inputs, such as PVsyst, SAM and Aurora, see the best solar simulation software.

Soiling at a glance

Soiling is a loss line in a yield model and a cleaning choice in operations. You enter it as a percentage, or model it from rain and dust data.

ItemDetail
FormulaSoiling loss = 1 minus soiling ratio. IEA PVPS Task 13 quotes the IEC 61724 definition of the ratio: soiled array power over clean array power.
Unit and rangePercent of energy (or irradiance), or a rate in % per day or % per month. See the sourced rates below. The range between sites is wide.
Where it mattersYield estimates, cleaning schedules, performance ratio and fault-finding.
In softwareA monthly or annual input in design tools. Time-series models in pvlib.

Why soiling matters for installers

Soiling is one of the few losses you can act on after commissioning. A wash costs money. The question is whether the energy you win back is worth more.

A flat annual figure can hide a dry season with a much larger loss. That shifts the energy yield simulation result. The full stack is on the system losses page. Soiling also lowers performance ratio.

In operations it is a slow loss. Our alerts and alarms page tests one simulated case. O&M covers washing contracts.

What drives soiling loss?

Dust supply, rain, humidity, tilt and the type of deposit decide how fast loss builds. Rain removes some deposits but not all.

  • Dust: IEA PVPS Task 13 names silt-sized particles (about 2 to 63 microns) as the main contributors in arid and semi-arid areas. It also lists humidity, dew, wind, soil type and farming as factors.
  • Pollen: the same report lists it among natural sources of contaminants. It gives no rate for it in the report text.
  • Bird droppings: PVsyst’s help says rain does not usually remove them. It says their impact is reported as relatively small, under 2%. No second source is cited for that figure.
  • Snow: IEA PVPS Task 13 treats snow as a separate shading issue. PVsyst lets you apply partial or complete attenuation in chosen months. pvlib has a separate snow-coverage model.
  • Rain: it washes off soiling, but rain is scarce in arid regions. PVsyst says rain does not remove moss and lichen along frames.
  • Tilt: IEA PVPS Task 13 says losses typically fall as tilt rises, at least where wind does not remove dust. See tilt angle. HSU scales deposited mass by the cosine of tilt. In the example run the day-159 loss fell from 9.2% at 0 degrees to 5.2% at 60 degrees.

What soiling rates have been published?

Published figures range from under 1% a year in wet residential areas to more than 20% in long dry spells. They use different units, sites and methods. Do not mix them.

Source and dateWhat it reportsLimits
Kimber et al., 2006, as tabulated in pvlib docsDaily loss rates of 0 to 0.30% per day. Desert: 0.30% in rural, suburban and urban settings. Central Valley: 0.11% to 0.20%. Northern California: 0.10% to 0.16%. Southern California: 0% to 0.19%.Measured by Kimber et al.. The figures come from the pvlib table, not the paper.
IEA PVPS Task 13, December 2022, Table 1Monthly rates up to 2.0% per month for natural desert and up to 11.5% for dry agricultural areas. The table cites two US locations.The report text shows no site names or years for the table.
IEA PVPS Task 13, December 2022Malaga, Spain: mean daily production loss about 4.4%, above 20% in long dry periods of dust build-up.One site. The report text does not give the year here.
Ilse et al., Joule, 2019At least 3-4% of solar production lost even with optimised cleaning. IEA gives the same 3-4% for 2018, so count it once.Worldwide estimate, not a site rate. Its scope (utility-scale or all) is not stated in the abstract.
PVsyst help (undated, checked October 2026)Under 1% in moderately rainy residential areas. Several percent in industrial zones.Guidance, not a dataset.
Clean Power Research, 2024Harad, Saudi Arabia: HSU 31.0% annual energy loss against Kimber 21.6%.A modelled comparison on SolarAnywhere data, not a measured loss. The page does not give the Kimber rate or the dust and rain inputs.

Kimber’s desert rate of 0.30% per day would be about 9% in a dry 30-day month. That is far above IEA’s natural-desert range (up to 2.0% a month). It is inside its dry-agricultural range (up to 11.5%). The sources cover different sites, years and methods. Treat both as site-specific.

How do software tools model soiling?

Most design tools take a monthly or annual percentage. Time-series models turn rainfall into an hourly or daily loss. HSU also uses dust data.

The Kimber model in pvlib adds loss at a fixed daily rate. Rain above a threshold cleans the array. The model has a grace period after rain, a cap, and manual wash dates. Defaults are a 0.15% daily rate, a 6 mm threshold, a 14-day grace period and a 30% cap.

The HSU model (Humboldt State University fixed-velocity model) takes rainfall, a cleaning threshold, tilt, PM2.5 and PM10. Its loss follows 1 minus 0.3437 times erf(0.17 times ω to the power 0.8473), where ω is the accumulated mass. pvlib says the loss cannot exceed about 34.37%. It says the model was validated to 10 g/m2.

Two charts: soiling loss over a simulated dry spell for the Kimber and HSU models, and net gain from washing on each day

Figure 1. On identical simulated rain, HSU and Kimber build loss at different speeds. One wash paid only at the 0.30% rate (placeholder costs).

Worked example: wait or wash through a dry spell

The example runs pvlib 0.16.1 over 180 daily steps with invented rain. It fell as 10 mm on day 4, 3 mm on day 40 and 12 mm on day 160. Inputs below are illustrative, not site data or quotes.

InputValue
Array and output1,000 kW DC. 5.5 kWh per kW per day clean, so 5,500 kWh a day
Energy value (placeholder)0.06 USD per kWh, so 330 USD for one clean day
Cost of one wash (placeholder)3,000 USD
KimberRates 0.15 and 0.30% per day. 6 mm threshold, 14-day grace, 30% cap (pvlib defaults except the rate)
HSU (placeholder dust)PM10 40 and PM2.5 15 micrograms per m3. 20 degree tilt. 6 mm threshold to match Kimber
Result (days 0 to 179)Kimber 0.15Kimber 0.30HSU
Loss on day 159, no wash21.3%30.0% (cap)8.8%
Mean loss over 180 days8.5%15.5%4.2%
Energy value lost, no wash5,039 USD9,184 USD2,518 USD
Value recovered by washing on day 752,440 USD3,987 USD1,084 USD
Net after the 3,000 USD wash-560 USD987 USD-1,916 USD

Rain threshold. The 3 mm shower stayed below the 6 mm threshold, so it cleaned nothing. With HSU set to 1 mm it cleaned the array. Loss on day 41 was 0.12% against 2.65%. The threshold can change the result.

Timing. In Kimber the gain from a wash is the loss you avoid on every remaining dry day. With rain due on day 160, the gain peaks on day 88. That is about midway between the end of the grace period and the rain. For the 0.30% rate it pays from day 54 to day 123.

Inputs. The models were not tuned to one site. The 0.15% rate and the dust inputs are placeholders. The gap between rows shows the inputs, not which model is right.

To plan washes across many sites, see the best solar asset management software.

Wait-or-wash calculator

The calculator uses Kimber’s straight-line build-up with a cap. Its defaults repeat the two Kimber columns above. It also solves for the lowest rate at which the wash pays.

If the calculator does not load, open the wait-or-wash calculator on its own page.

Open the calculator on its own page

How solar software handles soiling

All five tools below handle soiling loss, from monthly percentages to time-series models built on rainfall. Ratings come from company pages read in October 2026.

SoftwareDoes it handle soiling loss?Method
PVsystYesMonthly factors, modelled as an irradiance loss
SAMYesMonthly percentages
Aurora SolarYesAnnual or monthly input
HelioScopeYesSingle loss factor
pvlib pythonYesTime-series models
  • PVsyst: Soiling loss page lets you set values per month and a partial snow attenuation in chosen months. The page describes no rain or dust model. PVsyst help, October 2026.
  • SAM: Losses page: a monthly loss reduces plane-of-array irradiance at every time step in that month. The page gives no default. Shown through its samrepo.nlr.gov mirror, October 2026.
  • Aurora Solar: System losses article: soiling is set in performance simulation settings and applied to each module’s incident irradiance. Article marked updated 29 June 2026. Defaults are on the energy yield simulation page.
  • HelioScope: Loss factor defined in the Condition Set. The page says it is also used for snow. The page does not say whether monthly values are possible. Help centre, October 2026.
  • pvlib python: pvlib.soiling has kimber and hsu. Pvlib.snow has a snow-coverage model. Open-source library. You write the code. pvlib docs, October 2026.

To pick a design tool that handles soiling, see the best solar simulation software.

Common mistakes with soiling

FAQs

What is the soiling ratio?

It is soiled array power divided by clean array power. IEA PVPS Task 13 quotes the IEC 61724 definition. Soiling loss is one minus that ratio. A ratio of 0.95 means a 5% loss.

Does rain clean solar panels?

Often, but not always. pvlib’s Kimber model needs 6 mm in a day by default to reset the array. PVsyst says rain does not usually remove moss, lichen and bird droppings.

Are bird droppings a big loss?

Usually not. PVsyst’s help calls their impact relatively small, under 2%. It says rain usually does not remove them. No second source is cited, so treat the figure as a guide.

How much energy do dirty solar panels lose?

IEA PVPS Task 13 puts worldwide soiling loss at least 3-4% of PV energy in 2018. Site rates vary a lot. Kimber’s tabulated rates run from 0 to 0.30% of energy per day (California and desert sites, via pvlib). Long dry spells can push local loss far higher.

Which model should I use, Kimber or HSU?

Use the one whose inputs you can supply. Kimber needs rainfall and a rate you must supply. HSU needs rainfall, tilt and particulate data. A 2024 Clean Power Research comparison at Harad, Saudi Arabia, gave HSU 31.0% and Kimber 21.6% annual energy loss. Our example has HSU lower. Inputs differ in each case, so neither result ranks the models.

  • Weather and solar resource data: the sunlight and rainfall inputs a soiling model needs.
  • System losses (loss diagram): where soiling sits among the other losses.
  • Tilt angle: the module slope that changes how dust settles and sheds.

Next step: price your own wash in the calculator, then compare the best solar simulation software or the best solar asset management software.

Sources

Last updated 30 October 2026. Next scheduled review: 30 January 2027.

See the software on your shortlist.

Tell the SolarSoftwares team what you want in your solar software.

Your request goes by email to the SolarSoftwares team. A demo time is set only after we reply.