# If I have the present value of an amortizing bond's cashflows, how do I figure out price?

Say that I correctly compute the sum of the cash flows of a given bond. How does this relate to the quoted price that most people understand? For example, based on the stream of cashflows of a bond with a face value of 10,000,000, I calculate a PV of 5,000,000. Yet, the bond trades above par at a clean price of 102.

How can I compute the clean price consistent with a given PV? How do I go from the DCF to the clean price?

Alternatively, how can I get the clean price more directly using DCF?

• I think this question is non-trivial enough to deserve not to be closed. Commented Oct 14, 2020 at 16:52
• Unless I am missing something, you merely compute your cashflows by assuming a notional equal to 100. Commented Oct 16, 2020 at 10:21
• @DaneelOlivaw You are right. As the clean price is expressed as a percentage of the unpaid principal (UP), you construct the cash flow as a percentage of the UP. Then, you discount and subtract the accrued interest to obtain the clean price. Commented Aug 30, 2023 at 19:56

Bullet bond prices are quoted as a percentage of face value (par).

For most amortizing bonds that have already amortized part of the initial principal (face value), the price is a percentage of the unpaid principal (initial principal minus principal payments). Amortization is a synonym for principal payment.

(I won't deal with bonds for which a dirty/full price is quoted. I only consider bonds whose quotes are clean/flat prices.)

Suppose, for concreteness, an example bond that

• has a face value of USD 1,000 (the principal when it was issued - not a very important number);

• matures in exactly 5 years;

• has already amortized 1/3, so the remaining "factor" (unpaid proportion) is 2/3; is scheduled to amortize another 1/3 in 2 years, and pay the last 1/3 of the principal at maturity;

• pays a 4% coupon annually (once a year).

If your trade settles 3 months after the previous coupon payment, then the accrued interest is 1% of the unpaid principal during the coupon period.

If the quoted clean price is 102 (the % is implied) and the accrued interest is 1, then the dirty price is 102% + 1% = 103%.

If you buy USD 1,000,000 face value at the (clean) price of 102%, then you pay a total of USD 1,000,000 * 2/3 * 103% = USD 686,666.67 and receive USD 1,000,000 / USD 1,000 = 1,000 bonds whose factor is 2/3. Your trade ticket should show that you've paid USD 1,000,000 * 2/3 * 102% = USD 680,000 for 666,666.67 of principal and USD 1,000,000 * 2/3 * 1% = 6,666.67 for the accrued interest (AI).

Every year you receive a coupon that amounts to USD 1,000,000 * factor * 4% = USD 40,000 * factor. It was USD 40,000 until and with the first amortization, then USD 26,666.67 until and with the second amortization, and then USD 13,333.33 until and with the third amortization upon maturity. Notice how the coupon rate (4%) is unchanged, but because the remaining principal decreases, so do coupon amounts.

The remaining cash flows of your bond position look like this:

$$\begin{array} {|c|c|c|c|c|c|} \hline & \mbox{Previous} & & & \mbox{Previous} & & & \mbox{Coupon} & & \mbox{Net} & \mbox{Net} \\ \mbox{Year} & \mbox{Principal} & \mbox{Principal} & \mbox{Principal} & \mbox{Notional} & \mbox{Factor} & \mbox{Factor} & \mbox{Rate} & \mbox{Coupon} & \mbox{Cashflow} & \mbox{Cashflow} \\ & \mbox{(aka Notional)} & \mbox{Payment} & \mbox{Remaining} & \mbox{Factor} & \mbox{Payment} & \mbox{Remaining} & \mbox{\%} & \mbox{\\\} & \mbox{\\\} & \mbox{\%} \\ \hline 1 & 666,666.67 & 0 & 666,666.67 & 2/3 & 0 & 2/3 & 4 & 26,666.67 & 26,666.67 & 4 \\ 2 & 666,666.67 & 333,333.33 & 333,333.33 & 2/3 & 1/3 & 1/3 & 4 & 26,666.67 & 360,000.00 & 54 \\ 3 & 333,333.33 & 0 & 333,333.33 & 1/3 & 0 & 1/3 & 4 & 13,333.33 & 13,333.33 & 2 \\ 4 & 333,333.33 & 0 & 333,333.33 & 1/3 & 0 & 1/3 & 4 & 13,333.33 & 13,333.33 & 2 \\ 5 & 333,333.33 & 333,333.33 & 0 & 1/3 & 1/3 & 0 & 4 & 13,333.33 & 346,666.67 & 52 \\ \\ \mbox{Total} & & & & & & & & & 760,000 & 114 \\ \hline \end{array}$$

Note that the prior history of how you got here doesn't matter much. You would have the same cash flows with a bond issued now, paying 4%, and amortizing 1/2 in 2 years and 1/2 in 5 years, as shown in the last column of the previous table. So you're promised USD 760,000 (114% of 666,666.67) over the next 5 years.

But comparing the USD 1 that you pay now to USD 1 that you might receive in the future, in which USD 1 might be purchasing much less than now, is not very meaningful. You need to discount future cash flows both for the "time value of money" and for the possibility that you might not get paid as promised etc.

Let us solve for the yield $$y$$ that corresponds to this price (102) and to these cash flows. For simplicity, let the discount factor in $$n$$ years be $$(1+y)^{-n}$$. (More generally, if the bond pay coupons with the frequency $$f$$ times a year, then the discount factor would be $$(1+y/f)^{-fn}$$.) Iterating, a solver finds that the value of $$y$$ that makes the sum of the discounted cash flows approximately match the given price approximately equals 3.07428%. The discount factors corresponding to this yield explain your dirty price as follows:

$$\begin{array} {|c|c|c|c|c|c|} \hline \ & \mbox{Undiscounted} & \mbox{Undiscounted} & \mathbf{{1.0307428}^{-\mbox{Years}}} & \mbox{Discounted} & \mbox{Discounted} \\ \mbox{Year} & \mbox{Cashflow} & \mbox{Cashflow} & \mbox{Discount} & \mbox{Cashflow} & \mbox{Cashflow} \\ & \mbox{\\\} & \mbox{\%} & \mbox{Factor} & \mbox{\\\} & \mbox{\%} \\ \hline 1 & 26,666.67 & 4 & 0.97017413 & 25,871.31 & 3.88 \\ 2 & 360,000.00 & 54 & 0.94123784 & 338,845.62 & 50.83 \\ 3 & 13,333.33 & 2 & 0.91316461 & 12,175.53 & 1.83 \\ 4 & 13,333.33 & 2 & 0.88592868 & 11,812.38 & 1.77 \\ 5 & 346,666.67 & 52 & 0.85950509 & 297,961.76 & 44.69 \\ \hline \\ \mbox{Total} & 760,000 & 114 & & 686,667 & 103 \\ \hline \end{array}$$

As you see, the sum of the discounted cash flows matches your proceeds (dirty price). But to get the clean price, you must subtract the accrued interest: 102 = 103 - 1.

Conversely, if you're just given some discount factors (eg from some swap curve) then you can multiply cash flows % by the given discount factors and sum them to get the price implied by the discount factors (which is not likely to match any observed price). For example

$$\begin{array} {|c|c|c|c|c|c|} \hline \ & \mbox{Undiscounted} & \mbox{Undiscounted} & \mbox{Made-up} & \mbox{Discounted} & \mbox{Discounted} \\ \mbox{Year} & \mbox{Cashflow} & \mbox{Cashflow} & \mbox{Discount} & \mbox{Cashflow} & \mbox{Cashflow} \\ & \mbox{\\\} & \mbox{\%} & \mbox{Factor} & \mbox{\\\} & \mbox{\%} \\ \hline 1 & 26,666.67 & 4 & \mathbf{0.95} & 25,333.33 & 3.80 \\ 2 & 360,000.00 & 54 & \mathbf{0.92} & 331,200.00 & 49.68 \\ 3 & 13,333.33 & 2 & \mathbf{0.89} & 11,866.67 & 1.78 \\ 4 & 13,333.33 & 2 & \mathbf{0.86} & 11,466.67 & 1.72 \\ 5 & 346,666.67 & 52 & \mathbf{0.83} & 287,733.33 & 43.16 \\ \hline \\ \mbox{Total} & 760,000 & 114 & & 667,600 & 100.14 \\ \hline \end{array}$$

These made-up discount factors imply the dirty price of 100.14. Subtracting the accrued interest, we get clean price of 100.14 - 1 = 99.14.

Or, if you're just given the net of the discounted cash flows, like USD 667,600, then you still can divide by the principal as of the settlement date (USD 1,000,000 * 2/3) to get the dirty price of 100.14%. If you wish, you can also solve for the yield explaining this price, possibly using yet other discount factors corresponding to this yield. To get a clean price, you subtract the accrued interest from the dirty price (again, being careful with the factor).

• Thank you for the response! To clarify, I do have the discounted cash flows. My confusion is: how do I get from the DCF to the price as a % of par? Commented Oct 13, 2020 at 18:49
• @souptaco You haven't specified what you're discounting by. If it is in fact the bond yield then by definition the sum of the DCFs is the price of the bond. To express it as a % of par, divide this sum by the face value of the bond. Commented Oct 13, 2020 at 21:37
• It was the sum of %'s that I was looking for. Thank you so much,, I have so much more clarity here now. Commented Oct 14, 2020 at 2:27
• Great answer! Two questions: 1. Is the size of the transaction stated in terms of initial face value, outstanding principal, or the number of bonds? 2. I had the idea that the dirty/full/all-in true price of a bond is a percentage of the initial nominal value. Or is the dirty price also expressed as a percentage of the outstanding principal? Commented Dec 16, 2021 at 12:57
• thanks! 1 On a typical ticket, you put the initial unamortized face value, the factor, and the clean price. Look at BXT on Bloomberg terminal if you can for some example bonds 2 if the example bond is 2/3 amortized and trading at par, then clean price is 100, and dirty price is 1/3+accured. (Further, Brazil P.U. is dirty, but also for par value 1,000 rather than 100) Commented Dec 16, 2021 at 17:40

This answer formalizes the first part of the nice answer by @Dimitri Vulis, and his answer about the base of the dirty price in response to my question/comment below his main answer.

I do not know why parts of the formulas appear in dark red or in italics.

Definitions:

(1) Dirty Price = DCF / Face Value

(2) Clean Price = (DCF - Accrued Interest) / Unpaid Principal

(3) Factor = Unpaid Principal / Face Value

(4) Accrued Rate = Rate * Accrued Year Fraction

(5) Accrued Interest = Unpaid Principal * Acrued Rate


## Invoiced Amounts

The Total Invoiced Amount (DCF) can be obtained from (1):

DCF = Face Value * Dirty Price


Alternatively, it can be obtained from (6):

(7) DCF = Unpaid Principal * (Clean Price + Accrued Rate)

DCF = Unpaid Principal * Clean Price + Unpaid Principal * Accrued Rate)


The ticket/invoice identifies the accrued interest, which is the term after the + sign according to (5). The term before the + sign is called the (Unpaid/Outstanding) Principal Value.

You first determine the Unpaid Principal using (3):

Unpaid Principal = Face Value * Factor


Then you compute the two items comprising the DCF or Total Invoiced Amount:

Principal Value = Unpaid Principal * Clean Price

Accrued Interest = Unpaid Principal * Rate * Accrued Year Fraction


where the last item is the result of substituting (4) in (5).

Any correction or suggestion will be warmly appreciated!