Why Reprice the Input Bonds?
A bootstrap converts bond prices into discount factors at cash-flow dates. Once those factors have been found, the most direct check is to use them to price the same bonds again. If the inputs and calculations are consistent, each model price should agree with the corresponding market price, apart from any rounding used in the quotes or calculations.
This check is valuable because a list of discount factors can look orderly while still containing an error. Repricing tests the factors against the actual cash flows and quotations that produced them. It can reveal an arithmetic mistake, a misplaced cash-flow date, or a mismatch between a clean price and a price that includes accrued interest. A small residual is not automatically proof that the curve is correct: the pricing convention, settlement date, and precision must also be consistent.
This definition assumes that the bond’s promised cash flows are known and that the discount factors and quoted price refer to the same settlement date and currency units. The basic sum is not a complete pricing model for a bond with uncertain default payments or embedded options whose cash flows depend on future events. Here the focus is on checking a bootstrap using the deterministic cash flows specified for each input bond.
The Repricing Identity
A discount factor \(D(t)\) is the value at settlement of one unit payable at time \(t\). Therefore a known payment \(C_j\) at time \(t_j\) has present value \(C_jD(t_j)\). Adding the present values of all promised payments gives the bond’s model price. This is the same cash-flow valuation principle used when solving for discount factors in a bootstrap, now applied in the reverse direction as a check.
The identity follows from replication. A bond with deterministic payments \(C_1,\ldots,C_n\) can be represented as a portfolio of zero-coupon payments: hold \(C_j\) units of the payment due at \(t_j\), for each \(j\). The value of that component is \(C_jD(t_j)\). By adding component values, the value of the whole portfolio is the sum. If the input bond and this replicating portfolio have the same cash flows on the same dates, consistent prices require their values to agree. A residual is thus a signal to check the inputs, calculations, conventions, and rounding; it is not by itself a diagnosis of which one is wrong.
Use the same settlement date, currency units, and price convention for the quoted price and the model price.
Include coupons and redemption together whenever they are due on the same date.
Multiply each cash flow by the factor for its own payment date, then add the present values.
Subtract the consistently stated quote from the model price, retain the sign, and compare the discrepancy with the precision of the inputs.
Worked Repricing Checks
Worked Example: Repricing Three Bonds on One Curve
At settlement time 0, a bootstrap gives \(D(0.5)=0.98\), \(D(1)=0.95\), \(D(1.5)=0.92\), and \(D(2)=0.89\). Three annual-coupon bonds have the following promised cash flows per \$100 face amount. Bond A pays \$3 at 0.5 years and \$103 at 1 year; its quoted price is \$100.79. Bond B pays \$4 at 0.5 years, \$4 at 1 year, and \$104 at 1.5 years; its quote is \$103.40. Bond C pays \$2.50 at 0.5, 1, and 1.5 years, and \$102.50 at 2 years; its quote is \$98.35. Reprice each bond and calculate its residual.
Method. Match every payment to the discount factor for its date, add the discounted payments, and subtract the quoted price. This avoids treating the redemption amount as a separate extra payment when it is already included in the final cash flow.
Bond A. The first payment has present value \(3(0.98)=2.94\). The final payment includes the \$3 coupon and \$100 redemption, so its present value is \(103(0.95)=97.85\). Thus \(P_{\mathrm{model}}=2.94+97.85=\$100.79\), and \(R=100.79-100.79=\$0.00\).
Bond B. The dated present values are \(4(0.98)=3.92\), \(4(0.95)=3.80\), and \(104(0.92)=95.68\). Therefore \(P_{\mathrm{model}}=3.92+3.80+95.68=\$103.40\), and \(R=103.40-103.40=\$0.00\).
Bond C. The first three payments have present values \(2.50(0.98)=2.45\), \(2.50(0.95)=2.375\), and \(2.50(0.92)=2.30\). The final payment has present value \(102.50(0.89)=91.225\). Hence \(P_{\mathrm{model}}=2.45+2.375+2.30+91.225=\$98.35\), and \(R=98.35-98.35=\$0.00\).
Check. Each model price equals its quote, including the redemption payment in each bond’s final cash flow. The calculations use the stated factors without intermediate rounding. The zero residuals confirm consistency of these prices and factors at the precision given; they do not establish that the inputs are free of every possible convention or market-data error.
Worked Example: A Large Residual and a Cash-Flow Check
A one-year bond pays \$5 at 0.5 years and \$105 at 1 year. The bootstrapped factors are \(D(0.5)=0.985\) and \(D(1)=0.96\). The recorded quote is \$98.92. Reprice the bond, calculate the residual, and state what the size of the discrepancy tells you.
Method. Reconstruct the cash-flow value directly, keeping the full \$105 payment at year 1, then compare it with the recorded quote.
The half-year payment has present value \(5(0.985)=\$4.925\). The one-year payment has present value \(105(0.96)=\$100.80\). Therefore \(P_{\mathrm{model}}=4.925+100.80=\$105.725\), which rounds to \$105.73 to the nearest cent.
Using the unrounded model price, the residual against the stated quote is \(R=105.725-98.92=\$6.805\), or \$6.81 to the nearest cent. The discrepancy is much larger than a cent-level rounding effect, so the quote and cash flows are not consistent with the stated factors. This calculation alone cannot determine whether the quote was mistyped, the bond terms were recorded incorrectly, or the factors came from a different valuation basis.
Common mistake and correction. A wrong calculation might report \(5(0.985)+105(0.96)=\$98.92\). But evaluating the two products gives \(4.925+100.80=105.725\), not 98.92. Recalculate each product before interpreting the residual; an apparently plausible quoted price does not replace the arithmetic check.
Check. The model price is \(\$105.73\) to the nearest cent, and the residual is \(+\$6.81\) to the nearest cent. Its positive sign means the model price exceeds the recorded quote.
Worked Example: Clean Price, Accrued Interest, and Residuals
A hypothetical bond has two remaining payments: \$2 at 0.25 years and \$102 at 0.75 years. The relevant factors are \(D(0.25)=0.99\) and \(D(0.75)=0.96\). Its quoted clean price is \$99.20, and accrued interest at settlement is \$0.70. Find the residual on a dirty-price basis and explain the effect of comparing the model price directly with the clean quote.
Method. A clean price excludes accrued interest, while a dirty price includes it. Since the cash-flow model values the remaining payments at settlement, compare it with the dirty quote, found by adding accrued interest to the clean quote.
The model price is \(2(0.99)+102(0.96)=1.98+97.92=\$99.90\). The dirty quote is \(99.20+0.70=\$99.90\). Therefore the dirty-basis residual is \(99.90-99.90=\$0.00\).
If the model price were instead compared directly with the clean quote, the result would be \(99.90-99.20=+\$0.70\). That apparent residual is exactly the accrued interest omitted from the clean quote; it does not indicate that the discount factors fail to reproduce the dirty price.
Check. The model and dirty quote both equal \$99.90. The clean quote is \$0.70 lower, matching the supplied accrued interest.
Reading Residuals Carefully
A residual should be interpreted only after checking the basis on which the price is stated. In particular, verify whether the quote is clean or dirty, whether the factors are measured from the same settlement date, and whether the redemption amount is included in the final cash flow. Then consider the residual’s magnitude relative to the precision of the quote and factors. A discrepancy of a fraction of a cent can arise from rounding displayed inputs; a discrepancy of several dollars generally calls for a more fundamental check.
| Residual pattern | Checks to make |
|---|---|
| One bond has a large residual | Recheck that bond’s coupon, redemption amount, cash-flow dates, quote, and arithmetic. |
| Several bonds have discrepancies of similar size | Check shared conventions, including settlement timing, quotation basis, and price units. |
| Residuals are small and vary around zero | Check the precision of displayed factors and quotes before treating the differences as substantive. |
| A residual is close to accrued interest | Check whether a clean quote was compared with a dirty model price, or vice versa. |
These patterns are prompts for investigation, not definitive diagnoses. For example, one misplaced payment date can affect more than one bond if the bonds share that date. Likewise, rounding may have a greater effect on a bond with many cash flows than on one with only a few. Keep the signed residual, retain full precision in intermediate calculations, and return to the underlying terms whenever the difference is material.
Common Traps
- Using the wrong discount factor. Each cash flow must be multiplied by the factor at its own payment time, not by a factor chosen only from the bond’s maturity.
- Omitting or double-counting redemption. If the final cash flow is already stated as coupon plus redemption, discount that combined amount once.
- Mixing clean and dirty prices. Add accrued interest to a clean quote before comparing it with a model value on a dirty basis.
- Ignoring settlement timing. A factor measured from one date cannot be paired with cash-flow times measured from another without adjusting the valuation setup.
- Discarding the residual’s sign. A positive residual and a negative residual point in opposite pricing directions and should not be reported only as an absolute difference.
- Rounding too soon. Keep the supplied precision through the sum, then round the final model price or residual as requested.
Check Your Understanding
For each problem, calculate the model price and signed residual, using the stated quote convention. Keep unrounded values until the final result.
- A bond pays \$4 at 0.5 years and \$104 at 1 year. The factors are \(D(0.5)=0.99\) and \(D(1)=0.94\), and the quote is \$101.70. Find the model price and residual. (Answer: Model price \$101.72; residual \(+\$0.02\).)
- A bond pays \$2.50 at 0.5 years, \$2.50 at 1 year, and \$102.50 at 1.5 years. The factors are 0.985, 0.96, and 0.93, respectively. Its quote is \$100.20. Find the model price and residual. (Answer: Model price \$100.1875; residual \(-\$0.0125\), or \(-\$0.01\) to the nearest cent.)
- A bond pays \$3 at 0.5 years and \$103 at 1 year. Its factors are 0.98 and 0.96. The clean quote is \$100.90 and accrued interest is \$0.50. Find the dirty quote and the residual against it. (Answer: Dirty quote \$101.40; model price \$101.82; residual \(+\$0.42\).)
- A bond pays \$1.50 at 0.25 years, \$1.50 at 0.5 years, and \$101.50 at 0.75 years. The corresponding factors are 0.995, 0.985, and 0.97. Its quote is \$101.43. Find the model price and residual, and state whether the displayed difference is larger than one cent. (Answer: Model price \$101.425; residual \(-\$0.005\), which rounds to \(-\$0.01\) to the nearest cent and is less than one cent in magnitude before rounding.)
- A bond pays \$6 at 0.5 years and \$106 at 1 year. The factors are 0.975 and 0.945. A recorded quote is \$101.00. Calculate the model price and residual, then identify two input or convention checks warranted by the result. (Answer: Model price \(6(0.975)+106(0.945)=5.85+100.17=\$106.02\); residual \(+\$5.02\). Check the recorded quote and cash-flow terms, and verify the settlement date and price basis.)