Tabellab
Data, tech, science & health

Population Stability Index (PSI): how to calculate it, with an Excel example

The Population Stability Index (PSI) measures how far a distribution has shifted between a baseline sample and a current sample. For each bin, multiply the difference in shares by the log of their ratio, then add up the bins: PSI = Σ (current % − baseline %) × ln(current % ÷ baseline %). In the example, the score distribution of a credit model on 10,000 baseline and 2,500 current applications gives a PSI of 0.153, a moderate shift under the usual rule of thumb: below 0.1 stable, 0.1 to 0.25 moderate, 0.25 or more a major shift.

Updated 21 Oct 2026 5 min read By Tabellab team

The PSI formula

PSI = Σ (Aᵢ − Eᵢ) × ln(Aᵢ ÷ Eᵢ)

Eᵢ is the expected share of bin i, from the baseline (often the model's development or training sample), and Aᵢ the actual share in the current sample. Both are shares of their own sample, so each column adds up to 100%.

Every term is zero or positive: if the current share is higher, both the difference and the log are positive, if it is lower, both are negative. So PSI is 0 for identical distributions and grows with every shift, whichever way it goes. Mathematically it is a symmetric version of the Kullback–Leibler divergence: the KL divergence of A from E plus that of E from A.

Step 1: bins and shares

Cut the baseline into bins, usually ten deciles of the baseline scores, so that every baseline bin holds about 10%. Then count the current sample in the same bins, with the same cut-off values. In Excel, COUNTIFS(scores,">"&lower,scores,"<="&upper) counts one bin, and FREQUENCY counts all bins at once.

The two samples differ in size, 10,000 against 2,500, so compare shares, not counts: =B2/B$12 for the baseline and =C2/C$12 for the current sample.

Step 2: the PSI term per bin and the total

Each bin's term is =(E2-D2)*LN(E2/D2), copied down. The PSI is the sum of the terms, =SUM(F2:F11) = 0.153. You can also do it in one cell from the counts: =SUMPRODUCT((C2:C11/C12-B2:B11/B12)*LN((C2:C11/C12)/(B2:B11/B12))).

The terms show where the shift is. Decile 1 fell from 10.0% of applications to 4.4% and contributes 0.0465, 30% of the whole PSI. Decile 10 rose from 10.0% to 17.0% and adds 0.0371. Applications have moved from the bottom deciles to the top ones, while the middle hardly changed.

Worked example: PSI of a credit model's score deciles

The counts per score decile are inputs (yellow), the deciles are cut on the baseline scores. Columns D and E turn the counts into shares, column F holds the PSI term of each decile and F12 the PSI. Rows 15 to 20 classify the result and find the decile that drives it.

Worked example: PSI of a credit model's score deciles
ABCDEF
1Score decileBaseline nCurrent nBaseline %Current %PSI term
211,00411010.0%4.4%0.0465
3299814010.0%5.6%0.0253
431,00117010.0%6.8%0.0124
541,00320010.0%8.0%0.0046
6599623010.0%9.2%0.0006
761,00025510.0%10.2%0.0000
871,00228510.0%11.4%0.0018
9899732010.0%12.8%0.0071
10999936510.0%14.6%0.0175
11101,00042510.0%17.0%0.0371
12Total / PSI10,0002,500100%100%0.153
13
14Reading the PSIValue
15Watch from (PSI ≥)0.10
16Act from (PSI ≥)0.25
17StatusModerate shift
18PSI in one formula0.153
19Decile with the largest term1
20Share of PSI from that decile30%
Key formulas
  • E2=C2/C$12Current share
  • F2=(E2-D2)*LN(E2/D2)PSI term of the bin
  • F12=SUM(F2:F11)PSI
  • B17=IF(F12>=B16,"Major shift",IF(F12>=B15,"Moderate shift","Stable"))Rule of thumb
  • B19=INDEX(A2:A11,MATCH(MAX(F2:F11),F2:F11,0))Largest contributor

Synthetic data for a fictional lender. The 0.1 and 0.25 limits are industry conventions, not a statistical test. Educational only, not financial or model-risk advice.

Reading the PSI: 0.1 and 0.25

The common rule of thumb from credit scoring is: below 0.1 no significant change, 0.1 to 0.25 a moderate shift worth investigating, 0.25 or more a major shift that needs action. With thresholds in cells, one formula labels the result: =IF(F12>=B16,"Major shift",IF(F12>=B15,"Moderate shift","Stable")).

These limits are conventions, not a statistical test. The PSI also depends on the number of bins and on sample size: small samples produce noisy shares and a higher PSI by chance alone. Keep the thresholds in cells where the team can change them, and watch the trend over several periods rather than one value.

Empty bins and other practical details

  • A bin with 0% in either sample makes LN fail (the ratio is 0 or a division by zero). Replace the zero share with a tiny value such as 0.0001, or merge the bin with its neighbour.
  • Fix the bin edges on the baseline and keep them. Recomputing deciles on the current data puts 10% in every bin and hides the shift.
  • Categorical features such as an application channel use their categories as bins.
  • Missing values deserve their own bin. A sudden jump in missing values is often a broken data feed, not a changing population.

PSI on features, on scores and next to other tests

Run the PSI on the model's score and on every input feature, where it is sometimes called the characteristic stability index. A shift in the score tells you that something moved, the feature PSIs tell you where. For categorical data, a chi-square test adds a p-value, and for continuous data the Kolmogorov–Smirnov statistic measures the largest gap between the two cumulative distributions.

A drift alarm does not prove that the model got worse. Once outcomes arrive, check performance directly, for example with a confusion matrix, precision and recall.

Common mistakes

  • Flipping the log ratio. LN(baseline ÷ current) makes every term negative. Use current ÷ baseline, matching the order of the difference.
  • Using counts instead of shares. With samples of different size, counts always differ. Divide each count by its own sample total.
  • Recomputing bins on the current data. New deciles put 10% in every bin and the PSI drops to about zero. Keep the baseline edges.
  • Ignoring empty bins. A 0% share breaks LN. Smooth it with a tiny value or merge bins.
  • Averaging the terms. The PSI is the sum over all bins, not the mean.
  • Treating 0.1 and 0.25 as a significance test. They are rules of thumb. Small samples can cross them by chance.

Frequently asked questions

What is a good PSI value?

Below 0.1 is usually read as stable, 0.1 to 0.25 as a moderate shift to investigate and 0.25 or more as a major shift. These are industry conventions, not statistical limits.

How do you calculate PSI in Excel?

Put the baseline and current shares of each bin in two columns, calculate =(current-baseline)*LN(current/baseline) for each bin and add up the results. SUMPRODUCT can do it in one cell.

What is the difference between PSI and KL divergence?

The KL divergence measures how one distribution differs from another in one direction. The PSI adds the KL divergence in both directions, so it is symmetric: swapping baseline and current gives the same value.

How many bins should the PSI use?

Ten bins cut at the deciles of the baseline are the most common choice, and twenty are also used. More bins detect finer shifts but need larger samples. Use the same number and the same edges every period.

Practise it in a lab

Related guides

Reading is step one. Doing is step two.

Every guide links to a lab where you build the same calculation in an online spreadsheet and get instant feedback.

Open the lab