The connector-health analysis is deterministic and rule-based: the same data always gives the same result, and every rule and threshold is listed here.
Analysis version 2026.10-3
Validate
Readings that are missing, non-numeric, outside each metric's plausible range, timestamped more than 10 minutes in the future, or duplicated are excluded and reported. Nothing is replaced with zero.
Establish a baseline
Each charger is compared with its own history: the median of its earliest 6–12 readings, with spread measured by the median absolute deviation. At least 9 valid readings are required; otherwise the metric is "Insufficient data".
Look for persistence, not spikes
A reading deviates when it is more than 3.5 robust spreads and at least 8% above the baseline median. An alert needs 3 of the last 5 readings to deviate; a single spike is noted but not alerted. If more than 20% of the baseline readings already cross the threshold, the baseline is too variable and no deviation alert is raised. Sustained deviations of 30% or more recommend inspection.
Check direction and magnitude of change
Over the last 10 readings, the Theil–Sen median slope must be upward in at least 75% of reading pairs and add up to at least 15% of the baseline (and 3 spreads). A rise of 40% with a deviating latest reading recommends inspection.
Correct for temperature
Metal resistance rises about 0.39% per °C, so a hot reading looks worse than a cold one. When every contact-resistance or voltage-drop reading records the contact temperature, each is restated at 20 °C before anything else is computed. If only some readings have a temperature, none are corrected (mixing would create artificial jumps) and the page says so.
Forecast the service date
Using the latest 12 readings since the most recent recorded maintenance (at least 6), the Theil–Sen rate and Sen's 80% interval give when the current level (median of the last three readings) would reach the service limit — the operator's, or baseline + 50% by default. No date is given unless the whole interval shows a rise; dates beyond 365 days are reported as "more than a year". An earliest date within 30 days becomes an action item.
Check that repairs worked
After recorded work, the first reading shows the immediate effect: back within the deviation threshold means restored; at least 50% of the excess removed means partly improved; otherwise no measurable effect. A restored connector "held" once 3 readings over 14 days stay in range, and "relapsed" if two consecutive readings (or the latest) cross the threshold again.
Count recurring faults
Connector-related faults in the 30 days ending at the latest report: 3 or more (and 1.5× the historical rate) means Monitor; 8 or more means Inspection recommended.
Combine and qualify
The charger takes its most serious primary-metric result; two independent metrics at Monitor escalate to Inspection recommended. Temperature rise and voltage fluctuation are supporting evidence only and never set status. When the newest reading is older than 45 days, the result is labelled historical: it describes the data at that time, not the connector today.
What this cannot do: EVOLT does not measure connectors itself and cannot see physical wear. A flagged pattern means the available measurements changed relative to this charger's own history — a reason to look, not proof of degradation.
Both detectors are run reading-by-reading over 40 generated series per scenario (30 weekly readings each). The simple method flags any single reading above the same deviation threshold. Results are computed live from the code.
| Scenario | Truth | Single-reading threshold | EVOLT trend-aware rules |
|---|---|---|---|
| StableConstant level with measurement noise (σ ≈ 4% of level). | Not degrading | 5/40 (13%) false alarms | 0/40 (0%) false alarms |
| Stable + isolated spikesStable series with two single-reading spikes of +40% (e.g. a bad contact during measurement). | Not degrading | 40/40 (100%) false alarms | 1/40 (3%) false alarms |
| Noisy, stableConstant level with heavier noise (σ ≈ 9% of level). | Not degrading | 8/40 (20%) false alarms | 3/40 (8%) false alarms |
| Gradual driftStable for 14 readings, then rising by 2.5% of the level per reading. | Degrading | 40/40 (100%) flaggedmedian delay 5 readings | 40/40 (100%) flaggedmedian delay 5 readings |
| Step changeStable for 18 readings, then a sustained +30% shift. | Degrading | 40/40 (100%) flaggedmedian delay 0 readings | 40/40 (100%) flaggedmedian delay 2 readings |
| Overall | detected 74/80 (93%)series with a false alarm 59/200 (30%) | detected 80/80 (100%)series with a false alarm 4/200 (2%) |
Reading the table: requiring persistence suppresses alerts on isolated spikes, at the cost of reacting a little later to abrupt step changes. Neither method is told about measurement-method changes, seasonal effects or sensor faults, all of which occur in real data.
| Metric | Chargers | Readings |
|---|---|---|
| Contact resistance (mΩ) | 26 | 632 |
| Connector voltage drop (mV) | 24 | 624 |
| Connector-related faults (count) | 24 | 624 |
| Charging-path power loss (kW) | 57 | 1000 |
| Voltage fluctuation (supporting) (%) | 57 | 1000 |
| Temperature rise (supporting) (°C) | 3 | 78 |
100% of stored readings are demo or sample data, not field measurements.