Waterfalls App
The waterfalls app handles computing distribution waterfalls - the rules that determine how fund profits are distributed among LPs and the GP.Overview
A waterfall defines how distributions flow through different tiers:- Return of Capital (ROC) - Return LP contributions
- Preferred Return - Pay LPs their preferred return
- Catch-up - GP catches up to their share
- Final Split - Remaining profits split between LP/GP
Life-to-Date Computation
Waterfalls are computed life-to-date (LTD). The system aggregates all historical transactions to determine how much has hit each tier.Key Fields
| Field | Description |
|---|---|
participating_partners_distribution_amount | LTD distributions hitting this tier |
current_dist_participating_partners_distribution_amount | Current distribution hitting this tier |
The sum of
current_dist_participating_partners_distribution_amount across all tiers always equals the net distribution for that security ownership.Current Distribution Calculation
For most cases, whenparticipating_partners_distribution_amount increases:
Complex Scenarios
Whenparticipating_partners_distribution_amount decreases (e.g., after a capital call that increases the ROC hurdle), the calculation is more complex.
Example:
- Previous: 10 pref
- 150
- $20 distribution: all goes to ROC, none to pref
- Pref
participating_partners_distribution_amount= $0 - But we don’t want
current_dist= -$10 (clawback)
current_dist_participating_partners_distribution_amount:
- ROC tier: $20
- Pref tier: 10)
Positive Distribution Logic
1
Sort tiers by order
Process tiers from first to last.
2
Calculate max additional
3
Allocate to tier
4
Handle over-allocation
If tier is over-allocated (LTD > tier max), deduct from next tier.
Negative Distribution Logic
For negative distributions (e.g., certain equalization scenarios):- Sort tiers in reverse order
- Deduct up to LTD distribution amount for each tier
- Use $0 as the “tier min”
Clawback Handling
When summingcurrent_dist_participating_partners_distribution_amount, the total may not equal the latest participating_partners_distribution_amount.
This discrepancy is reconciled at LPA-defined “trigger events” through GP carry clawback (not yet supported in the system).