Financial Modeling
Pain Index & Pain Ratio: Measuring Drawdown Depth AND Time Under Water
Compute the Zephyr Pain Index—the average percentage drawdown from running high-water mark across every period—and Pain Ratio (R_p - R_f) / Pain_Index to penalize stalled recoveries.
Why Max Drawdown and Calmar ignore how long capital stays trapped underwater
Two funds that both drop 10% from peak look identical under Maximum Drawdown (10%)—even if Fund A rebounds in one month while Fund B languishes 10% below its high-water mark for two straight years! Thomas Becker and Zephyr Associates introduced the Pain Index as the discrete integral of the underwater curve: Pain_Index = (1 / N) * SUM_{t=1..N} ((Peak_t - NAV_t) / Peak_t), averaging percentage capital loss across ALL N dates (including 0% at new highs).
Test this directly on a 5-month NAV curve [100, 120, 108, 114, 126]: drawdowns from running MAX($B$2:B2) are [0%, 0%, 10%, 5%, 0%], so Max Drawdown = 10.00% and Pain Index = 15% / 5 = 3.00% (Pain Ratio = (12% - 3%) / 3% = 3.00). Now stall month 4 at 108 instead of 114: Max Drawdown stays frozen at 10.00%, whereas Pain Index rises to 4.00% and Pain Ratio drops to 2.25!
| Recovery Scenario (NAV Path) | Max Drawdown | Pain Index | Pain Ratio (Rp=12%, Rf=3%) |
|---|---|---|---|
| Fast Rebound [100, 120, 108, 114, 126] | 0.1000 (10.00%) | 0.0300 (3.00%) | 3.0000 |
| Stalled Trough [100, 120, 108, 108, 126] | 0.1000 (Unchanged!) | 0.0400 (4.00%) | 2.2500 (Penalizes duration) |
| Monotone Climb [100, 105, 110, 115, 120] | 0.0000 (0.00%) | 0.0000 (0.00%) | "ZERO_DRAWDOWN" |
Running High-Water Mark & Percentage Underwater Formula
Anchor $B$2 in MAX($B$2:B2) to track the cumulative NAV peak and compute (Peak_t - NAV_t) / Peak_t per row.
=(MAX($B$2:B2) - B2) / MAX($B$2:B2)Pain Index & Zephyr Pain Ratio Formula
Average the underwater column AVERAGE(D2:D6) for the Pain Index, and divide excess annualized return (F2 - F3) by Pain Index when strictly positive.
=IF(AVERAGE(D2:D6) = 0, "ZERO_DRAWDOWN", ROUND((F2 - F3) / AVERAGE(D2:D6), 4))Try the example
Use the original values or change them to test your understanding.