I am working with a programming case where there are two methods of calculating YTM / discount margin for bonds and FRNs.

Both methods use an iterative approach to find a rate / spread that corresponds to a given price. The basic difference between these methods are during PV calculations how they both discount a given coupon Cn

$ C_n \over (1 + r) ^ t $

$ \small t = dcf_1 + dcf_2 + ...+dcf_n $


$ C_n \over (1 + dcf_1 r) (1 + dcf_2 r) ... (1 + dcf_n r)$

Im not 100% sure about the difference, and i am thinking that it has to do with what kind of rate (or spread) we are discounting for. Specifically which compounding period the rate is for? Is this equivalent to saying that the second one discounts with the forward rates, while the first one is not? Is the first method just a special case when r is annually compounded?

  • $\begingroup$ In the new multiple curve framework and discounting with a risk-free rate (LIBOR is NOT risk free) you should discount bonds like FRN with a Government curve (Swaps should be discounted with OIS or the new rates like SOFR, ESTER, SONIA... depending on currency). How do you calculate the Discount Margin and Modified Duration then? $\endgroup$
    – JRoman
    Apr 27, 2021 at 16:28

3 Answers 3


There are two types of discounting approaches of a future payment in your question. Zero rates and forward rates. Let's just briefly consider each in turn.


The zero rate discount factor to time $T$ is

$df(T) = (1+R(T)/f)^{-Tf}$

where $f$ is the compounding frequency associated with $T$-year zero rate $R(T)$. The choice of $f$ is a convention. You can even use continuously compounded discounting in which the discount factor formula is $df(T) = e^{-R(T)T}$.

In all of these cases $R(T)$ is the zero rate to time $T$ - it is called a zero rate because it is how we would discount a single zero coupon bond which matures at time $T$. To discount correctly you must use the correct value of $R(T)$ for payments at different times.

Note that formulae using yield-to-maturity also look like formulae using zero rates, but they are much worse as they are used in a context in which it is assumed that all future coupons are discounted at the same yield. Which is wrong except if the actual zero rate curve is flat.


A forward rate is a borrowing/lending rate in the future that can be locked in by market prices today. Typically it refers to the Libor forward rates that are the strikes of ATM FRA contracts. These forward rates are based on the simple interest payment convention of the underlying Libor deposits they represent. For example a 3M deposit implies a 3M discount factor

$df(3M) = \left(1+ \Delta_1 L(0,3)\right)^{-1}$

where $\Delta_1\simeq 0.25$ is the year fraction of a 3M Libor deposit and can depend on day count convention and the holiday calendar. We can use FRAs to lock in borrowing for each of the forward borrowing periods and from this we can show that

$df(1Y) = \left((1+\Delta_1 L(0,3))(1+\Delta_2 F(3,6))(1+\Delta_3 F(6,9))(1+\Delta_4 F(9,12))\right)^{-1}$

Both zero rates and forward rates are linked. No-arbitrage requires that

$df(1Y) = \left(1+R(1)\right)^{-1} = \left((1+\Delta_1 L(0,3))(1+\Delta_2 F(3,6))(1+\Delta_3 F(6,9))(1+\Delta_4 F(9,12))\right)^{-1}$

So the question is then, why are you using method (2) ?

This is because you want to discount the FRN, but the FRN has future floating payments of the expected future Libor rate plus a spread, and these are being discounted using the same expected future Libor rates. Now it can be shown that the risk-neutral estimate of the Libor payment is the corresponding forward Libor rate. So these forward rates drive both the expected future payment amount AND how it should be discounted. You would miss this if you just used zero rates.

Hence to understand the true interest rate sensitivity of an FRN you need to see its dependency on the forward rate in both the numerator and the denominator of the present valuing. Unless you do this you will not capture the true interest rate risk of an FRN.


Clearly the first one assumes that all periods are of equal length, whereas the second one adjusts for the fact that the number of days covered by each period will be different(assuming dcf stands for day count fraction).

Your conclusion that the first is a special case of the second makes sense; however, it does not seem to be in the sense of annual compounding vs say semi-annually or quarterly compounding, because then dcf could be the same for all periods (0.5 for semi-annually). It could be more because the coupon amount is adjusted based on the day count fraction, which could vary because of holidays/weekends.


The form $\frac{C}{(1+r)^t}$ is often termed a yield to maturity or an internal rate of return.

The alternative form I would generally interpret as being a swap / annualised rate formulation.

It of course does not really matter which you choose as long as you are consistent with calculations both ways.

But there may be a market convention that one should be aware of for the products you wish to value or trade, which may lead to operation risk and miscommunication.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.