GridSentinel

Model lab

Benchmark, explain and retrain the non-technical loss scoring models

Current champion
Random Forest · run-0412
Cost-sensitive learning · 500 trees, class_weight = 1:15
AUC 0.951F1 0.723Precision 0.625Recall 0.857

Model benchmark

ModelAccuracyPrecisionRecallF1ROC AUCTrain timeInference (ms)Champion
Random Forest
500 trees, class_weight = 1:15
0.9600.6250.8570.7230.9513 min 48 s2.0Champion
SVM (RBF)
C=4, γ=0.02, class_weight = 1:15
0.9340.4740.7850.5910.90519 min 02 s6.5
Neural network
3 dense layers, weighted BCE loss
0.9510.5680.8090.6680.9266 min 31 s1.3

ROC curves

Click a legend item to emphasize
False positive rateTrue positive rate

Confusion matrix · Random Forest

16,701
90.8%
True negative
Honest, flagged honest
577
3.1%
False positive
Honest, flagged theft
161
0.9%
False negative
Theft, flagged honest
961
5.2%
True positive
Theft, flagged theft

Precision = of accounts flagged as theft, how many truly are. Drives inspection crew efficiency.

Recall = of actual theft cases, how many were caught. Drives revenue recovered.

F1 balances both; this model: precision 0.625, recall 0.857, F1 0.723.

Global feature importance

Sudden consumption drop
0.214
Billed vs metered gap
0.168
Meter tamper events
0.142
Deviation from feeder peers
0.121
Night / day usage ratio
0.104
Zero-read days (90d)
0.093
Voltage / current mismatch
0.087
Average payment delay
0.071

Retraining & drift monitoring

RunDateTriggerRowsF1AUCDriftDecision
run-04122026-11-01Scheduled1,284,3100.7230.9510.06Promoted
run-03982026-10-01Scheduled1,262,0040.7090.9470.09Kept champion
run-03772026-09-14Manual1,240,8760.7140.9460.11Promoted
run-03512026-09-01Scheduled1,239,1120.6880.9380.14Rejected
run-03302026-08-01Scheduled1,201,5480.7010.9440.07Kept champion

Feature drift (PSI, last 12 weeks)

Night / day ratio drift above threshold
0.10.2W35W37W39W41W43W45
Consumption drop0.08
Night / day ratio0.18
Billing gap0.05
Weekly F1 (champion)0.717