Now Reading
Computing Roll Rates using Markov Chain

Computing Roll Rates using Markov Chain

Rohit Garg

Roll rate is the percentage of customers who become increasingly delinquent on their account. Banks use roll rates to predict credit losses based on delinquency. Analysing roll rates is an effective way to review overall trends and estimate future performance.

Figure 1: Roll Rates

2 Markov Chain

2.1 Transition Model

Roll rate model is a loan level state transition where the probability of transiting to a new state is dependent on information in current state and does not depend on prior states. For the purpose of model development, the portfolio is classified into 4 distinct and mutually exclusive loan states based on Days Past Due (DPD)

Table 1: Delinquency States  

Clean A loan that is not delinquent. Includes 1-29 DPD
30 DPD A loan that is 30-59 DPD
60 DPD A loan that is 60-89 DPD
90 DPD A loan that is 90+ DPD. This is the terminating state

The predictions are chained together to create the probability that an account is in one of the 4 states, N periods in future.

Table 2: Loan Sate Transition Matrix

To (T+1)
Clean 30 DPD 60 DPD 90 DPD Total
From (T) Clean P C_C P C_30 0 0 1
30 DPD P 30_C P 30_30 P 30_60 0 1
60 DPD P 60_C P 60_30 P 60_60 P 60_90 1
90 DPD 0 0 0 1 1

Once the loan enters terminal state it is locked and cannot exit. Hence the probability of transition to any other state is zero. Probability of an account to go from clean to 60 DPD, clean to 90 DPD, and 30 DPD to 90 DPD is zero, since more than one-time period is required for these jumps.

Table 3: Grading of transitions

Improving 30 DPD to Clean, 60 DPD to Clean, and 60 DPD to 30 DPD
Deteriorating Clean to 30 DPD, 30 DPD to 60 DPD, and 60 DPD to 90 DPD
Base Clean to Clean, 30 DPD to 30 DPD, and 60 DPD to 60 DPD

2.2 Introduction to Markov Chain

Figure 2: Markov Chain

Markov chain is a model of some random process that happens over time. Markov chains are called that because they follow a rule called Markov property. The Markov property says that whatever happens next depends on how it is right now (it does not have a memory).

Table 4: Probability Table

From (T) To (T+1) Probability
30 DPD 30 DPD P4
30 DPD 60 DPD P5
60 DPD 30 DPD P7
60 DPD 60 DPD P8
60 DPD 90 DPD P9

2.3 Mathematics behind Markov Chain

Mechanically the transition model works in the following way, suppose we have n sates:

S = {S1, S2, …, Sn}

At the start of forecast an account is in the specific state. For example an account in state1 (Clean) has 100% probability of being in state 1 (Clean) and 0% probability of being in any other state:

U = {1, 0, 0, 0}

Transition matrix which governs the flow from row to column in each state is given by:

Each element of the matrix mij represents the probability of moving from state i to sate j. By definition sum of probabilities in each row i must be equal to 1:

∑mij (over j) = 1

If sij is a terminal state then transition rate from i to j is equal to 1. The dynamics governing the movements of units from period t to t+1 is:

U (t+1) = U (t) * M


Iteration Clean 30 DPD 60 DPD 90 DPD
0 (start) 1.0000 0.0000 0.0000 0.0000
1 0.9901 0.0099 0.0000 0.0000
2 0.9837 0.0141 0.0022 0.0000
3 0.9791 0.0161 0.0038 0.0010
4 0.9754 0.0171 0.0048 0.0027
5 0.9721 0.0177 0.0054 0.0049

3 Implementation in SAS

3.1 SAS Code Snippets

Step 1: Setting up the Transition Matrix: The historical transition data is analysed and the following transition matrix is calculated:

Table 5: Transition Matrix

To (T+1)
Clean 30 DPD 60 DPD 90 DPD Row Total
From (T) Clean 0.9901 0.0099 0.0000 0.0000 1
30 DPD 0.3478 0.4348 0.2174 0.0000 1
60 DPD 0.0909 0.1136 0.3409 0.4545 1
90 DPD 0.0000 0.0000 0.0000 1.0000 1

Step 2: Defining Starting Population: The starting population is the number of accounts in various delinquency buckets at the start of the observation window:

%let clean = 25250; à there are 25250 accounts in clean bucket

%let dpd30 = 575; à there are 575 accounts in 30 DPD

%let dpd60 = 220;à there are 220 accounts in 60 DPD

%let dpd90 = 0; à there are 0 accounts in 90 DPD, since any account going into 90 DPD is moved out of the book

Step 3: Matrix multiplication: The transition matrix is multiplied with the number of accounts in each bucket (for time period T) to get the number of accounts in each bucket (for time period T+1):

data calc_mat;

See Also
Can A Chartered Accountant Become Data Scientist?

clean_to_clean = 0.9901 * &clean.;

clean_to_dpd30 = 0.0099 * &clean.;

dpd30_to_clean = 0.3478 * &dpd30.;

dpd30_to_dpd30 = 0.4348 * &dpd30.;

dpd30_to_dpd60 = 0.2174 * &dpd30.;

dpd60_to_clean = 0.0909 * &dpd60.;

dpd60_to_dpd30 = 0.1136 * &dpd60.;

dpd60_to_dpd60 = 0.3409 * &dpd60.;

dpd60_to_dpd90 = 0.4545 * &dpd60.;

call symput(‘clean’,sum(clean_to_clean,dpd30_to_clean,dpd60_to_clean));

call symput(‘dpd30’,sum(clean_to_dpd30,dpd30_to_dpd30,dpd60_to_dpd30));

call symput(‘dpd60’,sum(dpd30_to_dpd60,dpd60_to_dpd60));

call symput(‘dpd90’,sum(&dpd90.,dpd60_to_dpd90));


Full code can be found at:

3.2 12-Months Forecasting

Figure 3: 12-Months Forecasting

3.3 Limitations of Markov Chain

  • While roll rate transition methodology is not perfect, the tool is well suited for top down overview approach of estimating future performance and assessing the overall health of the portfolio.
  • In general, the use of historical roll rate transitions does not account for external risk factors and macro-economic conditions, so roll rate transition matrices may be better suited for short term forecasting.
What Do You Think?

If you loved this story, do join our Telegram Community.

Also, you can write for us and be one of the 500+ experts who have contributed stories at AIM. Share your nominations here.

Copyright Analytics India Magazine Pvt Ltd

Scroll To Top