Why string-level fault detection matters more than you think
Site-level monitoring hides string faults for weeks. On a 500 kWp rooftop, that's worth about £1,800 in lost revenue per month — and it's almost always avoidable.
We lost eleven days on a 500 kWp rooftop last autumn before anyone noticed. The site was still producing. The dashboard said green. The alerts were quiet. Nothing was wrong — except one string of twenty-two modules had dropped offline, and we had no way of knowing it from the portal we’d been given.
That’s the problem with site-level monitoring. It tells you whether a site is generating. It doesn’t tell you whether it’s generating what it should be.
What site-level monitoring actually sees
Most commercial inverter portals report three numbers at the site level: instantaneous power, daily energy, and a traffic-light status. A few also surface a performance ratio if you’ve set an expected yield in the configuration.
On a clear day in June, a 500 kWp array with one dead string loses about 4.5% of its output. That’s well inside the noise floor of most expected-yield models — especially ones that haven’t been weather-normalised against local irradiance. The site stays green. The daily kWh number drops a bit, but it drops a bit for a dozen reasons every day: thin cloud, soiling, inverter derating on a hot afternoon. No single day gives you a signal.
The fault stays invisible until:
- A maintenance visit happens to catch it
- The monthly report lands and someone notices the trend
- Something worse fails and forces an inspection
We caught ours on a site walk because an engineer noticed one of the DC combiner indicators was dark. The string had been offline since a thunderstorm on the 4th. We found it on the 15th.
The arithmetic on eleven days
A 500 kWp rooftop in South Wales generates somewhere around 1,400 kWh on an average October day. Losing a 22-module string drops that by roughly 4.5% — about 63 kWh per day. At the site’s export rate of about 11p/kWh, that’s £7 per day. Eleven days cost us about £75 directly.
That’s not a huge number on its own. The problem is the number extrapolated.
If that fault had happened in April instead of October and gone undetected for four weeks — which is typical on sites that only get walked quarterly — the same 4.5% loss against a much higher April yield is around £280. If two strings go down, you’re at around £560/month. If the fault is a whole MPPT input rather than a single string (blown fuse, tripped breaker, water in a connector), you can easily hit 10–15% loss and be looking at £1,500–£1,800 in a month on a site that size.
We’ve dealt with one site this year where the operator was paying for O&M, had monthly reports, and still lost just over £4,000 in a season because a 3-string combiner had tripped and nobody noticed until the next scheduled inspection.
Why the portals don’t help as much as you’d hope
String-level data isn’t hidden — most modern inverters have it. The problem is one of three things:
- The API tier gates it. SolarEdge’s standard monitoring API doesn’t expose per-optimiser data; you need the higher tier. Solis does expose string currents on their API and on the physical unit display, but not all portals surface per-string alerts by default.
- The alert is buried. Some portals have string-level alarms but only fire them when a string current goes to zero — not when it drops to 40% of the other strings on the same MPPT. The latter is the more common failure mode.
- There is no comparison. Even if the data is present, a raw current figure tells you nothing without a neighbour to compare it to. “String 3 is at 7.2 A” is meaningless. “String 3 is at 7.2 A while strings 1, 2 and 4 on the same MPPT are at 11.8 A” is a diagnosis.
The third point is the one that matters most. Catching a degraded string requires looking sideways across strings on the same input, not up at the site total.
What good string-level detection looks like
We’ve settled on a handful of rules that catch most real faults inside a day:
- Relative drop test: any string under 70% of the median current of its MPPT siblings for more than two polling intervals raises a case. Two intervals is enough to filter out shading, a bird, or someone walking across the roof.
- Persistent zero test: a string reporting zero current during daylight hours (irradiance > 200 W/m²) for more than thirty minutes. This catches tripped breakers, blown fuses and disconnected MC4 joints.
- Degradation trend: a string whose normalised output has drifted more than 8% below its own baseline over 30 days. Slower to fire, but catches gradual issues: soiling on one sub-array, a connector going high-resistance, a shade source that’s grown over the summer.
Weather-normalise the relative test against irradiance and ambient temperature. On hot, clear days, inverters clip; comparing raw current across MPPTs during clipping gives false signals. We anchor against Open-Meteo’s hourly irradiance figure for the site’s coordinates.
What it costs to not do this
Take a 2 MW portfolio across eight sites. Assume an average of one undetected string fault per site per year, lasting an average of three weeks before it’s caught on a site walk. That’s eight fault-weeks per year. At roughly £60 per week of lost revenue per 500 kWp-equivalent portion of each fault, you’re looking at about £500 per site per year, or £4,000 across the portfolio.
That figure assumes you’re catching things reasonably well. If your quarterly walks are patchy — or if the operator is relying entirely on the installer’s monitoring portal — the real number is higher. We’ve seen operators lose five figures a year to faults their platform never flagged.
The bit we keep coming back to
The money matters, but the bigger issue is that it corrodes trust. An owner who’s paying for O&M and then finds out — at the annual review — that their system was under-performing for weeks isn’t going to renew the contract on a discussion of SLAs. They’re going to renew on whether their operator noticed.
String-level detection isn’t a premium feature. It’s the minimum bar for doing the job properly. If your current tooling doesn’t surface it, either fix the tooling or find tooling that does.
SolarFleet normalises string-level data across SolarEdge, Solis and Sungrow inverters and flags faults against the three rules above by default. See how the platform handles alerts and cases, or book a demo.
Josh runs InspireGreen, a solar installer based in Cardiff, and builds SolarFleet — the O&M platform we use to monitor our own sites. Most posts here come straight out of the work: a case we dealt with, a feature we shipped, or a thing we wish we'd known earlier.