Choose an invoice or filter
Review real invoices
Invoice 536365 · real invoice sample
Samples are real invoice lines selected from the dataset. Filters choose the next case pool.
--
return probability
--
Customer history check
History check · what this customer has actually done
Calibration record · four models, each against its baseline
| ROC-AUC 0.992 · LightGBM classifier, temporal split |
| PR-AUC 0.852 vs 0.849 XGBoost comparison |
| Top-decile precision 15.9% vs 1.83% base rate, an 8.7x lift |
| Backtest mean precision at the top decile 0.181 across 18 rolling monthly windows |
| Excessive returners flagged 294 customers at 5% contamination |
| Segmentation silhouette 0.238, k=4 |
| Recommender Recall@10 0.093, NDCG@10 0.046 |
UCI Online Retail II, Dec 2009 to Dec 2011, returns labeled by C-prefixed invoices; 22.8% of rows lack a CustomerID and the pipeline handles them rather than dropping them.
How it works · point-in-time features, temporal split
History features computed only from transactions before the one being scored; trained on 2009 through mid 2011, tested on the last half of 2011, because random splits leak the future; four models because return risk, serial returners, segmentation, and substitution are different problems.
Notes · what a score can and cannot say about a person
- This ML demo sleeps after extended inactivity. First wake can take a moment; runs after that are quick.
- No transaction has a return label at the moment it is scored; that label arrives weeks later or never. The history check exists so you can judge the score against the customer's record.
- A high score is a risk estimate about a transaction, not a verdict on a person; the anomaly flag is behavioral, not moral.
- The sample button draws from real invoice lines, with filters for risk tier, segment, and behavior anomaly cases.