Methodology
The Pendle PT methodology links a maturity-aware price model with a liquidation-risk model. Both use the same smoothed Pendle market observation so that price and collateral recommendations refer to a consistent market state and model version.
How the models connect
The price and discount model aligns Aave's bounded PT price with the price implied by the smoothed Pendle rate. The collateral-risk model reads the same accepted EMA and the adapter's current on-chain price configuration. That configuration may include a discount-rate recommendation executed after an earlier workflow run.
The methodology defines what is calculated and why. Runtime behavior—including schedules, finalized reads, publication gates, report encoding, and skip behavior—is documented separately under CRE workflows.
PT price and discount
The price and discount methodology aligns the bounded PT price used by Aave with the price implied by the smoothed Pendle rate. The discount-rate CRE workflow applies this model and publishes PendleDiscountRateUpdate recommendations for AaveDiscountRateAgent.
Model inputs
The workflow reads:
- the latest
EmaImpliedRateUpdate; - the adapter returned by
AaveOracle.getSourceOfAsset(PT); discountRatePerYear,MAX_DISCOUNT_RATE_PER_YEAR, andMATURITYfrom that adapter;- the deviation threshold from
PTParameterRegistry; and - the last injection time and directional movement ranges from AgentHub and
RangeValidationModule.
The adapter lookup must return a non-zero address. The workflow also rejects a matured PT or stale EMA.
Price comparison
Let:
| Symbol | Meaning |
|---|---|
t | Time to maturity as a fraction of a 365-day year |
r_ema | Continuously compounded logarithmic implied rate, converted from WAD to a decimal rate |
d_active | Current annual adapter discount rate, expressed as a decimal fraction |
d_max | Adapter's immutable maximum annual discount rate, expressed as a decimal fraction |
P_oracle, P_amm | Unitless PT prices relative to redemption value |
ε | Small positive price floor used to avoid a zero denominator |
The methodology compares:
P_oracle = max(1 - d_active × t, ε)
P_amm = exp(-r_ema × t)
deviation = (P_oracle - P_amm) / P_oracleA positive deviation means the adapter price is above the smoothed AMM-implied price. A negative deviation means it is below.
Target discount rate
Solving the linear adapter model for the AMM-implied price gives:
d_target = (1 - exp(-r_ema × t)) / tThe workflow does not necessarily publish d_target directly. It first applies its timing and movement envelope.
Recommendation bounds
Before publication, the workflow applies the model's timing and movement envelope in this order:
- Minimum delay: skip if the last successful AgentHub injection is too recent.
- Deviation threshold: skip unless the absolute price deviation meets the configured threshold.
- Directional range: limit movement toward the target using the active increase or decrease allowance. A range can be absolute or relative to the current rate.
- Adapter maximum: cap the recommendation at
d_max. - Domain checks: require a positive rate that fits the target integer type and a positive pre-maturity price domain.
The current implementation has no separate price-drop parameter. Increasing the annual discount rate lowers the bounded PT price, so the directional increase allowance also limits the size of that price movement.
The router and Aave agent enforce their own publication and execution controls after the methodology produces its bounded recommendation.
Effect on Aave
Once execution is enabled, AaveDiscountRateAgent decodes the recommended scalar and calls the configured PendlePriceCapAdapter.setDiscountRate() path after AgentHub validation. The workflow itself never calls the adapter.
See the discount-rate workflow for the exact runtime gates and parameters and configuration for where each control lives.
Collateral risk
The collateral risk methodology estimates a liquidation configuration that remains viable under stressed Pendle AMM execution. The risk-parameter CRE workflow applies the model and can produce one EModeCategoryUpdate for each changed, configured eMode category.
Outputs
| Parameter | Purpose |
|---|---|
| Liquidation bonus (LB) | Compensates a liquidator for acquiring and unwinding collateral |
| Liquidation threshold (LT) | Limits debt so stressed collateral proceeds can cover debt and bonus |
| Loan-to-value (LTV) | Sets maximum borrowing power below the liquidation threshold |
Aave eMode applies these values at the category level. For background, see Aave's eMode and liquidation documentation.
Model inputs
For every evaluation, the workflow combines:
- Pendle market
scalarRoot, expiry, and current state; - EMA logarithmic implied rate and EMA market proportion;
- active and maximum discount rates from the Aave PT adapter;
- current LTV, LT, and LB for each target eMode;
- per-market registry parameters; and
- per-target LT caps and LB floors from workflow configuration.
The workflow rejects matured markets, disabled markets, stale EMA observations, missing eMode state, and invalid mathematical domains.
Reference market endpoint
The model evaluates liquidation execution at a stressed pool proportion beyond the EMA state:
p* = min(k × p_ema, 0.96)k is the configurable reference endpoint multiplier. The 96% ceiling is the upper edge of the Pendle trading range used by this methodology version.
The methodology then moves along the Pendle curve from p_ema to p*:
E* = exp(r_ema × t)
+ ((logit(p*) - logit(p_ema)) × t / scalarRoot)E* is the stressed PT exchange-rate term used to estimate liquidation slippage.
Liquidation bonus
The model measures the gap between the bounded oracle price and the stressed AMM exchange rate:
slope = P_oracle × E* - 1
LB = LB_floor + max(slope, 0)The floor reflects the debt-asset bucket and other liquidation costs. A negative slope does not reduce the bonus below that floor.
Liquidation threshold
The methodology also calculates an adverse AMM price using the adapter's maximum discount rate:
P_max_discount = 1 - d_max × t
P_stressed = 1 /
(ln(216) × t / scalarRoot + 1 / P_max_discount)The ln(216) term combines the two trading-range boundaries used by the model: ln(9) for a 10% lower proportion and ln(24) for the 96% upper proportion. scalarRoot is Pendle's market-curve scale, converted to the numeric units used by the workflow.
The no-bad-debt bound is:
LT_bound = P_stressed / (P_oracle × (1 + LB))
LT = min(LT_cap, LT_bound)The configured LT_cap prevents the methodology from recommending an overly aggressive threshold even when the point-in-time bound is higher.
Loan-to-value
LTV is derived from the final liquidation threshold with the 200 basis point buffer defined by this methodology version:
LTV = max(LT - 200 bps, 0)The implementation verifies that:
LTV ≤ LT ≤ 100%; andLT × (1 + LB) ≤ 100%.
Recommendation bounds
The workflow limits LT and LB with the active directional ranges from RangeValidationModule. A range can be absolute or relative; the workflow resolves it into a basis-point movement for the current value. LTV is then re-derived from the bounded LT, preserving the 200 basis point relationship.
If the independent router or AgentHub minimum delay has not elapsed, the target is skipped. The derived LTV must also fit its active range.
Independent LT and LB bounds can temporarily produce a pair outside Aave's joint invariant. In that case, the workflow fits the pair back to:
LT × (1 + LB) ≤ 100%Finally, separate relative deadbands for LT, LTV, and LB determine whether the model difference is material enough to publish. The deadband is measured against the unbounded model target so a large divergence can continue moving toward its target over several bounded updates.
Assumptions and limitations
Both models assume finalized, sufficiently fresh Pendle and Aave state and an enabled market configuration. Invalid domains, stale observations, matured markets, or missing configuration cause the relevant target to be skipped rather than producing a recommendation.
The current implementation does not emit a reserve-freeze or killswitch recommendation. It only computes discount-rate, LTV, LT, and LB recommendations. Automatic freezing is outside the current implementation scope.
See the risk-parameter workflow for per-target gates and batch publication, and parameters and configuration for where each bound is controlled.