An EBITDA-positive company can default on its debt. This is not a theoretical edge case — it is a common outcome in leveraged transactions where debt service, capex, working capital needs, and tax obligations consume available cash before equity holders (and sometimes before junior creditors) see a dollar. A standard income statement does not reveal this risk. A cash flow waterfall model does.
The Waterfall Structure
A cash flow waterfall distributes operating cash in a strict priority order:
Operating Cash Flow (EBITDA - Taxes - Capex - Working Capital Changes)
→ Debt Service: Senior Secured (first lien)
→ Debt Service: Senior Unsecured / Second Lien
→ Debt Service: Mezzanine / PIK
→ Preferred equity distributions
→ Common equity residual
Each tranche is paid in full before the next receives anything. If operating cash flow is insufficient to service a tranche, that tranche is in technical default — even if the company shows EBITDA growth.
DSCR Calculation
def compute_dscr(ebitda, capex, taxes, wc_change, debt_service):
"""Debt Service Coverage Ratio: available cash / required debt service."""
available_cash = ebitda - capex - taxes - wc_change
dscr = available_cash / debt_service
return dscr, available_cash
# DSCR < 1.0 → cannot service debt from operations
# DSCR < 1.2 → typically triggers covenant breach in leveraged loans
# DSCR > 1.5 → comfortable headroom for most lenders
Stress Testing
The model earns its value in stress scenarios: 20% revenue decline, 300bps margin compression, capex overrun. Each scenario produces a separate waterfall output showing at which tranche cash runs out and what the resulting DSCR is for each debt layer. This is the output that matters in credit analysis and in litigation around LBO valuation disputes.
Read the full article with complete Python model and stress testing framework →
Top comments (0)