Small Group Tutorials

Here to help students catch up, keep up, and move ahead. Book a consultation here.

How Credit-Rating Transition-Matrix Algorithms Model Migration and Default: Markov Chains, Cohorts, Multi-Year Powers, Absorbing States and Stress Tests

Reader question: If a company is rated BBB today, how can a bank or risk system estimate the chance that it will still be BBB, upgrade, downgrade, or default one year from now — and what assumptions are hidden inside that estimate?

The basic machine is a credit-rating transition matrix. Each row represents a starting rating, each column a possible rating at the end of a chosen horizon, and each cell contains an estimated transition probability. The row must sum to one because the issuer has to end the period in one of the allowed states, including a withdrawal or not-rated state if the methodology keeps one.

The mathematics is deceptively compact. A matrix can be multiplied by itself to project several periods ahead, and default can be represented as an absorbing state. But those operations are valid only under assumptions about time-homogeneity, Markov behaviour, rating definitions, withdrawals, data windows and economic regimes. A matrix can therefore be numerically correct and economically misleading at the same time.

What this page owns — and what it does not

This page owns the computational transformation:

historical rating paths → one-period stochastic matrix → multi-period migration/default projections.

It does not replace Basel IRB capital algorithms, which consume PD, LGD and other regulatory inputs; model-drift detection, which asks whether a fitted model remains representative; or reverse stress testing, which searches for scenarios that breach a constraint.

This article is mathematical and computational education. It is not a credit opinion on any borrower or a recommendation to buy, sell or lend.

Step 1: define the rating states

Suppose the state space is:

{AAA, AA, A, BBB, BB, B, CCC, D}.

The final state D denotes default. A real study may use more granular rating categories, combine categories, include selective/default subcategories, or include an NR/withdrawn state. The definitions must be fixed before counting transitions because changing the buckets changes every probability.

S&P Global’s current default-and-transition studies publish long-run transition tables using stated rating classes and a documented static-pool methodology. Its 2025 studies, published in 2026, are a useful public example of why definitions and cohort construction belong beside the matrix rather than being treated as metadata.

Step 2: count observed one-period transitions

Let Nij be the number of issuers that begin the period in rating i and end the period in rating j. A simple cohort estimator is:

pij = Nij / ΣjNij.

For a BBB row, imagine 1,000 issuers begin the year BBB and the outcomes are:

  • 30 become A;
  • 880 remain BBB;
  • 70 become BB;
  • 15 become B;
  • 5 default.

The estimated row becomes:

[0.03, 0.88, 0.07, 0.015, 0.005]

for the listed destination states. The probabilities sum to one.

The row-sum invariant

For every starting state i:

Σjpij = 1, with pij ≥ 0.

A matrix satisfying these properties is row-stochastic.

If rows do not sum to one after rounding, that can be a presentation issue. If they do not sum to one before rounding, the model has a missing state, inconsistent denominator or implementation defect.

Static pools and why denominators matter

S&P Global describes an annual static pool as the set of rated entities at the beginning of a period, then observes their ratings at the end. An annualized rolling approach can instead start monthly cohorts and observe each 12 months later.

These are not guaranteed to produce identical estimates because the weighting of calendar periods and entrants differs.

A matrix is therefore not merely “historical frequencies.” It is historical frequencies under a precise sampling design.

Withdrawn ratings create a denominator choice

An issuer can leave the observable rating system because debt matures, the rating is withdrawn, the company is acquired, coverage stops or another event occurs.

There are several possible treatments:

  • keep NR/withdrawn as an explicit destination state;
  • remove withdrawals from the denominator;
  • censor the observation under a duration/hazard estimator;
  • apply a methodology-specific redistribution or survival treatment.

These choices affect every remaining probability. A system that silently drops withdrawals can overstate or understate transition rates depending on why observations disappear.

Cohort versus duration estimators

A cohort estimator observes a start state and an end state over a fixed interval. If an issuer changes ratings several times within the year, the intermediate path can disappear from the final count.

A duration or continuous-time approach uses time spent in each state and observed transition events. It can estimate instantaneous migration intensities rather than only annual start-to-end frequencies.

The two approaches answer slightly different statistical questions. Cohort matrices are easy to explain and audit. Duration methods can use more path information, especially when ratings change frequently.

Default as an absorbing state

In a standard migration model, default is often treated as absorbing:

P(D → D) = 1.

Once an issuer enters the modeled default state, it does not migrate back to a performing rating inside that same Markov chain. Recovery and post-restructuring ratings belong to separate economic processes unless the model explicitly defines otherwise.

This makes the final row:

[0, 0, …, 0, 1].

From one year to several years: matrix powers

If the same transition law applies every year and the next transition depends only on the current rating, then the two-year matrix is:

P(2) = P².

More generally:

P(n) = Pⁿ.

The cell (i,j) of sums every possible intermediate path:

ij = ΣkPikPkj.

A BBB issuer can therefore default within two years through paths such as BBB→BBB→D, BBB→BB→D, BBB→B→D and so on. Matrix multiplication performs that path aggregation automatically.

Why cumulative default probability is not n times the one-year rate

If a BBB one-year default probability is 0.5%, multiplying by five to obtain 2.5% assumes a crude linear accumulation and ignores migration.

In a transition matrix, an issuer can first downgrade into a riskier state and then default with a much higher conditional probability. Conversely, surviving issuers can upgrade.

The multi-year default probability is the default-column entry of Pⁿ under the homogeneous Markov assumptions, not simply n × pdefault.

The Markov assumption

The basic Markov property says:

P(Xt+1 = j | Xt, Xt-1, …) = P(Xt+1 = j | Xt).

In words: once we know today’s rating, older rating history adds no information about the next transition.

That is convenient, but it is testable rather than sacred. Empirical research has found that credit-rating processes are not always perfectly time-homogeneous or Markov. Rating momentum is one reason: a BBB issuer recently downgraded from A can behave differently from a BBB issuer that has been stable for years.

The time-homogeneity assumption

Using Pⁿ also assumes the same transition law applies in every period:

P2027 = P2028 = … = P.

But credit migration is cyclical. Downgrades and defaults tend to rise in stress regimes. Upgrades can dominate in strong recoveries.

A 30-year average matrix can be stable enough for a long-run benchmark yet poor for a one-year recession forecast. That is not a numerical failure; it is a mismatch between the estimation window and the forecasting job.

Testing the Chapman–Kolmogorov implication

If a process is homogeneous Markov, a two-year empirical transition matrix should be broadly consistent with the square of the one-year matrix:

P(2 years) ≈ P(1 year)².

Large systematic discrepancies are evidence against the simple homogeneous Markov model.

This is a useful falsifier because it compares an implication of the model with separately observed data rather than merely checking whether the original matrix sums correctly.

Continuous-time migration and generator matrices

A continuous-time Markov model uses a generator matrix Q. Off-diagonal entries are nonnegative transition intensities; each row sums to zero:

qii = −Σj≠iqij.

The transition matrix over horizon t is:

P(t) = eQt.

This allows non-integer horizons such as 18 months without inventing fractional matrix powers ad hoc.

However, not every empirically estimated annual transition matrix has a clean economically sensible generator. The “embedding problem” is itself a diagnostic boundary.

Sparse rows and why low-default grades are statistically difficult

High-quality ratings can have very few defaults. That sounds reassuring economically but creates a statistical problem.

If 500 AAA issuers contain zero defaults in the sample, the raw estimate is zero. It does not prove the true one-year default probability is exactly zero.

Small counts produce wide uncertainty. Techniques such as longer pooled histories, Bayesian priors, smoothing, shrinkage or parametric structure can reduce sampling noise, but each adds assumptions.

Zero cells are not always structural zeros

A cell may be zero because a transition is impossible under the rating system, or merely because it did not occur in the sample.

For example, AAA→B in one year may be historically rare but not mathematically impossible. Treating every observed zero as a hard zero can make stress projections unrealistically brittle.

Evidence polarity: what supports confidence?

Evidence for a transition matrix includes large and representative cohorts, stable rating definitions, transparent handling of withdrawals, rows summing to one, credible out-of-sample transition frequencies, sensible monotonicity of default risk by rating, and multi-period observations broadly compatible with the projected matrix powers.

Evidence against confidence includes tiny rows, changing rating methodologies, unexplained NR treatment, large business-cycle instability, recent-downgrade momentum not captured by the state definition, or a two-year empirical matrix that strongly contradicts the square of the one-year matrix.

Monotonicity is a useful but not absolute diagnostic

One normally expects lower ratings to have higher default probabilities:

PD(AAA) ≤ PD(AA) ≤ … ≤ PD(B).

Sampling noise can violate this ordering in small datasets. A one-year historical sample might even show zero defaults in one low rating and a positive rate in a higher rating.

A modeler must decide whether to preserve raw empirical noise or impose a monotone structure. The choice should be explicit because smoothing improves stability while moving the model away from pure observed frequency.

Economic-state-conditioned matrices

One response to nonstationarity is to build matrices conditional on economic regimes:

Pgood, Pneutral, Pstress.

A 2026 statistical study by Kalkbrener illustrates a Markov framework in which rating migration depends on economic-state transitions. The idea is more flexible than one unconditional matrix but introduces a second state process and additional calibration risk.

A stress matrix should therefore not be treated as “the true matrix in bad times” unless the regime definition and historical evidence support it.

Stress transformations

A practical stress engine can alter:

  • downgrade intensities;
  • default intensities;
  • upgrade probabilities;
  • rating persistence;
  • correlation among obligors;
  • economic-state weights.

But after stressing, the matrix must still obey probability constraints. Negative cells or rows summing to 1.08 are mathematical failures, even if the intended macro scenario is plausible.

Portfolio migration simulation

For a portfolio with current rating distribution vector v:

vt+1 = vtP.

This gives the expected distribution after one period under the matrix.

For scenario simulation, each issuer can instead draw a destination rating from its row. Correlated migration requires an additional dependence model; independently drawing every issuer understates joint stress when credit conditions move together.

Inputs and outputs

A production-quality transition-matrix engine can require:

  • rating scale and mapping version;
  • issuer identifiers;
  • rating timestamps and histories;
  • default definition;
  • withdrawal/censoring policy;
  • cohort or duration estimator;
  • observation window;
  • sector/geography filters;
  • economic regime if conditional matrices are used;
  • smoothing or Bayesian assumptions;
  • projection horizon.

Outputs can include the one-period matrix, multi-period matrices, cumulative default probabilities, migration distributions, confidence intervals, row sample sizes, stress matrices and validation statistics.

Counterexample: a row-stochastic matrix can still be wrong

Suppose every row sums perfectly to one, but all withdrawals were deleted from the sample and those withdrawals disproportionately occurred among weak issuers.

The matrix is mathematically valid but statistically biased.

Counterexample: a long-run average can fail in a recession

A 40-year matrix may estimate BBB→D at a modest average rate. During a severe recession, downgrade and default intensities can rise together.

Using the unconditional matrix as a short-horizon stress forecast can materially understate tail migration even though the historical calculation is correct.

Counterexample: multiplying matrices can create false precision

If the one-year matrix is estimated with uncertainty, P¹⁰ produces a crisp 10-year number but does not eliminate that uncertainty. Small errors in transition probabilities can compound across repeated multiplication.

A long-horizon result should therefore carry model uncertainty, not merely more decimal places.

Counterexample: default recovery is outside the absorbing-state matrix

Once an issuer defaults, a migration matrix can put probability one on remaining in D. But the economic value of defaulted debt depends on recovery, restructuring timing and seniority.

The matrix predicts state movement; recovery valuation belongs to a separate loss model.

Weak links in implementation

Rating-map drift. Historical categories are remapped inconsistently after methodology changes.

Survivorship bias. Failed or withdrawn issuers disappear from the database.

Duplicate issuer histories. Mergers or identifier changes create double counting.

Calendar mismatch. Some rows use 12-month windows and others calendar-year windows.

Hidden smoothing. Published probabilities no longer equal raw counts but the transformation is undocumented.

Markov overreach. Matrix powers are used even when history dependence is material.

Regime blindness. A stable-period sample is projected into stress.

Correlation omission. Issuer migrations are simulated independently despite shared macro risk.

Diagnostics: how to test the engine

  • row-sum test: every probability row sums to one before display rounding.
  • non-negativity test: no cell is below zero or above one.
  • absorbing-state test: the default row behaves exactly as specified.
  • cohort replay: regenerate a published historical matrix from issuer histories.
  • withdrawal test: compare results under explicit alternative NR treatments.
  • sample-size test: report row counts beside probabilities.
  • Chapman–Kolmogorov test: compare observed multi-year transitions with matrix powers.
  • momentum test: split issuers by prior upgrade/downgrade history and test whether current rating alone is sufficient.
  • cycle test: estimate matrices in expansion and recession subperiods.
  • stress-validity test: after transformations, recheck probability constraints and monotone default ordering where imposed.
  • out-of-sample test: use a later cohort to assess predicted versus realized migration.

What would falsify confidence?

Confidence should be withdrawn if the matrix cannot be reproduced from its source histories; rows do not sum to one; withdrawals materially change results but are undocumented; projected two- or three-year transitions strongly disagree with independent observations; the Markov assumption fails under obvious rating-momentum tests; or recent economic regimes produce transition patterns far outside the historical calibration with no stress adjustment.

Alternatives

A hazard/default-intensity model can focus directly on time to default rather than full rating migration. Structural credit models link default to firm asset values. Point-in-time scorecards estimate borrower-specific PDs from covariates. Hidden Markov or regime-switching models allow latent economic states. Continuous-time generator models use event timing more efficiently.

The transition matrix remains valuable because it is transparent, auditable and naturally connected to linear algebra. Its weakness is also its strength: it compresses a complicated credit path into a small set of states and transition probabilities.

How this connects to the surrounding knowledge estate

The default column can feed PD reasoning used by Basel IRB calculations. Stress-conditioned matrices can feed reverse stress tests. Changes in realized migration frequencies belong in model-drift monitoring. Rating-state changes can also alter bond-index eligibility, linking this page to bond-index construction.

Verification and update triggers

Preserve the rating-map version, issuer history snapshot, estimator, withdrawal treatment, default definition, sample window, smoothing assumptions and economic-regime definition. Revalidate after rating-methodology changes, mergers of rating scales, new default-study releases, large credit cycles, material changes in issuer mix, database migrations or repeated out-of-sample migration misses.

Primary and high-quality references

Educational boundary: This article explains stochastic credit-migration mathematics. It is not a rating, lending decision or personalized financial recommendation.

Discover more from Bukit Timah Tutor

Subscribe now to keep reading and get access to the full archive.

Continue reading