Why Estimate Convexity From Nearby Prices?
A bond-price model may provide prices at several yields without providing a convenient formula for the second derivative of price. Nearby prices can still reveal the local curvature of the price-yield relationship. This is useful when checking a numerical pricing model, analyzing a portfolio with complicated cash flows, or estimating convexity from a table of repriced values.
The key is to compare prices at yields that are equally far above and below a base yield. The central finite-difference estimate uses the change in price across those symmetric shocks. Because a yield shock must be squared in the calculation, careful conversion from percentage points or basis points to decimal yield units is essential.
The Central Finite-Difference Formula
Write \(P_-=P(y_0-h)\), \(P_0=P(y_0)\), and \(P_+=P(y_0+h)\). The estimated second derivative and normalized convexity are
The numerator \(P_+-2P_0+P_-\) is the second price difference. Dividing it by \(h^2\) estimates the unnormalized curvature in price units per squared unit of yield. Dividing again by \(P_0\) gives normalized convexity. When yields are entered as decimals, convexity is expressed per squared unit of decimal yield; it is not a percentage.
The formula assumes that all three prices come from the same pricing basis: the same cash flows, settlement assumptions, and yield-compounding convention. It also assumes equal yield steps around \(y_0\). If the available yields are not symmetrically spaced, this central formula cannot be applied directly to those three prices.
Why the Formula Works
The justification comes from expanding the price function around the base yield. If \(P\) is sufficiently smooth near \(y_0\), Taylor expansion gives
Add the two expansions and subtract \(2P_0\). The terms involving \(P'(y_0)\) cancel because one yield is above the base and one is below it. The third-derivative terms cancel for the same reason. The result is
Dividing by \(h^2\) estimates \(P''(y_0)\); the leading truncation error is of order \(h^2\). Dividing by \(P_0\) then estimates normalized convexity. This cancellation is why symmetric shocks are important: the estimate does not include the first-order price movement that would otherwise dominate the calculation.
Worked Examples
Worked Example: Estimating Convexity From Three Repriced Values
A hypothetical bond-pricing model uses an annual-effective yield and holds the bond's cash flows fixed. It reports prices of $103.20 at a yield of 4.80%, $100.00 at 5.00%, and $97.00 at 5.20%. Estimate normalized convexity at 5.00%. State the method and check the yield step.
Method. Use the central second difference, since the two surrounding yields are equally spaced around 5.00%.
Step 1: Convert the yields and identify the step. The base yield is \(y_0=0.0500\). Each surrounding yield is 0.20 percentage points away, so \(h=0.0020\), not 0.20.
Step 2: Calculate the second price difference.
Step 3: Normalize by the base price and square the yield step.
The estimated normalized convexity is 500 per squared unit of decimal yield. As a check, the unnormalized estimate is \(0.20/(0.0020)^2=50{,}000\) dollars per squared unit of yield; dividing by the $100.00 base price gives 500. The common mistake avoided here is treating 0.20 percentage points as a decimal yield change of 0.20.
Worked Example: Comparing Two Local Convexity Estimates
At a base annual-effective yield of 6.00%, two hypothetical bonds each have a price of $100.00. Their prices at yields 50 basis points below and above the base are shown below. Estimate each bond's normalized convexity and identify which has the greater estimated local curvature relative to its price.
| Bond | Price at 5.50% | Price at 6.00% | Price at 6.50% |
|---|---|---|---|
| A | $103.40 | $100.00 | $96.90 |
| B | $102.90 | $100.00 | $97.50 |
Step 1: Set the common yield step. Fifty basis points is \(h=0.0050\) in decimal yield. Thus \(h^2=0.000025\), and the normalized-convexity denominator for either bond is \(P_0h^2=100.00(0.000025)=0.0025\).
Step 2: Calculate Bond A.
Step 3: Calculate Bond B.
Bond B has the greater estimated local convexity relative to its price: 160 compared with 120. This conclusion follows from the second differences because the base prices and yield steps are the same. The method avoids comparing raw curvature estimates without accounting for differences in base price or shock size.
Worked Example: A Small Shock and the Yield-Unit Trap
A hypothetical bond has annual-effective yield 6.00% at the base point. A pricing system reports \(P_0=\$100.00\), \(P_-= \$101.26\) at 5.99%, and \(P_+=\$98.82\) at 6.01%. Estimate normalized convexity. Explain why using 1 as the yield step gives the wrong result.
Step 1: Convert the shock. The yield changes by 0.01 percentage points, or one basis point, on each side. In decimal yield units, \(h=0.0001\), so \(h^2=0.00000001\).
Step 2: Find the second price difference.
Step 3: Estimate and normalize the second derivative.
The estimated normalized convexity is 80,000 per squared unit of decimal yield, based on the prices as reported. The large numerical value reflects that the step is small and is squared in the denominator; it does not mean that the bond price itself is unusually large. Using 1 for the step would confuse a one-basis-point shock with a 100% decimal-yield change. The calculation checks out because the second price difference is positive and the base price is positive.
Choosing and Checking the Yield Step
The finite-difference formula estimates curvature locally, but an estimate depends on the size of \(h\) and the precision of the input prices. A very large step averages curvature over a wider yield range, so it may not describe the curvature close to \(y_0\) as well. A very small step reduces the range but makes the second price difference small; price rounding or numerical noise can then become a substantial fraction of the numerator.
In a practical calculation, keep the pricing convention fixed, use equal shocks on both sides, and retain as much price precision as the source permits. If prices are rounded to cents, report the result as an estimate based on rounded inputs rather than implying greater precision than the data support. When possible, compare estimates from more than one reasonable step size. A substantial difference can signal that curvature varies over the range or that rounding is influential.
Identify the base yield, cash flows, and yield-compounding convention. Do not mix prices produced under different assumptions.
Use yields \(y_0-h\) and \(y_0+h\), with the same decimal yield step \(h\) on each side.
Evaluate \(P_+-2P_0+P_-\), divide by \(h^2\), and divide by \(P_0\) to estimate normalized convexity.
Confirm that basis points were converted to decimal yield, that the base price is positive, and that reported precision is appropriate for the input prices.
Common Exam Traps
- Using percentage points as decimals. A 25-basis-point shock is \(0.0025\), not \(0.25\) or \(25\). Because the step is squared, this error has a particularly large effect.
- Forgetting to normalize. Dividing the second price difference by \(h^2\) estimates \(P''(y_0)\), not normalized convexity. Divide by \(P_0\) as well when the requested quantity is \(P''(y_0)/P_0\).
- Using unequal shocks. The central formula requires equally spaced yields around the base. A price at 4.8% is not paired symmetrically with a 4.5% base if the other price is at 4.3%.
- Changing the pricing basis. Differences in cash flows or compounding convention can affect the prices independently of the yield shock, so the result would not isolate local curvature.
- Reporting unjustified precision. A calculation can produce many digits even when the input prices were rounded. Numerical detail is not the same as accuracy.
Check Your Understanding
Use decimal yield changes, keep each set of prices on a consistent basis, and round answers only as requested.
- A bond has a base price of $80.00. At yields 100 basis points below and above the base, its prices are $82.10 and $78.30, respectively. Estimate normalized convexity. (Answer: 50)
- At a base annual-effective yield, a bond's price is $102.00. Its prices at yields 20 basis points below and above the base are $105.60 and $98.80. Estimate normalized convexity to one decimal place. (Answer: 980.4)
- At a 7.00% base yield, prices at 6.75%, 7.00%, and 7.25% are $103.55, $100.00, and $96.50. Estimate normalized convexity. (Answer: 80)
- A bond's base price at 4.50% is $100.00. Prices are $102.10 at 4.20%, $101.40 at 4.30%, and $98.40 at 4.80%. Use the symmetric 30-basis-point shocks to estimate normalized convexity; do not use the 4.30% price in the central formula. (Answer: 555.6)
- A bond's base price is $100.00. Prices at yields 100 basis points below and above the base are $101.03 and $99.02. Estimate normalized convexity. (Answer: 5)