Data report

Can machine learning actually detect solar faults? A benchmark on public data

We trained fault and remaining-useful-life models on four public solar and battery datasets. Here is what worked, what did not, and the exact numbers behind both.

Quick answer

On public PV fault data a gradient-boosted classifier reaches 0.998 macro-F1 on the 5-class Lazzaretti dataset but only 0.766 on the harder 8-class GPVS-Faults set, where thermal and sensor-drift faults stay weak. Remaining-useful-life models flag fast-moving faults within a day but miss slow degradation by nearly a week. Battery end-of-life prediction lands at 17 percent error for LFP and 30 percent for NMC.

What we tested

Every result below comes from a public, openly licensed dataset and a held-out test set. Nothing here uses client-confidential plant data. The point is not that machine learning is magic, it is to show honestly how much accuracy depends on the fault type and the dataset.

497,407
labeled PV rows
Lazzaretti: 397,926 train, 99,481 test
1.37M
rows for RUL training
989,134 train, 274,760 test
137
battery cells
124 LFP (Severson) + 13 NMC (NASA)
  • Lazzaretti UTFPR PV Fault Dataset (CC BY 4.0): 5 fault classes from a 5 kW site in Curitiba, Brazil.
  • GPVS-Faults: 8 fault classes across two operating modes at the system level.
  • Severson 2019 (Toyota, MIT, Stanford): 124 commercial A123 LFP cells cycled to end of life.
  • NASA Ames PCoE Battery Aging Dataset: 13 well-formed NMC cells.

PV fault classification: near-perfect on one dataset, hard on another

A gradient-boosted classifier on the Lazzaretti data separates all five classes almost perfectly. The same model family on the harder GPVS-Faults set, with eight classes and different fault families, drops to 0.766 macro-F1. The honest story is in the per-class breakdown.

Lazzaretti 5-class PV faults. Macro-F1 0.998, accuracy 0.997.
Fault classPrecisionRecallF1Test samples
normal0.99880.99690.997959,230
short_circuit0.99830.99750.99791,203
degradation0.99760.99950.99852,062
open_circuit0.99831.00000.99921,183
partial_shading0.99500.99790.996435,803
GPVS-Faults 8-class. Macro-F1 0.766, accuracy 0.766. Sorted best to worst F1.
Fault classPrecisionRecallF1Test samples
dc_link_capacitor_aging0.99910.99980.99948,000
string_short_circuit0.74490.85060.79438,000
grid_voltage_sag0.90540.70140.79048,000
string_open_circuit0.86250.72600.78848,000
normal0.72120.78970.75398,000
grid_voltage_swell0.70890.79910.75138,000
irradiance_sensor_drift0.62220.63790.62998,000
inverter_overtemperature0.62520.62120.62328,000

Thermal (inverter overtemperature) and sensor-drift faults are the hardest to separate from normal operation with the available signals, and they sit at the bottom of the GPVS table. This is a genuine limit of the data, not a modeling shortcut. The Lazzaretti model trains on a single 5 kW site, so cross-dataset transfer to GPVS is intentionally not expected: the fault families differ.

Remaining useful life: fast faults are easy, slow ones are not

We trained seven remaining-useful-life regressors on 1.37M rows, evaluated at 1, 3, 7, 14 and 30 day horizons. Mean absolute error is in days. "Within 1 day" is the share of test cases predicted within a day of the true failure date. "Meets bar" is our operational criterion for next-day alerting.

Seven RUL models, Lazzaretti-derived. Five of seven meet the next-day bar.
FaultMAE (days)Within 1 dayMeets bar
Bypass diode stress0.3590.5%Yes
Inverter overtemperature0.4884.0%Yes
Thermal hotspot risk0.5479.1%Yes
String degradation0.6971.5%Yes
String mismatch1.3460.1%Yes
Module degradation4.7539.0%No
Insulation degradation7.188.9%No

The two models that miss the bar, module degradation and insulation, are slow, low-signal faults where a mean error of 5 to 7 days is expected. They are useful on 14 to 30 day horizons, not for next-day alerts. Reporting that plainly is the point: a single headline accuracy would hide it.

Battery end-of-life across chemistries

End-of-life prediction is harder for batteries because public cycling data is scarce. We benchmarked two chemistries with the best available open datasets. MAPE is mean absolute percentage error against true end-of-life cycle.

Battery end-of-life prediction. Neither is warranty-grade; both support operational planning.
ChemistryDatasetCellsMethodMAPEWithin 10%Within 25%
LFPSeverson 2019 (A123)124leave-one-out gradient boosting17.2%49%84%
NMCNASA PCoE13linear extrapolation29.5%69%85%

LFP has a well-studied knee point that gradient boosting captures from the first 100 cycles. NMC public data is thin (13 usable cells) and fades roughly linearly from cycle zero, so a simple extrapolation matches it about as well as anything more complex would.

What this means

Two things carry across every table. First, accuracy is fault-specific: a headline number is close to meaningless without the per-class or per-model breakdown. Second, the features matter more than the model. Plant-agnostic ratios, rather than absolute kW, are what let the PV classifier transfer from a 5 kW rooftop to a MW-scale utility plant without retraining. That is the difference between a demo and something you can point at a portfolio you have never seen.

Methodology & sources: Lazzaretti et al., UTFPR PV Fault Dataset (CC BY 4.0) · GPVS-Faults dataset · Severson et al., Nature Energy 2019 · NASA Ames PCoE Battery Aging Dataset

Get the raw dataset

Every number in this report as a single CSV: per-class F1 for both PV datasets, per-model remaining-useful-life accuracy across five horizons, and battery end-of-life error by chemistry. Free, in exchange for an email so we can tell you when we publish new benchmarks.

Download the ML fault-detection benchmark dataset (CSV)

Enter your details to get instant access to this free resource.

By downloading, you agree to our Privacy Policy. Unsubscribe anytime.

Frequently asked questions

See also

See this on your own plants

NuraVolt turns your SCADA and BMS data into early fault detection, degradation-aware BESS analytics, and audit-ready reporting. A fixed-scope audit shows you what we’d find on your portfolio.