Pricing a Bachelier Interest Rate Floorlet
Summary
This exchange explains a sign error in valuing a floorlet with the Bachelier normal model. The question uses the call-style payoff expression with the forward rate above the strike, producing a premium far larger than the Bloomberg value. The accepted answer points out that this is the caplet formula and gives the floorlet expression: discount factor times the strike-minus-forward term weighted by the lower-tail normal probability, plus the normal-volatility term weighted by the standard normal density. The same standardized variable can be used, with the relevant normal tail adjusted for the floor payoff.
The example reports inputs for a near-dated floorlet and compares a manually calculated premium with a vendor price, illustrating how choosing the wrong payoff formula changes the result. The answer does not work through discounting, day-count conventions, or a full reconciliation to Bloomberg, so those details still need checking in an implementation.
Key ideas
- A floorlet pays when the reference rate is below its strike, so its Bachelier formula differs from a caplet formula.
- The floorlet value uses the strike-minus-forward term and the lower-tail normal probability.
- Normal volatility is used here because the setup permits rates at or below zero.
- A formula correction alone does not reconcile conventions such as discounting and accrual factors.
Tags
Full text
# Pricing an interest rate floor
# Pricing an interest rate floor
I am trying to estimate the value of a 0% interest rate floor by pricing each individual floorlet. Since BS won't work for this problem, I am trying to use normal volatility in a Bachelier model like the one proposed in this article:
Interest Rate Models and Negative Rates
To check my understanding, I priced a floor in Bloomberg and then downloaded the cash flows to see what vols and forwards the are using (BBG vol and model are set to 'Normal'). Unfortunately, my valuations are not even in the same ballpark. For example, for the nearest floorlet:
Notional: 100MM
Expiry: .24444yrs
Interest Period: .25556yrs
Libor Forward: 0.578%
Vol (Normal): 0.611%
So I get:
d=(0.00578-0)/(0.00611*sqrt(.2444))=1.8701
N(d)=.969268
n(d)=.069415
c=.005808, which needs to be multiplied by the notional and the day count to get the option premium
.005808 x 100MM x .2556=USD 14,843, which is way more than Bloomberg's price of $79.
## Answer by David Duarte (score 2, accepted)
https://quant.stackexchange.com/a/51785
I believe you are applying the cap formula to value the floor.
From the link you sent, try this:
$$floorlet = D [(K-F)N(-d) + \sigma \sqrt{T} n(d)] $$
Where the d will be the same.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.