Population Stability Index (PSI) Calculator
Paste an expected (baseline) and an actual (current) distribution across the same bins to get the Population Stability Index — the standard measure of data and population drift for ML models and credit scorecards. You get the total PSI, a per-bin breakdown showing which segment moved, and a stable / moderate / significant verdict. It runs entirely in your browser and needs no signup.
How it works
The Population Stability Indexanswers a single question: has the distribution I am scoring today drifted away from the distribution my model was built on? It is the workhorse drift metric in credit-risk model validation and MLOps monitoring, defined in Naeem Siddiqi's Credit Risk Scorecards and implemented the same way in production tools such as Evidently AI.
You supply two distributions binned the same way — for a scorecard that is usually score deciles. Call the baseline the expected distribution and the current period the actual distribution. Each column is normalised to fractions:
Eᵢ = expectedᵢ / Σ expected Aᵢ = actualᵢ / Σ actual
Then each bin's contribution and the total are:
PSI = Σᵢ (Aᵢ − Eᵢ) · ln(Aᵢ / Eᵢ)
- Normalise. Counts and percentages both become fractions, so the scale of your data does not matter — only the shape of the two distributions.
- Clip empty bins. A 0 fraction makes
ln(Aᵢ/Eᵢ)diverge, so any 0 is replaced by a small ε (default0.0001) before the log — the Siddiqi / Evidently convention. Every term stays finite; noInfinityorNaNcan appear. - Sum the contributions. Each
(Aᵢ − Eᵢ)·ln(Aᵢ/Eᵢ)is always non-negative, because the difference and the log ratio share the same sign — so PSI is a distance-like number that grows as the two distributions separate. - Read the verdictagainst Siddiqi's action thresholds: below 0.10 is stable, 0.10 to 0.25 is a moderate shift to investigate, and 0.25 or above is a significant shift that usually calls for recalibration or retraining.
The same formula applied to a single input feature rather than the model output is called the Characteristic Stability Index (CSI), which is how analysts trace which variable caused a population to drift. The thresholds are defined for the natural log; the log2 option reports the identical index in bits (PSI / ln 2) for readers who prefer an information-theoretic unit.
Worked examples
Frequently asked questions
Sources & references
- Naeem Siddiqi — Credit Risk Scorecards: Developing and Implementing Intelligent Credit Scoring (Wiley Finance): PSI formula and action thresholds
- Evidently AI — Data drift documentation: PSI definition, binning guidance, and the zero-bin epsilon convention
The formula and thresholds on this page were last cross-checked against these sources on 2026-07-12. PSI is a stable mathematical definition, so this tool needs no rate or schedule updates — only the worked examples are periodically re-reconciled.
Related tools
Comments & feedback
Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.
Found a bug, edge case, or want to suggest an improvement?
Email me at [email protected] — most fixes ship within 24 hours.