Allocators
The allocators module provides a unified framework for allocating capital through fund structures and generating transactions.Overview
Historically, allocation logic was spread across different apps (capital calls, distributions, etc.). The allocator framework consolidates this into a single source of truth.Architecture
| Component | Responsibility |
|---|---|
| Allocator | Allocates to starting entities, orchestrates the flow |
| Use Allocator | Propagates allocation up the fund structure |
| Transaction Generator | Creates transaction records with amounts |
Example Flow
Given this fund structure:Allocation Process
Components
Allocator
The main entry point that:- Determines starting entities (commitments)
- Calculates initial allocation amounts
- Calls Use Allocator for each entity
Use Allocator
Propagates allocation up the fund structure:- Takes an entity and amount
- Determines parent entity
- Applies allocation rules
- Recursively allocates to parents
Transaction Generator
Creates the actual transaction records:- Calculates final amounts
- Applies rounding
- Creates transaction objects
Allocation Rules
The allocation percentage for each entity is determined by:| Factor | Description |
|---|---|
| Commitment amount | How much the LP committed |
| Allocation basis | Which calculation to use |
| Investor class rules | Special rules per class |
| Time period | Different rules at different fund stages |
Integration
Used by:- Capital Calls
- Distributions
- Equalizations
- Fee allocations
Benefits
Consistency
Single source of truth for allocation logic.
Testability
Isolated components are easier to test.
Flexibility
Easy to add new allocation types.
Audit Trail
Clear transaction generation path.