Aggregated APY (AAPY)
Overview
"Aggregated APY" (Annual Percentage Yield) represents a consolidated APY calculation across multiple Cauldron liquidity pools, referred to as "micro-pools." Each micro-pool follows the Constant Product Market Maker (CPMM) model, contributing liquidity individually. Aggregating APY provides a comprehensive view of yield across all pools in a period, while weighting pools proportionally to their liquidity to ensure that larger pools have a more substantial impact on the final APY.
Key Concepts
- Constant Product Market Maker (CPMM):
Each micro-pool is governed by the CPMM model, where the product of the reserves of two assets remains constant:
- \( x \) represents the reserve of one asset (e.g., BCH).
- \( y \) represents the reserve of the paired token.
-
\( k \) represents the constant product, which increases over time as fee income accumulates.
-
Annual Percentage Yield (APY):
-
APY is calculated based on the fee yield generated across all pools over the period.
-
Weighted Aggregation:
-
Larger pools that have existed for a longer time contribute more to the aggregated APY. To achieve this, the calculation uses the square root of each pool's \( k \) value at the end of the period as a proxy for the pool's size. This weighting ensures that larger pools, which have more liquidity and more stable and less gameable yield, have a proportionally larger impact on the aggregated APY.
-
Capital Injections:
- A pool owner can add capital to both sides of their pool simultaneously. This causes an immediate jump in \( k \) that is not the result of fee income. Including this jump in the yield calculation would inflate the reported APY.
- To handle this, each pool period is split at injection boundaries into sub-periods. Each sub-period spans between two real pool states with no capital injection crossing its boundary, ensuring only fee growth contributes to the reported yield.
Calculation Methodology
1. Calculate Pool-Specific Yield
For each pool (or sub-period), the yield is calculated from the growth in \( \sqrt{k} \) over the period. See Individual Pool APY.
2. Compute Weighted Average Yield and Duration
Rather than annualizing each pool individually and averaging the resulting APYs, the yield and active duration are weighted and averaged first. This prevents short-duration pools with extreme annualized returns from distorting the aggregate.
The weight for each pool is:
The weighted average yield and duration across all pools are then:
3. Annualize Once to Produce AAPY
The final AAPY is computed by annualizing the average yield over the average duration:
This ensures that the aggregated APY reflects contributions from all pools, with larger, longer-active pools having a proportionally greater impact on the result, and with no single short-duration outlier able to dominate the calculation.