Finding the Hidden Risks: Portfolio Stress Detection in Private Credit

How to identify vulnerable borrowers and concentration risks before they become public problems

May 28 2026

Elijah PettyElijah PettyTechnical Writer @Deephaven
A stock market graph on a computer screen, crawling with cockroaches

Private credit is facing a reckoning. Blue Owl recently restricted withdrawals from one of its funds amid mounting concerns over bad loans. Defaults are rising, particularly among smaller borrowers. Fraud allegations at portfolio companies are making headlines. Uncertainty grows every time an analyst invokes the "cockroach theory" — if you see one problem loan, there are likely many others hiding in your portfolio. Call them stockroaches — borrowers that look stable in quarterly reports until they don't, and rarely show up alone.

If you're managing a private credit fund right now, you're asking yourself the same question every day: What else is hiding in my portfolio? You have 60+ borrowers across multiple sectors. Interest coverage ratios are hovering around 2.0x, leaving almost no margin for error. Nearly 40% of your portfolio might be concentrated in software and tech. Your Limited Partners (LPs) are getting nervous, with some funds already seeing redemption requests.

Traditional quarterly reporting doesn't cut it anymore. By the time you receive financials — 30 to 45 days after quarter-end — you're looking at data that's already 4-5 months old. You need to identify patterns, stress points, and concentration risks across your entire portfolio. You need to know which borrowers look like the ones that already defaulted. You need to demonstrate to LPs that you have a handle on risk.

In a market where one cockroach suggests many others, the funds that survive will be those that can see around corners.

In this post, we'll build a portfolio stress detection system using Deephaven and realistic quarterly financial data. You'll learn how to segment your portfolio by risk factors, run stress tests across multiple rate scenarios, quantify sector concentration, and use pattern matching to find borrowers that look like the ones that already defaulted.

Understanding the current market stress

Private credit funds are navigating five interconnected risks that are testing portfolio management like never before.

  1. Small borrower vulnerability: Borrowers with less than $25M in EBITDA are most exposed to rising rates and economic stress. These companies often lack the financial cushion to weather downturns, and they're showing the highest default rates in the current environment.

  2. Tight interest coverage: With coverage ratios stabilizing around 2.0x, there's little room for error. Any EBITDA decline or rate increase could trigger covenant breaches. The margin between compliance and default has never been thinner.

  3. Sector concentration: Software and tech companies make up nearly 40% of many private credit portfolios. Sector-wide stress could cascade across your entire book, and recent tech sector challenges are raising red flags.

  4. Hidden correlations: The "cockroach theory" suggests that visible problems are just the tip of the iceberg. Borrowers with similar profiles to known problem loans may be at risk, but traditional quarterly reviews don't surface these patterns.

  5. LP confidence: Growing redemptions mean you need to demonstrate strong risk management and portfolio transparency to retain investor confidence. Static quarterly reports aren't enough anymore.

Deephaven makes portfolio-wide analysis tractable: the same table operations that work for one borrower work for sixty, and adding more scenarios or metrics doesn't require more code.

Loading your portfolio data

We'll work with three types of data that private credit funds already collect as part of standard operations.

  • Quarterly borrower financials: These arrive 30-45 days after quarter-end. Borrowers submit financial statements showing EBITDA, total debt, interest expense, cash balances, and other key metrics. These typically come as PDF or Excel files that get manually entered into spreadsheets.

  • Loan terms and covenants: These come from your credit agreements. You track loan amounts, interest rates, and covenant thresholds (maximum leverage ratios, minimum coverage ratios, minimum liquidity requirements) for each borrower.

  • Historical data: This accumulates from past quarterly reports. For trend analysis, we'll use the past 8 quarters, but the analyses work fine with just the current quarter if you're getting started.

Deephaven reads data from CSV, Parquet, Excel, and most other common formats. If your quarterly data lives in spreadsheets or gets exported from your loan management system, you can load it directly without conversion.

Note

This analysis uses quarterly data that private credit funds already collect. No real-time feeds or proprietary data sources required. The sample data below is randomly generated — specific numbers, sector breakdowns, and borrower counts are illustrative only and will differ from any real portfolio.

Generating sample portfolio data

Click to expand: Sample data generation code

For this example, we'll create realistic portfolio data directly in Deephaven. In practice, you'd load this from your loan management system or consolidated Excel files.

This creates 62 borrowers with realistic financial metrics and loan terms. The data includes:

  • Sector concentration: ~46% in tech-related sectors (Software, SaaS, Technology, IT Services)
  • Size distribution: Mix of small (<$25M EBITDA), medium ($25-50M), and large (>$50M) borrowers — small borrowers are the most numerous segment (~55%)
  • Risk profiles: Varying leverage ratios (3.0x - 5.5x) and covenant thresholds by industry
  • Problem borrowers: ACME_Corp, TechStart_Inc, and others for pattern matching examples

The write_csv calls save these tables to the /data folder so we can load them in the next step. In practice, you'd load directly from the Excel files or CSV exports your borrowers and loan management system already produce.

Now let's load the data and set up our analysis environment.

Note

The sample data above is randomly generated for illustration. Any specific counts or ratios discussed in the analysis sections below come from this synthetic data — they are not benchmarks and will differ from a real portfolio.

This gives us a complete view of the portfolio with both financial metrics and covenant requirements in one table. Every row is one borrower with their current financials and loan terms.

Now let's get a quick overview of the portfolio to understand what we're working with.

The portfolio summary tells you the averages — but the cockroach theory is about what averages conceal. The minimum coverage ratio and maximum leverage already flag outliers worth investigating.

Identifying small borrower vulnerability

Borrowers with less than $25M in EBITDA are showing the highest default rates in the current market. These companies typically have less financial cushion, more sensitivity to rate changes, and fewer resources to weather economic stress. Let's segment our portfolio by borrower size to understand our exposure to this vulnerable group.

We'll create three size segments: small (under $25M EBITDA), medium ($25-50M), and large (over $50M). Then we'll calculate average metrics for each segment to see how risk profiles differ.

The results reveal a concerning pattern: small borrowers carry the highest average leverage ratio of any segment and the largest share of borrowers in elevated-risk territory. They also make up more than half the portfolio by borrower count. The most stressed segment is also the most numerous — and the hardest to monitor individually.

Now let's identify which specific small borrowers are showing the highest risk indicators.

This filters down to a subset of small borrowers with either high leverage or low coverage. The combination of small size and stressed metrics makes these the most likely candidates for near-term problems. Small borrowers rarely default in isolation — one is a signal worth tracing across the rest of the segment.

Small borrowers may look like a smaller credit risk because exposure is concentrated elsewhere — but their metrics often tell a different story.

Stress testing interest coverage

With coverage ratios hovering around 2.0x across the portfolio, there's almost no margin for error. Rising interest rates directly impact interest expense, and even a modest rate increase could push borrowers into covenant breaches. Let's model what happens to coverage ratios under different rate scenarios.

We'll test three scenarios: a 50 basis point increase (modest), 100 basis points (moderate), and 200 basis points (severe). For each scenario, we'll calculate the new interest expense, the resulting coverage ratio, and whether the borrower would breach their covenant.

This creates parallel scenarios showing how each borrower's coverage ratio would change under different rate environments. The MarginToBreach calculation shows how much cushion each borrower has. Negative values mean they'd breach their covenant.

Let's identify which borrowers are most vulnerable to rate increases.

The results are sobering. Some borrowers are already in breach of their coverage covenants. Even a modest rate increase pushes that number higher, and at 100bp, close to half the portfolio would breach. At 200bp, roughly three-quarters would be in violation.

Let's visualize how coverage ratios change under stress for the top 10 borrowers by exposure.

The visualization shows how quickly coverage ratios deteriorate under rate stress. Several borrowers that look safe today would breach covenants with just a 100bp increase. The borrowers currently closest to their covenant minimums are the ones that need immediate attention.

Key insight: A meaningful share of the portfolio would breach coverage covenants with a 100bp rate increase. Rate stress is often how you discover the cockroaches you couldn't see in static quarterly reports — treat these vulnerable borrowers as candidates for the same pattern-matching in the next section.

Analyzing sector concentration

Nearly 40% of private credit portfolios are concentrated in software and tech companies. This concentration creates correlated risk: if the sector experiences stress, it could cascade across a large portion of your portfolio. Let's quantify our sector exposure and identify whether we have a concentration problem.

We'll aggregate the portfolio by industry sector to calculate total exposure, borrower count, and average risk metrics for each sector. This shows both where our capital is deployed and which sectors are showing the most stress.

The sector breakdown reveals significant concentration in tech-related sectors. Look for sectors where high exposure and elevated risk metrics overlap — that combination indicates correlated risk, and it's where a single troubled borrower is most likely to be followed by others.

The cockroach theory operates at the sector level too. One borrower in the tech sector showing rising leverage is worth asking whether others in the same sector are tracing a similar trajectory.

Let's group all tech-related sectors together to see the full picture of our tech exposure.

This aggregation reveals your sector concentration and whether specific industries show elevated risk metrics compared to your portfolio average. Look for sectors where you have both high exposure and stressed metrics.

Visualizing sector concentration with plotting methods makes it easier to communicate these risks to your team and LPs.

Finding the "other cockroaches"

The "cockroach theory" suggests that if you see one problem loan, there are likely many others with similar risk profiles hiding in your portfolio. Let's use historical data and pattern matching to identify borrowers that look like known problem cases.

First, we'll generate historical quarterly data to calculate trends over time. This shows which borrowers are deteriorating even if they're not in breach yet.

This generates 496 rows (62 borrowers × 8 quarters) with realistic trends:

  • Deteriorating borrowers (B001, B002, B004, B005, B011, B014, B016, B019): EBITDA declining ~3% per quarter, debt rising ~2%
  • Stable borrowers: Minor random fluctuations around baseline
  • Historical context: 8 quarters from Q1 2024 through Q4 2025

Now let's join the historical data with loan terms and calculate ratios for trend analysis.

Now we'll calculate rolling averages and quarter-over-quarter changes to identify deteriorating trends.

This identifies borrowers where EBITDA is declining and leverage is rising — a classic pattern of financial stress. These borrowers may not be in breach yet, but they're heading in the wrong direction.

Now let's use pattern matching to find borrowers that look like known problem cases. Assume we've identified three problem borrowers (defaulted or distressed). We'll find other borrowers with similar characteristics.

This pattern matching identifies borrowers that share key characteristics with the known problem loans: same industry, similar size, and at least one stressed metric — high leverage or low coverage. These are the stockroaches — borrowers following the same trajectory before the financials make it obvious.

Let's create a comprehensive risk score that combines multiple factors to identify the highest-risk borrowers across the portfolio.

The risk score combines leverage utilization, coverage cushion, and borrower size into a single metric. Scores above 80 indicate critical risk, 60-80 is high risk, and below 60 is medium to low risk. The top 20 borrowers by risk score should be on your critical watch list.

The "cockroach theory" isn't about finding more defaults — it's about finding borrowers that look like the ones that already defaulted.

Acting on what you find

The analyses so far have identified stressed borrowers, rate-sensitive exposures, and sector concentrations. Now you need two things: summary tables you can put in front of LPs, and a prioritized list of who to engage directly.

Let's start with the headline metrics LPs want to see.

This creates the headline metrics LPs want to see: total borrowers, exposure, average risk levels, and current covenant breaches.

Combine this with a stress test summary to show portfolio sensitivity to rate increases:

These two tables show LPs where you stand today and how vulnerable you are to rate increases. The watch list below is the action side of the same picture.

Let's create a prioritized list of borrowers that need direct engagement.

This creates the watch list — the cockroach manifest in practical terms. Critical-priority cases need immediate engagement: request updated financials, discuss operational improvements, and prepare for potential covenant negotiations. High-priority borrowers need closer monitoring with more frequent check-ins.

Updating the analysis quarterly

When new quarterly data arrives, re-run the entire analysis to track how risk profiles are changing. This creates a consistent, repeatable process for portfolio risk assessment.

This quarter-over-quarter comparison shows which borrowers are improving and which are deteriorating. Track whether your interventions are working and whether new risks are emerging.

Building portfolio-wide visibility with Deephaven

Private credit is under pressure. Defaults are rising, LPs are pulling capital, and the "cockroach theory" keeps proving itself. Visible problems are just the beginning, and portfolio-wide visibility isn't a luxury anymore — it's survival.

The analyses we've built here work with the quarterly data you already collect. Segment borrowers by size and find the vulnerable ones. Stress test coverage ratios under different rate scenarios. Quantify sector concentration. Use pattern matching to find borrowers that look like the ones that already defaulted. These aren't theoretical exercises — they're analyses you can run Monday morning.

Deephaven handles this well because the same table operations scale across your entire portfolio. Write a ratio once and you've written it for all 60 borrowers. Add a stress scenario and the breach flags, margin calculations, and summaries follow automatically. When Q1 data arrives, every downstream table refreshes — no separate pipeline to maintain.

You can extend this further. Add more sophisticated risk models, incorporate external market data, build custom scoring algorithms, and integrate with your loan management systems. The foundation is the same: clean data, flexible table operations, portfolio-wide visibility. A follow-up post covers connecting these tables directly to Excel via the Deephaven add-in — no export step, no copy-paste, live data as the quarter evolves.

Try it yourself

  1. Try it in the browser — no install required.
  2. Install Deephaven — free, takes about five minutes.
  3. Load your portfolio data — CSV, Parquet, or Excel exports from your loan management system work directly.
  4. Run the segmentation analysis — find which borrowers fall into high-risk categories with your actual data.
  5. Stress test your coverage ratios — how many would breach covenants if rates rise another 100 basis points?

One cockroach rarely travels alone. The sooner you start looking, the better.

Questions? Join us on Slack.