Skip to main content

How to tell whether your rooftop solar plant is underproducing

Performance ratio, what you need on the roof to calculate it honestly, what to compare a month's generation against, and the diagnostic order that finds the cause fastest and cheapest.

The bill did not fall as much as the proposal said it would. The contractor says it has been a cloudy month. Both statements can be true at the same time, and neither of them settles anything. What settles it is a number that takes the weather out of the comparison.

Performance ratio, and what you need to calculate it

Performance ratio is measured AC energy divided by the energy the array would have produced at its nameplate rating under the irradiation that actually fell on it. It is dimensionless, and it strips out the weather. A plant generating less in July than in March is not necessarily faulty. A plant whose performance ratio is falling is.

To calculate it at all you need the irradiation in the plane of the array, measured on your own roof by a sensor mounted at the array's tilt and azimuth and kept as clean as the modules. Satellite data or a reading from a distant weather station is a fallback, and it brings an error of its own into every subsequent argument. Specify the sensor at tender stage. Retrofitting one during a dispute is late, and the other side will question every number it produces.

One correction matters in this climate. Raw performance ratio falls in hot months, legitimately, because module efficiency falls as cell temperature rises. A Bangladeshi rooftop will show a lower figure in April and May than in December, and that is physics rather than degradation. Compare April against last April, or use a temperature-corrected performance ratio. Comparing a hot month against a cool one and calling the difference a fault is the most common misreading of this number.

What to compare against

Four references, in descending order of usefulness.

  1. Your own commissioning baseline. What the plant produced against measured irradiance in its first full period of operation. This is the most valuable number you own, because it is your plant, on your roof, with your shading and your orientation, and it removes every modelling assumption from the comparison. It exists only if somebody recorded it on the day.
  2. String against string, within the plant. Strings on the same orientation experience identical conditions, so a string sitting consistently below its neighbours is a fault and no weather data is needed to prove it. This finds problems faster than any yield model.
  3. The same month last year. Crude but useful once you have a year of history, and it catches slow drift.
  4. The contractual guarantee, tested by the method the contract specifies. Note the condition: a guarantee expressed as a kilowatt hour number with no stated irradiance basis and no measurement method is close to unenforceable. If you are still at contract stage, fix that clause now.

The diagnostic order, cheapest first

When the number is low, work down this list. Most investigations end in the first three items.

  1. Availability. Was the plant actually running? Inverter downtime, a tripped breaker nobody reset for three days, and grid outages all show up as lost generation, and grid outage hours are not your contractor's fault. Pull the grid-loss hours out of the inverter event log and separate them before any other discussion.
  2. Soiling. Dry season dust, brick kiln and construction particulate around Dhaka, bird droppings, and on many sites the plant's own extraction stacks depositing fibre or husk on the roof. There is a simple experiment that beats any generic advice: clean two strings, leave the neighbouring strings dirty for a day, and compare their output under the same conditions. That single test tells you what your cleaning interval should actually be on your roof.
  3. New shading. A water tank that went up last year, a mobile tower, an extra floor on the neighbouring building, a tree nobody noticed growing. Walk the roof in the late afternoon in December, not at noon in April.
  4. A string or an MPPT that has been offline. On a large plant a single dead string disappears into the noise at plant level and is obvious at string level. If your monitoring only reports total output, you are paying for a system that cannot see this.
  5. Curtailment. An export limiter doing its job is not a fault, but if nobody explained it, a flat top on the midday curve looks exactly like one. Check whether the plant is being held back at the point of connection.
  6. Then the hardware. Connector resistance, module level degradation, potential induced degradation, and string IV curve testing. These are real, and they are also the most expensive place to start, which is why they come last.

What a shortfall usually turns out to be

In practice, most plants that an owner believes are failing are not. They have been off for a week that nobody logged, or they have not been cleaned since the last proper rain, or a string has been down since a technician's visit in the monsoon and the monitoring email address belongs to somebody who left the company.

Genuine module underperformance exists, but it looks different. It is a slow, consistent drift across the whole array over years, not a step change in one month, and it is confirmed with IV curve tracing rather than inferred from an electricity bill. If your generation dropped sharply between one month and the next, the cause is almost never the modules.

The habit that prevents most of this costs ten minutes a month: log into the monitoring portal yourself, export the string level data, and look at whether every string is still there. You do not need to interpret it. You only need to notice when one of them stops.

Back to all Insights