Buying two-year notes because you expect the curve to steepen is a position on the level of rates: the same correct view loses two dollars if the steepening arrives with everything rising. Matching the two legs on dollar duration removes the parallel part of the move as an algebraic identity, so half a point of widening pays four dollars whatever the level does. Matching market value as well is impossible with only two bonds and needs a third leg carrying no duration, and on a full cash-flow reprice the level survives at second order, worth 0.07 against a four-dollar profit at fifty basis points.
A riskless zero-coupon bond at 100 has a six-month forward of 102.531512, a premium. Give the same bond an 8% coupon and the forward drops to 98.511194, a discount, because the sign of the premium is the sign of the rate minus the coupon and nothing else. Quoting the forward at spot when the coupon is rich hands the other side a riskless 1.518802 per hundred, and the discrete-coupon version shows the answer also turns on whether a payment date falls before delivery.
A futures settles up every day, so its fair price is a plain expectation, while a forward settles once, so its fair price is a discounted expectation renormalised. The difference between the two is exactly the covariance of the discount factor with the contract price divided by the expected discount factor, and for a deposit contract quoted as 100 minus the rate both fall together, so the fair forward price is 95.019999 against the futures' 95.000000. Long the forward and short the futures is worth 0.0195 points at inception, the gap reaches 39.48 basis points at ten years, and on an asset whose price rises with rates the whole answer reverses.
In a rally you want positive convexity, and a mortgage pool has negative convexity, because the borrowers hold the right to prepay and you are short that option. Modelled as a ten-year 6 percent bond minus a three-year call struck at 105, the straight bond has convexity plus 68.8 and the pool minus 177.4, and doubling a rally from 100 to 200 basis points takes the bond from 7.79 percent to 16.35 while the pool goes only from 4.21 to 6.13. The pool still gains, so the reflex is right about the sign and wrong about the size, and the single parameter set in 108 with positive curvature is one whose prepayment option is far out of the money.
A top-rated issuer picks the coupon that prices its ten-year bond at exactly 100 off its own flat 5 percent curve, and the same cash flows discounted off a swap curve 25 basis points lower come to 101.954087. Two facts do the work: a present value is strictly decreasing in every rate it is discounted at, and for a top-rated name the swap curve sits below its own bond curve because a swap risks no principal and is margined daily. A modified duration of 7.7217 times the spread accounts for 1.9304 of the lift, and a convexity of 74.9977 supplies the last two cents.
Sketch a one-year call struck at 100 with a five percent rate. Deep in the money the curve straightens into a line of slope one, and that line crosses at 95.122942 rather than at 100, so drawing it through the strike is out by 4.877058 for ever. That gap is the interest saved on the strike, and it is also why an American call on a share paying no dividends is never exercised early. Plot the same option against the futures price and the crossing returns to 100 while the slope drops to 0.951229.
A bond paying 100 in ten years costs 67.5564 at a four percent yield. The first two points of yield cost 11.7169 and the next two only 9.5201, so the curve bends. The usual explanation blames duration falling as yields rise, and this bond refutes it: with a single cash flow its Macaulay duration is exactly ten at every yield. The slope is minus duration times price over one plus the yield, and the general statement needs no duration at all, only that every discount factor is convex.
A 20-year 7 percent bond on a flat 10 percent curve prices at 744.5931, and a one-point rise costs exactly 63.1262. The tangent alone says 67.7028, and adding the second-order term of 4.8416 lands at 62.8612, inside 27 cents of the truth. Note that the correction and the error it corrects are two different numbers, which is why the estimate ends up on the wrong side of the answer.
A pays the floating rate L and receives 24 per cent minus 2L, which nets to 24 minus 3L and factors as three times 8 minus L: three vanilla swaps at eight per cent, so the fixed rate was never the twenty-four printed on the deal. Reading it as twenty-four is a 48-point error at a floating rate of twenty-four. The article also carries the version that does need a model, where a floor on the inverse leg adds two caplets struck at twelve and the factorisation fails.
Cutting a hundred million of a thirty-year bond down to fifty takes five hundred futures, and the usual arithmetic of fifty million over a hundred thousand lands there only because the contract's duration per dollar of face happens to match the bond's. What a hedge matches is dollars per basis point: 56,288.92 against 112.5778. Hold a thirty-year zero instead and the same job needs 1,234 contracts, while five hundred three-month contracts would cover 22.2 per cent of it.
An eight per cent thirty-year bond at par loses 27.49 dollars when its yield rises 25 basis points, and its yield moves because the principal is collateralised in United States Treasuries. The answer that circulates, about thirty-five dollars, needs a duration of fifteen, and a par bond at an eight per cent yield cannot have one: its modified duration is its own annuity factor, capped at 12.5 at any maturity whatsoever. The pass-through, the only soft number in the chain, is swept from an eighth to a half.
Heads pays $7 in eighteen months, tails costs $2 today, and the curve gives 12% for one year and 18% for two. Averaging the amounts gives $2.50, which is 38.68% too high, because expectation and discounting only commute when every cash flow lands on the same date. The answer is about $1.80, and four defensible compounding conventions spread it from 1.7862 to 1.8381, so one decimal is honest and two are not.