2026-07-01
PID shunt resistance diagnostics fill factor

Diagnosing PID from a field IV curve

Potential-induced degradation shows up as a shunt-resistance collapse, not a flat power loss — here's the shape signature and how to tell it apart from a routine retest.

Modeled R_sh/20 case: Fill Factor 76.0% → 56.5%, while Voc and Isc barely move (Δ < 2%)

Potential-induced degradation (PID) is a shunt-path problem: leakage current from the cells to the grounded frame (through the encapsulant, under humidity and a negative cell-to-frame bias) opens up a parallel low-resistance path across each cell. Electrically, that shows up in the single-diode model as a collapsing shunt resistance, R_sh — not a uniform derate of every keypoint.

That distinction matters for how you read the curve. A module that has simply aged per its warranty schedule loses Isc, Vmp, and Voc together, in roughly the proportions the datasheet predicts. A module with a developing shunt path loses Fill Factor disproportionately, while Isc and Voc barely move — because the leakage current only dominates near short-circuit, where the diode's own current is small enough for a parallel low-resistance path to matter.

What it looks like on the curve

Modeled IV curve overlay: healthy module in green vs. the same module with shunt resistance divided by 20, in red. The shunted curve droops steadily from short-circuit instead of holding flat.
Modeled illustration — same CEC parameter set, only R_sh_ref changed. Isc and Voc shift by less than 2%; the knee collapses.

The healthy curve (green) holds nearly flat current from V = 0 out past 80% of Voc — that flat plateau is a high shunt resistance. The shunted curve (red) droops from the very first point: current bleeds away almost linearly with voltage across the whole low-voltage region, well before the series-resistance knee near Voc even starts to bend the curve over.

In this modeled case, dropping R_sh to 1/20 of its reference value costs the module roughly 20 points of Fill Factor (76.0% → 56.5%) while Voc and Isc each move by under 2%. That lopsided signature — big FF loss, small keypoint-ratio loss — is the tell.

The shape feature: slope near Isc

PV Ivy's IV Data Analyzer doesn't just compare Pmp to a threshold; it fits the local slope of the curve in the first 20% of Voc (shunt_slope in the diagnosis engine) and compares it against the same region on the modeled curve at the same conditions. A healthy module's near-Isc slope is close to zero — the curve is current-source-like there. A developing shunt path steepens that slope measurably before Fill Factor loss is even large enough to fail a simple power threshold.

Zoomed view of the 0-20% Voc region with fitted slope lines: -0.004 A/V for the healthy curve vs -0.081 A/V for the shunted curve, a roughly 20x steeper slope.
Modeled illustration — near-Isc region only. The fitted slope is the shunt_slope feature the diagnosis engine extracts.

The engine also checks how far that slope has moved relative to the same module's own modeled curve at the measured irradiance and temperature — not a fixed universal threshold — since a sunny, hot measurement naturally has a different near-Isc slope than a cool, overcast one.

Retest, or actionable?

The engine is deliberately conservative about calling this out. It only proposes a shunt/PID finding when:

  • the near-Isc slope has steepened well beyond the modeled healthy curve at those conditions,
  • Voc and Isc ratios stay close to 1.0 (ruling out uniform degradation or a soiling/irradiance problem, which would move Isc instead), and
  • confidence clears the 0.5 floor with no conflicting top candidate.

If irradiance was outside the IEC 61829-recommended 700–1000 W/m² window, or the two candidate causes are close in confidence, the result is Indeterminate — retest rather than a forced call — full curves under stable, in-range conditions are what let the slope comparison mean something. The figure below sweeps Fill Factor against remaining shunt resistance across a full range, not just the single R_sh/20 case shown above:

Fill Factor versus remaining shunt resistance on a log scale, showing a steep drop below about 20% of reference R_sh and a long flatter tail above that.
Modeled illustration — sweeping R_sh from 100% down to 2% of its reference value at fixed irradiance/temperature.

Notice the curve is non-linear: Fill Factor holds up reasonably well down to roughly 20–30% of reference R_sh, then falls sharply — which is also why a shunt problem can look like "it was fine last quarter" right up until a monitoring alert trips. Catching the slope change before FF drops below a pass/fail threshold is the point of tracking shape features at all.

Reproduce it

  1. Open the IV Curve Explorer, pick any module, and note its modeled curve at your site's conditions as the baseline.
  2. Paste a field-measured or flash-test V/I curve into Add measured data to see the same near-Isc droop directly against the modeled reference.
  3. For a full write-up — validation flags, IEC 60891 STC translation, and the rule-based diagnosis with confidence and evidence — run the same curve through the IV Data Analyzer.
Method

Both curves are a modeled illustration: synthetic IV curves generated with pvlib's calcparams_cec + singlediode(method='lambertw') from one real CEC single-diode parameter set in PV Ivy's module database (a 60-cell mono-c-Si, 275 W STC module). No field or flash-test data was used, and no manufacturer/model is named — this is a defect-class illustration, not a report about a specific product. The "shunted" curve divides the reference shunt resistance (R_sh_ref) by 20 and recomputes the model at the same irradiance/temperature; every other CEC coefficient is unchanged.

© 2026 PV Ivy. All Rights Reserved.