Population Stability Index Calculator
The population stability index between a reference distribution and a current one — the standard drift score for model inputs and scores — with the per-bin contributions that show where the shift is.
Bin the variable the same way in both samples and compare the share in each bin.
How the population stability index calculator works
Bin the variable the same way in both samples and compare the share in each bin. PSI sums, over bins, the change in share times the log of the ratio: bins that grew or shrank a lot contribute most. Under 0.1 is stable; 0.1 to 0.25 is worth watching; above 0.25 the population has shifted and the model needs a look.
It is symmetric, dimensionless and cheap, which is why it has been the monitoring default since credit scoring — and why a spike in it is usually the first sign a model is drifting.
Formula: PSI = Σ (actualᵢ − expectedᵢ) × ln(actualᵢ / expectedᵢ)
Worked examples
| Inputs | Population stability index | Note |
|---|---|---|
| A mild shift to the right | 0.03271 | PSI about 0.03 — stable |
| No change | 0 | exactly zero |
| A collapsed tail | 0.44898 | well over 0.25 |
FAQFrequently asked questions
What is the population stability index?
A score for how much a distribution has shifted between two samples, computed from binned shares. It came from credit scoring and is now the default drift metric for model monitoring.
What thresholds should I use?
The conventional ones: under 0.1 stable, 0.1 to 0.25 moderate, above 0.25 significant. They are rules of thumb; a stricter model deserves stricter lines.
How many bins?
Ten is the norm, often deciles of the reference sample. Too few bins hide shifts; too many make small samples noisy.
Why the epsilon?
An empty bin would give a log of zero. A tiny floor keeps the math finite and barely changes the answer; a bin that goes from 10% to 0% still scores very high.
Is PSI the same as KL divergence?
It is the symmetric sum of the two KL divergences. Same idea, made symmetric so it does not matter which sample is the reference.
Where these figures come from
- Vaswani et al. (2017) — Attention Is All You Need — the transformer architecture the memory arithmetic follows
- Kaplan et al. (2020) — Scaling Laws for Neural Language Models — the compute relationship used for training estimates
- Hoffmann et al. (2022) — Training Compute-Optimal Large Language Models — the tokens-per-parameter guidance ("Chinchilla")
- IEEE 754 — Standard for Floating-Point Arithmetic — the numeric formats behind bytes per parameter
- NIST AI Risk Management Framework — the US federal AI framework
Last checked: September 2026. The relationships here are architectural, not vendor-specific: bytes per parameter follow the numeric format, KV-cache size follows the transformer definition, and token-per-word ratios come from published tokeniser behaviour.