Calculating a Forward Swap Rate from Discount Factors and Forward Rates
Summary
The document explains how to derive a forward par swap rate from projected floating-leg rates and discount factors. For each payment period, the floating cash flow is the forecast index rate multiplied by its accrual fraction, discounted to the valuation date. The fixed leg’s value is the quoted fixed rate multiplied by the present value of its accrual-weighted payments, often called the annuity or PV01. Equating the leg values gives the par rate as the floating-leg value divided by that annuity, with sign depending on the chosen cash-flow convention.
An answer also offers a rough shortcut: infer a forward rate from compounded yields at the start and end of a forward period. It recommends zero-coupon yields for that calculation and notes the shortcut is most plausible for relatively near-dated forwards. The more general swap calculation requires projected index fixings, discount factors, payment dates, and correct accrual conventions; the simple yield shortcut is not a substitute for a full curve-based valuation.
Key ideas
- A par swap rate equates the present values of the fixed and floating legs.
- The fixed leg’s annuity is the sum of discounted accrual fractions.
- The floating leg is valued by discounting each projected index fixing over its accrual period.
- The par rate is the floating-leg value divided by the fixed-leg annuity, subject to sign convention.
- A compounded-yield shortcut can approximate a simple forward rate, with zero-coupon yields preferred.
Tags
Full text
# Forward swap rate calculation from the market
# Forward swap rate calculation from the market
Following my question
Swaption valuation across time using vcub
where I wanted to know how to value a swaption across time using bloomberg's vcub, I remark that I have to calculate myself the forward swap rate $s_t$, even if $s_0$ is quoted on bloom.
What techniques are available to do this ? If the formula from discount curve and forward curve valid / precise enough for this ?
## Answer by Edward Watson (score 1)
https://quant.stackexchange.com/a/46949
it requires a model to do it correctly but often i might just do a simple forward math calculation especially if it's not very far forward. So for 1yr fwd 2yr i'd do ((1+yield(3yr))^3 /(1+yield(1yr)^1)^(1/2)-1. It's better to do this with zero coupon bonds but often those yields aren't that different these days anyway.
## Answer by thetableed (score 1)
https://quant.stackexchange.com/a/47498
Let's say $ I $ is the Libor index for our underlying swap and $ D $ is our discount curve.
If at time $ t $ we have a forecast of all the relevant future Libor fixings $ L_{I}(t, T_{i}, T_{i}+\tau) $ for our swap, where $ \tau $ is the accrual factor for our Libor index and $ T_{i} $ is the time of the $ i $th fixing for our swap, we just need to solve for the fixed swap rate $ s $ that equates the NPV of the fixed leg of our swap with the NPV of the floating leg.
The fixed leg NPV is given by
$ V_{fixed} = \sum_{i}{s \tau D(t, T_{i})} = s \sum_{i}^{n}{\tau D(t, T_{i})} = s * PV01 $
where $ D(t, T_{i}) $ is the time $ t $ discount factor on our discount curve for time $ T_{i} $.
Similarly, the floating leg NPV is given by
$ V_{float} = \sum_{j}{ L_{I}(t, T_{j}, T_{j} + \tau) \tau D(t, T_{j}) } $
For a par swap, we know that $ V_{fixed} + V_{float} = 0 $, therefore we can substitute in for $ V_{fixed} $ and divide by the fixed leg PV01 (sometimes called the level or annuity of the swap) to obtain
$ s = \frac{-V_{float}}{PV01} $
In reality, each individual period's $ \tau $ may be slightly different due to day count conventions, but it's fairly clear that the swap rate $ s $ is just a weighted average of the forward Libor rates $ L_{I} $ on the floating leg of the swapShown 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.