The standard model monitoring workflow for insurance pricing has a structural defect: it monitors outputs when it should be monitoring inputs. An A/E ratio only moves after claims develop. On a UK motor book, frequency claims develop over three to twelve months. By the time your quarterly A/E flags a segment as mispriced, you have renewed that cohort twice at the wrong rate.

Input monitoring is detectable immediately. A distribution shift in driver age at new business is observable at quote time, months before any claim. Exposure-weighted PSI on model inputs fires fast. Gini coefficient drift on a validation cohort fires at the end of each quarter. Together they give you a layered early warning system that A/E cannot replicate.

The insurance-monitoring library implements this layered approach: exposure-weighted PSI and CSI for feature drift, actual-vs-expected ratios with Poisson confidence intervals at segment level, and Gini drift z-tests for discriminatory power. All metrics are calibrated to insurance data — exposure offsets, fractional policy years, and zero-inflated frequency distributions are handled natively.

Library: insurance-monitoring on GitHub · pip install insurance-monitoring


Tutorials and introductions


Techniques and problem framing


Benchmarks and validation


Library comparisons