Why Maturity Order Matters
A bond price is the present value of its promised cash flows. When discount factors for earlier payment dates are already known, a bond maturing at a later date can often be used to determine the discount factor at that maturity. The reason is structural: its price equation includes the earlier factors and one new factor for the terminal payment.
This sequential logic is not guaranteed merely because bonds are listed in order of maturity. It depends on whether every earlier cash-flow date in each equation has a known discount factor. Arranging the equations by maturity makes this condition visible and shows when the system is triangular, when it can be solved one factor at a time, and when the available instruments do not suffice.
For this tutorial, assume that all quoted prices use the same valuation date and that the cash flows are known, fixed amounts paid on specified dates. Each price is the sum of those cash flows multiplied by the corresponding discount factors. We are examining the algebraic structure of that system, not estimating uncertain future payments. Discount factors are not assumed to be less than one; the triangular argument depends on the cash-flow coefficients, not on the sign of interest rates.
Writing the System by Cash-Flow Date
Suppose the relevant dates are \(t_1<t_2<\cdots<t_n\), with one bond maturing at each date. Let \(C_{ij}\) be the cash flow from bond \(i\) at date \(t_j\), and let \(P_i\) be its price. A bond has no cash flows after it matures, so \(C_{ij}=0\) whenever \(j>i\). Its price equation is therefore
Writing all equations together gives a matrix with zeros above the diagonal. The diagonal entry in row \(i\) is the bond's cash flow at its own maturity. If that terminal cash flow is nonzero, the equation can be rearranged to find \(D(t_i)\) once the earlier factors are known.
Why the Sequential Solution Works
The structure can be justified directly, without relying on a matrix-solving algorithm. The first bond's equation has only one unknown factor. After that factor is determined, the second equation has only one unknown factor left, and the same reasoning continues down the list.
The first bond has no earlier cash-flow dates in the system, so its price equation contains only \(D(t_1)\). If \(C_{11}\ne 0\), divide by that coefficient to find the factor.
At maturity \(t_2\), the equation can involve \(D(t_1)\) and \(D(t_2)\), but not a factor at a later date. Substitute the already determined \(D(t_1)\); if \(C_{22}\ne 0\), solve for \(D(t_2)\).
At step \(i\), substitute the known factors \(D(t_1),\ldots,D(t_{i-1})\). If \(C_{ii}\ne 0\), the remaining equation determines \(D(t_i)\).
This is also an inductive argument: the first factor is determined; if the first \(i-1\) factors are determined, the \(i\)th equation has only one remaining unknown, \(D(t_i)\), and a nonzero coefficient on it. Thus the factors are uniquely determined in sequence, provided the cash-flow dates are correctly represented and there is one usable equation at each new date.
For an ordinary bond, the terminal cash flow includes the redemption amount and any coupon due at maturity. It is usually positive, so the diagonal coefficient is nonzero. But a missing earlier discount factor is a different problem: it introduces another unknown into the equation and cannot be fixed simply by dividing by the terminal cash flow.
Worked Example: Three Annual Coupon Bonds
Three hypothetical bonds have annual coupons and a redemption value of 100. Their maturities are one, two, and three years, and their prices are 100.80, 99.30, and 95.40, respectively. Find the three annual discount factors. Use the maturity order and show why each new equation has just one new unknown.
Method. Write each price as the sum of its coupon and redemption cash flows discounted at the corresponding dates. Then solve in increasing maturity order.
The total payment at maturity for each bond is \(100+5=105\). The one-year bond gives
The two-year bond pays 5 at year 1 and 105 at year 2. Its equation is
Substitute \(D(1)=0.96\). The year-1 coupon contributes \(5(0.96)=4.80\), leaving \(99.30-4.80=94.50\) for the year-2 payment. Thus
The three-year bond pays 5 at each of years 1 and 2, then 105 at year 3. Its equation is
The earlier payments have present values \(5(0.96)=4.80\) and \(5(0.90)=4.50\), totaling 9.30. The amount remaining for the year-3 payment is \(95.40-9.30=86.10\). Therefore,
Check. Substitution into the three price equations gives \(105(0.96)=100.80\), \(5(0.96)+105(0.90)=4.80+94.50=99.30\), and \(5(0.96)+5(0.90)+105(0.82)=4.80+4.50+86.10=95.40\). All three quoted prices are reproduced exactly.
Common mistake avoided. Dividing the two-year price by 105 would give \(99.30/105\), incorrectly treating the bond as though it paid only at maturity. The year-1 coupon must be valued and subtracted first; the factor is \(0.90\), not \(99.30/105\).
A General Cash-Flow Pattern
A triangular system does not require every bond to have the same coupon or redemption amount. It requires the payment dates to fit the set of discount-factor dates being solved, and the equations to be arranged so that earlier factors are available before later ones. For example, a bond can have an unusual coupon pattern and still contribute a valid row, as long as its earlier payment dates correspond to already determined factors.
Worked Example: Reading a Triangular System with Different Cash Flows
Consider three hypothetical fixed-payment bonds with maturities of one, two, and three years. Bond 1 pays 50 at year 1 and costs 48. Bond 2 pays 2 at year 1 and 102 at year 2, and costs 93.72. Bond 3 pays 1 at year 1, 3 at year 2, and 103 at year 3, and costs 88.12. Find the discount factors and verify the system's structure.
Method. The cash-flow amounts, rather than a common coupon rate, determine the matrix coefficients. Arrange each row by payment date:
The first row gives \(50D(1)=48\), so \(D(1)=48/50=0.96\). In the second row, the known year-1 payment contributes \(2(0.96)=1.92\). The remaining price is \(93.72-1.92=91.80\), giving
In the third row, the known earlier payments contribute \(1(0.96)+3(0.90)=0.96+2.70=3.66\). Subtracting this from the price leaves \(88.12-3.66=84.46\). Hence
Check. The reconstructed prices are \(50(0.96)=48\), \(2(0.96)+102(0.90)=1.92+91.80=93.72\), and \(1(0.96)+3(0.90)+103(0.82)=0.96+2.70+84.46=88.12\). The diagonal coefficients are 50, 102, and 103, all nonzero, so each step has a unique solution once earlier factors are known.
Common mistake avoided. Assuming that triangularity requires identical coupon rates or identical bond designs is too restrictive. The relevant test is whether each row has no cash flows after its maturity and whether its earlier-date factors have already been determined.
When Maturity Ordering Is Not Enough
The matrix is triangular only relative to the dates included as unknowns. A bond maturing at year 3 might pay a coupon at year 1.5, for example. If \(D(1.5)\) has not already been determined, that coupon introduces another unknown. The equation then contains both the new terminal factor and an unresolved intermediate factor, so it cannot by itself determine the terminal factor.
Worked Example: A Missing Intermediate Discount Factor
Suppose \(D(1)=0.98\) is known. A hypothetical three-year bond costs 93 and pays 4 at year 1.5 and 104 at year 3. Determine whether this one quote identifies \(D(3)\).
Method. List every payment date in the price equation and count the unknown discount factors. The year-1 payment is absent, so the known value \(D(1)\) does not enter this bond's price equation.
There are two unknowns in one equation. For instance, if \(D(1.5)=0.95\), then
But if \(D(1.5)=0.90\), the same observed price instead implies
Both pairs satisfy the quoted price, so \(D(3)\) is not uniquely determined by the information given. A separate instrument or other information that identifies \(D(1.5)\) is needed before this equation can be used to solve for \(D(3)\).
Check. The first pair gives \(4(0.95)+104(89.20/104)=3.80+89.20=93\). The second gives \(4(0.90)+104(89.40/104)=3.60+89.40=93\). They produce the same price but different terminal factors.
Common mistake avoided. Treating every payment before maturity as already known just because it occurs earlier in time is not valid. “Earlier” is not the same as “previously solved”; the date must have a known discount factor.
Conditions and Practical Checks
The triangular pattern is useful because it separates the question of structure from the arithmetic of solving the equations. Before proceeding sequentially, check the following:
- Use a common valuation date. Prices and discount factors must refer to the same date. A settlement-date mismatch changes the cash-flow timing and therefore the equations.
- List every payment date. A coupon date is an unknown-factor date unless its factor has already been obtained from another instrument or is otherwise supplied.
- Order the equations by maturity. A bond cannot have a promised payment after its maturity, so this order places zeros above the diagonal when the dates are aligned.
- Check the terminal coefficient. If it is zero, that equation cannot solve for the factor at its maturity. For standard bonds with positive redemption, the terminal payment is positive.
- Check whether there is one equation per new factor. Several bonds at one maturity may provide a consistency check, but do not automatically supply a new independent factor for each bond.
If there are more equations than unknown factors, the quotes may provide useful consistency checks, but the system must still be mutually compatible for a single set of discount factors to price all the bonds. If there are fewer independent equations than unknown factors, the factors cannot all be identified from those prices alone. A triangular arrangement exposes these issues; it does not make an incomplete or conflicting set of data solvable.
Check Your Understanding
For each problem, identify the relevant structure before calculating. Use the stated prices and cash flows as exact.
- A one-year claim pays 100 and costs 97. A two-year bond pays 4 at year 1 and 104 at year 2 and costs 98.52. Find \(D(1)\) and \(D(2)\). (Answer: \(D(1)=0.9700,\ D(2)=0.9100\).)
- Three bonds have cash-flow rows \((100,0,0)\), \((6,106,0)\), and \((4,4,104)\) at dates \(t_1<t_2<t_3\). Is the coefficient matrix lower triangular, and what are its diagonal coefficients? (Answer: Yes; the diagonal coefficients are \(100,106,104\).)
- Given \(D(1)=0.95\) and \(D(2)=0.90\), a three-year bond pays 3 at year 1, 3 at year 2, and 103 at year 3. Its price is 92.07. Find \(D(3)\). (Answer: \(D(3)=0.8400\).)
- A bond priced at 93 pays 4 at year 1.5 and 104 at year 3. Neither \(D(1.5)\) nor \(D(3)\) is known. Does this quote uniquely determine \(D(3)\)? If \(D(1.5)=0.95\), what value of \(D(3)\) is implied? (Answer: No; with \(D(1.5)=0.95\), \(D(3)=89.20/104\approx0.8577\).)