Target Rate Policy
The Target Rate Policy implements a multi-kink auction rate curve. It extends the Morpho V2 To Morpho V2 Policy base contract.
Rate Curve

The rate increases linearly to a target rate, maintains that rate for a period, then increases linearly again to a maximum rate where it plateaus.
How It Works
1. Set Policy Parameters
The policy owner (via timelock) can configure:
- kink1: When target rate is reached (as % of auction duration)
- kink2: When target rate plateau ends (as % of auction duration)
- kink3: When max rate is reached (as % of auction duration)
- targetRate: Intermediate rate level (max 100% APR)
- maxRate: Maximum acceptable rate (max 100% APR)
- fee: Percentage fee charged based on duration between terms (max 100% APR)
- feeRecipient: Address that receives fees from rolls
2. Rate Calculation
During a roll, getRate() calculates the auction rate based on elapsed time:
- 0% to kink1: Rate increases linearly from 0% to
targetRate - kink1 to kink2: Rate remains at
targetRate - kink2 to kink3: Rate increases linearly from
targetRatetomaxRate - kink3 to maturity: Rate remains at
maxRate
The roller contract compares this rate with the user's maxRate and uses the lower value.
3. Fee Execution
The policy charges fees based on the duration between source and target terms:
- beforeRoll: Calculates fee, snapshots fee recipient balance, returns
borrowedAmount = repaidDebt + feeAmount - afterRoll: Validates that the fee recipient received the expected fee amount