Collateralized Loan Obligations (CLOs): Overcollateralization (OC) Tests & Equity Tranche Arbitrage

Collateralized Loan Obligations (CLOs) represent a pivotal asset class in institutional credit markets, securitizing diversified portfolios of senior secured leveraged loans into rated debt tranches (AAA through BB) and unrated subordinated equity. Generating consistent 12–18% IRR on CLO equity requires modeling strict covenant boundaries—specifically Overcollateralization (OC) and Interest Coverage (IC) tests that govern cash diversion.

The Mechanics of CLO Coverage Tests & Cash Flow Redirection

How covenant breaches trigger automatic deleveraging of senior notes:

📊 The OC Test Compliance Invariant

The Overcollateralization (OC) ratio divides the total collateral principal balance (adjusted for CCC haircuts, defaulted assets, and discount obligations) by the aggregate principal amount of the senior tranches. If loan defaults cause the ratio to drop below the contractual trigger (e.g. 107.5%), junior interest and equity distributions are immediately cut off and redirected to amortize the Class A AAA notes until compliance is restored.

CLO Capital Structure & Subordination Tranche Profile

Tranche Class Credit Rating Subordination Buffer Spread (SOFR + bps)
Class A-1 / A-2AAA / Aaa36.0% – 38.0%+130 to +150 bps
Class B & C (Mezzanine)AA to BBB18.0% – 25.0%+200 to +320 bps
Class D & E (Junior)BB to B8.0% – 12.0%+600 to +850 bps
Subordinated NotesUnrated (Equity)0.0% (First-Loss)Residual Cash Flow (14–18% IRR)

Calculating CLO OC Ratio & Haircut Adjustments in TypeScript

Quantifying CCC excess concentration deductions across loan collateral:

export interface CLOPortfolioState {
  totalParBalance: number;
  defaultedParBalance: number;
  cccExcessHaircut: number;
  seniorDebtPrincipal: number;
  triggerThresholdPct: number;
}

export function evaluateOCTest(state: CLOPortfolioState): { ocRatio: number; isPassing: boolean; cureDeficit: number } {
  const adjustedCollateral = state.totalParBalance - state.defaultedParBalance - state.cccExcessHaircut;
  const ocRatio = (adjustedCollateral / state.seniorDebtPrincipal) * 100;
  const isPassing = ocRatio >= state.triggerThresholdPct;
  const requiredCollateral = (state.triggerThresholdPct / 100) * state.seniorDebtPrincipal;
  const cureDeficit = isPassing ? 0 : requiredCollateral - adjustedCollateral;

  return { ocRatio, isPassing, cureDeficit };
}

Structure Real Estate & Corporate Debt Facilities

Optimize leveraged credit and liquidity structures with seasoned capital advisory. Read our analysis of Securitized RMBS Tranche Waterfall Modeling, explore commercial truck litigation physics on CarInjuryAttorney ABS Forensics, review multi-tenant affiliate tracking on AffiliatePartners Postback Security, or consult with our structured debt team.