The Analyst's Path

Phase 12Finance Plus, AI and the quant-code trackFinance trackFI1.0721,756 words2 h 1 min of readingabout 18 hours of study7 concept pagesfree

Active Fixed Income: Yield-Curve and Credit Strategies

A five-year rupee government bond bought at par on a curve that then does absolutely nothing returns 7.529609% over the following year. Its yield is 7.00%.

Advertisement

Fixed Income Analytics branch · Node FI1.07 · ~18 focused hours · Mastery gate >= 85%

A five-year rupee government bond bought at par on a curve that then does absolutely nothing returns 7.529609% over the following year. Its yield is 7.00%. The extra 52.96 basis points came from two places the yield cannot tell you about: 11.47 basis points of reinvestment on the first coupon, and 41.49 basis points of price gain from the bond ageing one year down a curve that slopes upward. Run the same arithmetic on the five-year Treasury and a year in which nothing happens pays 4.655398% against a 4.32% yield.

Those two numbers are the argument of the whole branch in miniature. A bond's yield is what it promises if you hold it to maturity and reinvest at that same yield. A bond position's return over a horizon shorter than its maturity is a different object, and the difference is where active management lives.

Advertisement

Now push the question one step. How far can rates rise before the rupee bond's 7.53% is gone? A parallel selloff of 228.62 basis points wipes it out exactly, and not a basis point less. On the Treasury the same calculation gives 131.19 basis points. Carry is the size of the error a view is allowed to make, computable to four decimal places before a single trade is placed. Treating it as a consolation prize collected while waiting for the view to come good gets the relationship the wrong way round.

The credit half of the job has the same shape and a different unit. A rupee non-bank finance company bond at 185 basis points over the government curve carries 190.57 basis points of spread over a year, which its spread duration of 3.32 converts into a breakeven of 57.36 basis points of widening. Widen further than that and the year is a loss. Against the same 190.57 basis points sits an expected credit loss: at a 2% one-year default probability and 40% recovery, 120 basis points of it, leaving 70.57 basis points of genuine compensation. And at a 3% weight in a thousand-crore book, one default on that name destroys 31.49 years of the spread carry the position contributes.

Those two arithmetics, done properly and on positions rather than on bonds, are what the rest of the work consists of. There are five things an active bond manager can decide: how much duration to run against the benchmark, where on the curve to run it, how much spread risk to hold, which issuers to hold it in, and which currency to hold it in. Each of the five has a number attached, a breakeven, and a way of being wrong that a well-built report will catch and a badly-built one will hide. A bond book that made 6.42% in a year when its benchmark made 5.78% has earned 64 basis points of explanation, and 90.03% of what it earned was the market.


Learning objectives

You can:

  1. Decompose a bond position's expected return into yield income, rolldown return, the price change implied by your own curve view, expected credit loss and currency, compute all five on one position, and reconcile them to the total.
  2. Compute carry and rolldown on a stated curve, find the parallel move that exactly wipes out a year of it, cross-check that breakeven against the duration shortcut, and state the two conditions under which the trade fails.
  3. Show what a carry-and-roll position is betting against, by pricing the same bond at horizon on the unchanged curve and on the curve's own implied forwards, and reading the gap as the size of the bet.
  4. Build bullet, barbell and laddered structures to a single modified duration, compute their convexity, dispersion and bucket-by-bucket duration contributions, and rank their profit and loss under a parallel move, a steepening and a flattening.
  5. Size a duration-weighted steepener or flattener, compute its profit and loss under stated curve moves by exact repricing, and demonstrate that its answer is the same in a bull and a bear version of the same slope change up to a convexity residual you can quantify.
  6. Construct a butterfly, state which weighting convention you used, compute the curvature the trade is actually long or short, and identify the moves it is insulated from.
  7. Set an active duration against a benchmark, convert it into a tracking-error contribution, combine it with the credit leg through a stated correlation, and compute each leg's marginal contribution to the total.
  8. Use spread duration and duration times spread as the credit position-sizing unit, equalise the risk of two credits with different spreads, and show why equal market value and equal spread duration both get that sizing wrong.
  9. Decompose a credit position's excess return, compute its breakeven spread widening and its breakeven default probability, and price a top-down sector rotation against a bottom-up issuer selection on the same capital.
  10. Compute a hedged yield through covered interest parity, compare it against the unhedged position under stated spot paths, and write an active fixed-income policy that names a risk budget per strategy, a stop rule and a report that separates strategy return from market return.

The by-hand skill and the productivity payoff. The gate rewards the arithmetic: a rolldown off a curve, a hedge ratio from two modified durations, a breakeven widening, a marginal contribution to tracking error, an attribution that ties to the active return. The payoff is running all of it across three hundred positions every morning. The order is not negotiable, because every quantity here is one an assistant produces fluently and often wrongly. A rolldown computed against the wrong horizon point, a steepener sized on Macaulay rather than modified duration, a duration-times-spread figure built from a spread the vendor quotes over swaps while the portfolio is benchmarked to governments: each is a plausible number with a wrong meaning, and none of them looks wrong on a page.


Prerequisites & connections

Builds on. FI1.06 supplies the portfolio-level machinery that everything here rearranges: portfolio duration as a market-value-weighted object against the cash-flow-yield method, the parallel-shift assumption behind both, tracking error against a bond benchmark, and the liability-driven and index-based mandates whose active budget this node spends. FI1.05 supplies the instruments themselves and the trading arithmetic: coupon structures, day counts, settlement, matrix pricing, and the conversion of a quoted bid-ask into basis points of yield and into an off-the-run breakeven holding period, which the liquidity section here spends rather than rebuilds. FI1.02 supplies duration, convexity, dollar duration and key-rate profiles, all used here and none re-derived. FI1.03 supplies the bootstrap, the spot and forward curves, the roll-forward identity and the swap spread; the forward curve is used here as the thing a carry trade bets against, and it is taken as given rather than rebuilt. FI1.04 supplies option-adjusted spread, the effective measures that replace analytical duration when cash flows move, credit default swap mechanics and the securitisation waterfall; structured credit appears here as a position in a book, with its valuation left where it was built. E11.01 supplies issuer credit analysis, the leverage and coverage ladders, rating methodology, the recovery waterfall and the credit triangle. M7.03 supplies the macro read of the curve, the bull and bear vocabulary and the original duration-weighted steepener. AA1.07 supplies the fundamental law of active management, whose square-root exchange rate between skill and breadth decides the top-down against bottom-up argument in Worked Example 5. AA1.04 supplies rolldown at the single-position level and the capital-market-expectation inputs a curve view starts from. EC1.04 supplies covered interest parity, borrowed here rather than re-derived.

Feeds forward. AA1.02 consumes these active durations and duration-times-spread figures as risk-budget inputs at the allocation level. AL1.01's relative-value and structured-credit strategies run on the same spread and carry arithmetic at higher leverage. AA1.03 owns the attribution standard the reporting section writes to, and ES1.02 owns the presentation rules that govern showing any of it to a client. DV1.01 and DV1.03 own the futures and swap instruments an overlay uses to move duration without touching the cash book.

Six neighbouring modules own material that touches this one, and none of it is rebuilt here. FI1.03 owns forwards, bootstrapping and swap spreads; where a forward rate is used below it is quoted from that machinery. FI1.04 owns option-adjusted spread, credit-default-swap mechanics and securitisation structure, including the waterfall that decides which tranche absorbs a loss; the collateralised-loan-obligation arithmetic here allocates loss across an already-understood structure and stops there. E11.01 owns issuer credit analysis: if the question is whether a company can pay, it belongs there, and what follows assumes the answer and asks what to do with it. M7.03 owns the macro curve read, the four named curve moves and the first steepener worked example; the version here is the same trade priced by exact repricing rather than by the linear estimate, and it extends rather than replaces. FI1.06 owns liability-driven and index-based mandates, cash-flow matching, contingent immunisation and stratified sampling; its own boundary statement hands every active strategy, including carry, roll-down, curve trades and the excess-return decomposition, to this node. FI1.05 owns instrument anatomy, settlement, market structure and the bid-ask-to-yield conversion, and its treatment of the off-the-run concession is the one cited above rather than repeated. AA1.07 owns the fundamental law, active share and manager selection.


Core teaching content

1. What a bond position is expected to earn, in five separable pieces

Start with a position rather than a bond. Calderon Pipelines Inc. (synthetic) has a five-year dollar bond issued at par, paying 6.00% semiannually, at a flat spread of 168 basis points over a Treasury par curve running 4.05% at two years, 4.32% at five and 4.62% at ten. A fund buys 100 and intends to hold it for one year. What should the fund write down as its expected return?

Five things can happen to that position over the year, and they are separable. Write them in the order they are computed, because the order is also the order of how much you know about each.

#ComponentCalderon, 1 yearWhat it depends on
1Yield income+6.085221%the coupon and the rate at which the first coupon is reinvested
2Rolldown return+0.281900%the shape of the curve, if nothing on it moves
3Price change on the investor's own curve view+0.705332%the view, the position's duration and its convexity
4Expected credit loss-0.720000%default probability and recovery
5Currency0.000000%the investor's base currency
Expected total return+6.352453%

Take them one at a time. Yield income is the annual coupon plus reinvestment income, over the current price: 6.00 of coupon, plus 0.085221 earned by reinvesting the first half-coupon of 3.00 for six months at the six-month rate six months forward, which this curve puts at 5.681420%. Divide by the price of 100 and you have 6.085221%. Note the difference from the yield to maturity, which here is 6.000000%. The gap between the two is the reinvestment assumption made explicit rather than buried.

Rolldown return is the price change from ageing alone. One year on, the bond has four years left. Price those four years of cash flows off exactly today's discount curve at exactly today's tenors and you get 100.281899517, so the rolldown is +0.281900%. The two together are the rolling yield, 6.367121%, and it is the return on the position if the curve stands perfectly still.

The curve view is where the manager's opinion enters, and it is the only component that carries an opinion. Suppose the fund expects the four-year point twenty basis points below the unchanged-curve level a year from now. The position's modified duration at that horizon is 3.511841 and its convexity is 14.820931, so the estimated price change is -3.511841 x (-0.20%) + 0.5 x 14.820931 x (0.0020)^2 = 0.702368% + 0.002964% = +0.705332%. Reprice the aged bond exactly on the shifted curve and the answer is +0.707127%, a gap of 0.0018 percentage points, which is what the second-order approximation costs at this size of move.

Expected credit loss is default probability times loss given default, and it is a subtraction, not a haircut on the spread. At a one-year default probability of 1.20% and a recovery of 40%, the expected loss is 1.20% x 60% = 0.72%. That figure has no business being folded into a spread or a discount rate; it is a separate line, so that a reader can disagree with it separately.

Currency is zero for a dollar investor holding a dollar bond and is very much not zero otherwise, which is what Worked Example 6 is for.

Two properties of the table matter more than any single row. The first is that the components are computed, not allocated: nothing is a plug. The second is that only one of them is a forecast. A manager who is honest about that will find that on this position the rolling yield of 6.367121% accounts for the whole expected return of 6.352453% and a little more, because the 0.705332% the curve view adds is more than given back by the 0.720000% of expected credit loss. Against the same-maturity Treasury's rolling yield of 4.655398%, the position earns 171.17 basis points of spread carry, and the default probability that exactly consumes it is 2.852871%.

Carry and rolldown

Carry is the yield income a bond earns over a holding period, and rolldown is the price gain as the bond ages along an unchanged curve and is priced off a shorter point on it. Added together they give the rolling yield. If the curve instead moves to its own forward rates, every bond just earns the one-year rate, so any extra return from carry and rolldown is a bet that the forwards will not be realised.

4 min read, on its own page

Bullet vs barbell vs ladder

A bullet, a barbell and a ladder are three ways to build a bond portfolio with the same duration but a different shape along the curve. At that equal duration the barbell has the most convexity and the least yield, the bullet has the opposite, and the ladder sits between them. The choice is therefore a curve-shape view, and pretending otherwise gives a slope bet nobody authorised.

3 min read, on its own page

5. Steepeners and flatteners, sized so that only the slope matters

A duration-weighted slope trade removes the level of rates from the position by construction. Long the front, short the back, sized so that the two legs have identical sensitivity to a parallel move, and what is left is a pure statement about the gap between two points.

The two-year par bond on the US curve has a modified duration of 1.902710 and the ten-year has 7.936320, so a long of $100m of the two-year is hedged by a short of 100m x 1.902710 / 7.936320 = $23,974,713 of the ten-year. Each leg then carries $19,027.10 of DV01, and $190,270,988 of dollar duration.

The result is the identity a rates desk actually trades on:

P&L on a duration-weighted slope trade ~= dollar duration per leg x change in the slope

At $190.27m of dollar duration per leg and a 25 basis point widening in the two-to-ten spread, that estimate is $475,677. Reprice both legs exactly and a bull steepener in which the two-year rallies 30 basis points and the ten-year rallies 5 pays $477,534, while a bear steepener in which the two-year sells off 5 and the ten-year sells off 30 pays $467,665. Both are the same 25 basis point slope change and both land within 2% of the linear estimate. The macro cause of the steepening dropped out, which is the entire purpose of the weighting.

The residual difference between the two, about $9,900, is convexity, and it is worth naming rather than rounding away. The ten-year leg has a convexity of 75.580012 against the two-year's 4.615632, so the short leg is short a great deal more convexity than the long leg is long. A duration-weighted slope trade is therefore short convexity, and it prefers small moves to large ones. The same structure under a pure 25 basis point parallel selloff loses $4,175 rather than nothing at all, which is that short convexity position showing up where the trade was supposed to be neutral.

Sizing on Macaulay duration instead of modified duration, or on notional instead of either, is the commonest way this trade goes wrong. On these two bonds the Macaulay ratio of 0.239079 and the modified ratio of 0.239747 differ by 0.2786%, so the error hides. On a pair with very different coupons it does not.

Yield curve butterfly trade

A butterfly buys the belly and sells the wings, or the reverse, and what it is long is curvature: the middle of the curve against the average of the two ends. Everything about it turns on the weighting convention, so state the convention before quoting the trade. A condor is the same idea with four points instead of three, buying two adjacent belly maturities against two wings.

3 min read, on its own page

7. Active duration: the largest single decision in most bond books

Every other decision here is small next to this one, and the arithmetic says so.

Take Fairfield Core Plus (synthetic), a $500m US mandate benchmarked to a broad investment-grade index of 6.20 years' duration. The manager runs 6.80, so the active duration is +0.60 years. If the benchmark yield has an annualised standard deviation of 75 basis points, that bet contributes 0.60 x 0.75% = 45.00 basis points of tracking error on its own.

Now the credit leg. The portfolio's duration-times-spread figure is 780 basis-point-years against the benchmark's 640, so the active figure is +140. At a relative spread volatility of 20% a year, the credit bet contributes 140 x 0.20 = 28.00 basis points.

Those do not add. With a correlation of -0.30 between rate and spread returns, the total is

sqrt(45.00^2 + 28.00^2 + 2 x (-0.30) x 45.00 x 28.00) = 45.310043 basis points

which is barely more than the duration leg alone. Decompose it properly and the picture sharpens. Each leg's marginal contribution is its covariance with the portfolio divided by the total, giving 36.349557 basis points from duration and 8.960486 from credit, summing to 45.310043 exactly. The duration bet is 80.22% of the tracking error and the credit bet is 19.78%, on a book whose credit position sounds like the bigger story.

To make the credit leg contribute as much tracking error as the duration leg, the active duration-times-spread figure would have to reach 225 basis-point-years, which is more than a third of the benchmark's entire spread risk. And a tracking-error budget of 100 basis points, spent entirely on duration, would allow an active duration of 1.333333 years and nothing else.

Three consequences follow. Duration is where a risk budget is won or lost, so it is where the governance should be heaviest: a stated maximum, a stated review trigger and a written reason for the current position. Credit needs a much larger active exposure than intuition suggests before it moves the tracking error at all. And the correlation term is doing real work here, so a manager who reports the two legs separately and never combines them will consistently overstate the fund's risk.

8. Cross-market positions, and the two decisions hiding inside one of them

A mandate that may hold more than one government curve carries a second duration decision on top of the first, because the duration has to sit on some particular country's curve. The temptation is to read that decision off the yields. The yields are close to useless for it.

The five-year rupee government bond yields 7.00% against a five-year Treasury at 4.32%, a gap of 268 basis points, and almost none of that gap survives contact with the hedge. Covered interest parity fixes the one-year forward rupee at the ratio of the two money-market rates, which the currency work owns and which is borrowed here rather than rebuilt. On a one-year rupee rate of 6.40% against a one-year dollar rate of 3.95% and a spot of Rs 88.50, selling the rupee forward costs 2.356902% over the year, so the hedged dollar return on the rupee bond is 5.053599% against the Treasury's 4.655398%. The pickup is 39.82 basis points, and it is a statement about the two curves' own term premia rather than about the level of either.

Two decisions therefore sit inside what looks like one, and the discipline is to price them apart. Hedged, the position is a rates trade worth 40 basis points, sized on relative carry and rolldown, and it has lost its thesis when that 40 basis points has gone. Unhedged, the same bond spans several hundred basis points of dollar return across a plausible one-year spot band, so the currency dominates and the bond is close to a rounding error inside it. A manager who wanted the first and simply did not hedge has bought the second, usually with no currency risk budget and with nobody having signed one off. Worked Example 6 runs both arithmetics, together with the shortcut that reads the hedged pickup as the difference between the two markets' own term spreads, and the size of the error that shortcut carries.

9. Two lenses on credit, and when each one is the right one

Credit decisions arrive through one of two doors. Through the first, a manager forms a view on the cycle, decides that the compensation for owning industrial risk relative to utility risk has moved too far, and buys the sector. Through the second, a manager reads one company's filings, decides that the market has mispriced that company's ability to service its debt, and buys the bond. The first is top-down, the second bottom-up, and the argument about which is better is usually conducted without any numbers at all.

Top-down credit has three layers. Cycle positioning decides the total amount of spread risk in the book: heavy in the early recovery when spreads are wide and defaults are falling, light in the late expansion when spreads are tight and issuance quality is deteriorating. Sector rotation moves that risk between industries on relative-value and fundamental grounds. Quality rotation moves it up and down the rating ladder, and it is the most powerful of the three because the spread differential between rating bands widens and narrows far more violently than the differential between sectors.

Bottom-up credit is issuer selection on the ladders the credit-analysis work builds: leverage, coverage, liquidity, covenant headroom and the recovery estimate. Its unit of work is one company and its output is a view on one bond's spread against its own peer group.

The honest comparison is not which lens is more skilful. It is which one produces more independent decisions. A manager who runs a top-down process gets perhaps four genuinely independent sector or quality calls a year, because sector spreads are highly correlated with each other and with the cycle. A bottom-up process on the same book might produce twenty-five independent issuer calls. Under the fundamental law of active management, which converts skill and repetition into an information ratio through a square root, the same information coefficient of 0.05 supports an information ratio of 0.05 x sqrt(4) = 0.10 on the sector programme and 0.05 x sqrt(25) = 0.25 on the issuer programme. Two and a half times as much, from the same skill, purely because it repeats.

That arithmetic does not make top-down wrong. It makes top-down expensive per decision, which is why the sensible answer for most books is that the cycle layer sets the total spread risk and the issuer layer spends it. What it does rule out is the common practice of holding forty names, calling it bottom-up, and running a single directional beta to the credit cycle. That book has a breadth of one.

Spread duration

Spread duration is the price sensitivity to a change in the bond's own spread, holding the government curve fixed, and for a fixed-rate bullet bond it comes out close to the modified duration. Two bonds with the same spread duration can carry very different risk, because spread changes are roughly proportional to spread levels. Analysts therefore size credit positions on duration times spread, the product of spread duration and spread.

3 min read, on its own page

11. Excess return, breakeven widening, and the carry-against-default trade

The reason to hold a credit bond rather than a government bond of the same duration is compensation, and the compensation has an exact form over a horizon:

excess return ~= spread carry - (spread duration x change in spread) - expected credit loss

Every term is computable in advance except the middle one. Konark Infrastructure Finance Ltd (synthetic) is a rupee non-bank finance company with a five-year bond issued at par at 8.85%, a flat 185 basis points over the government curve. Over one year on an unchanged curve its rolling yield is 9.435269% against the government bond's 7.529609%, so the spread carry is 190.5659 basis points, slightly more than the 185 of quoted spread because the spread accrues on a slightly higher price base and rolls down a spread curve of its own.

Set the middle term against the first and you get the position's breakeven:

breakeven spread widening = spread carry / spread duration = 190.5659 / 3.322261 = 57.3603 basis points

Widen by less than 57.36 basis points over the year and the position beats the government bond. Widen by more and it does not. That single number is the most useful thing a credit manager can put on a position sheet, because it converts an opinion about a company into a statement about a market variable with a threshold attached.

The third term is the one that separates credit from every other spread product. At a one-year default probability of 2.00% and a recovery of 40%, the expected credit loss is 120.00 basis points, so the net expected excess return is 190.57 - 120.00 = 70.57 basis points. Invert it and the default probability that exactly consumes the spread carry is 3.176099%.

Then the sizing question, and it is the one that decides whether a credit book survives a bad year. Put the Konark bond at a 3% weight in a rupee 1,000 crore book. The position contributes 3% x 190.57 bp = 5.7170 basis points of book return a year. If the name defaults at a 40% recovery, the book loses Rs 30 crore x 60% = Rs 18.00 crore, which is 1.8000% of the book, or 180 basis points. One default therefore destroys 31.49 years of the carry that position was contributing.

That ratio, not the spread, is the position-sizing argument. A credit book earns its return in basis points a year and loses it in whole percentage points at a time, so the only defence is that the losses are rare and the positions are small enough that a normal number of them is survivable. Anyone who cannot say, out loud and with a number, how many defaults a year the book is built to absorb has not sized it.

Structured credit

Structured credit covers securities such as collateralised loan obligations and mortgage bonds, where the risk is set by where a tranche attaches in the loss stack and by whose option it has written. Neither shows up in the yield. An active manager treats them as positions that draw on the same risk budget as a corporate bond, and quotes a tranche's cushion over the pool loss when asked how safe it is.

2 min read, on its own page

Bond liquidity risk

Bond liquidity risk is the risk that you cannot sell a bond when you need to without paying a wide bid-ask spread. Setting that cost beside a year of spread carry makes its size clear, and in a stressed market one round trip can cost more than the whole year of carry the position was held for. Analysts therefore quote every relative-value idea net of a realistic round trip, using the stressed bid-ask.

3 min read, on its own page

ESG in credit risk

ESG in credit risk means treating environmental, social and governance factors as drivers of the credit itself, because they can change the probability of default or the ability to refinance. They belong inside the credit analysis as inputs. A score applied after the credit work is done mostly measures disclosure quality and correlates with size, so only the first approach counts as analysis.

3 min read, on its own page

15. Building the book, and the report that shows who earned the return

An active fixed-income policy is a document, not an intention, and a usable one fits on two pages. It names the benchmark including its exact variant, states an active duration range with a hard limit, sets a duration-times-spread budget for credit, allocates a tracking-error contribution to each strategy, and states a stop rule that fires on a loss rather than on a change of mind.

The stop rule is the part most policies omit and the part that most needs writing down in advance. A curve trade has a natural one, because it has a breakeven: a carry-and-roll position whose breakeven was 228 basis points has lost its thesis when the curve has moved 150 and the remaining carry no longer covers the remaining risk. A credit position's version is its breakeven widening. Write the exit at a stated fraction of the breakeven, decide the fraction once, and the decision is made when it is cheap rather than when it is expensive.

Then the report. Fairfield Core Plus returned 6.42% in a year in which its benchmark returned 5.78%, so the active return was 64 basis points. Both numbers matter and they answer different questions, and a report that shows only the first has told the client nothing about the manager.

SourceContribution
Duration (active +0.60 years against a 32 bp fall in benchmark yield)+19.2000 bp
Curve (the two-to-ten steepener)+11.0000 bp
Sector allocation+14.0000 bp
Security selection+26.0000 bp
Currency0.0000 bp
Trading costs and residual-6.2000 bp
Total active return+64.0000 bp

The table ties to the active return exactly, and a table that does not tie has a plug in it somewhere. Read it in the right order. The benchmark's 5.78% is 90.03% of everything the fund earned, and the four active decisions together produced 9.97% of the portfolio's return. That proportion is normal for a core bond mandate, and stating it plainly is the difference between a manager who is trusted in a bad year and one who is not.

Two numbers a trustee should read first. The active return, because it is the only part the manager produced. And the tracking error the fund actually ran, because 64 basis points of active return on 45 basis points of tracking error is a different result from 64 on 200.

16. Where a model helps here, and what makes its output admissible

Every quantity in this node is a small function of a curve and a few conventions, which makes them ideal for code and dangerous as chat output. A rolldown figure, a hedge ratio and a duration-times-spread number all look reasonable at almost any value, and none of them announces an error the way an unbalanced balance sheet does. Three checks catch nearly everything.

The first is that the curve must reprice its own instruments: every par bond back at exactly 100 off the bootstrapped discount factors. The second is that a decomposition must tie to its total, whether that total is a one-year return or an active return. The third is that every convention must be named, because the same position computed against a spread over swaps and a spread over governments produces two different duration-times-spread figures and only one of them matches the benchmark.

{
  "skill": "Building the expected-return decomposition and the breakeven set for a whole bond book",
  "use": "Have an assistant write the curve bootstrap, the one-year horizon repricing and the breakeven solvers in Python so the five-component decomposition, the breakeven parallel move and the breakeven spread widening can be produced for every position in the portfolio each morning, rather than for the three positions you had time to do by hand.",
  "tools": ["Chat assistants with code execution (Claude, ChatGPT)", "Notebook environments (Jupyter, Colab)", "Spreadsheet solvers (Excel Goal Seek) for a hand-built three-bond check"],
  "prompt": "Write Python that (1) bootstraps semiannual discount factors from a par yield curve, (2) prices any semiannual bond off those factors, (3) for a one-year horizon computes yield income with the first coupon reinvested at the implied six-month forward, rolldown on the UNCHANGED curve, and the total return, (4) solves for the parallel spot shift at which the total return is exactly zero, and (5) computes spread duration by a plus and minus one basis point bump of a flat spread over the base curve. Print, for every par maturity, the residual between the bootstrapped reprice and 100.000000, and print the total return computed BOTH as (yield income + rolldown) and as (end value minus start value) so I can compare them.",
  "verify": "Do not read a single output number until two assertions pass: every par bond reprices to 100.000000 off the bootstrapped curve, and the decomposed return equals the directly computed return to 1e-9. Then run the third check by hand: price the aged bond on the curve's own implied forwards and confirm the total return equals the effective one-year rate exactly, which proves the forward machinery. Trace the input curve to its primary source (the FBIL or CCIL valuation curve for rupee government bonds, the US Treasury par yield curve for dollars), match the compounding and day-count conventions to that source, and record the pull date. A curve without its convention is not a curve.",
  "diy": "You must be able to compute yield income, rolldown and a breakeven parallel move on one bond with a calculator, and get the same answer the code gives. Worked Example 1 is that drill. An author who cannot reproduce the horizon price by hand cannot tell a rolldown computed against the wrong horizon point from a correct one, and the two differ by exactly the amount that makes the trade look good.",
  "market": "IN"
}
{
  "skill": "Sizing curve and credit positions, and building the attribution that ties",
  "use": "Use an assistant to turn a positions file into the trade tickets a strategy implies: duration-weighted leg sizes for a slope trade, wing notionals for a butterfly under a stated weighting, duration-times-spread-equalised sizes for a credit pair, and the marginal contribution of each strategy to the book's tracking error.",
  "tools": ["Python with pandas and NumPy in a notebook", "Chat assistants with code execution (Claude, ChatGPT)", "A spreadsheet, for the first two positions, hand-checked before any code is trusted"],
  "prompt": "Given a table of positions with modified duration, spread duration, spread and market value, write Python that returns: (a) the DV01 of every position and of the book, (b) leg notionals for a duration-weighted two-leg slope trade at a stated long size, (c) wing notionals for a 50/50 DV01-weighted butterfly plus the net cash the structure raises, (d) duration-times-spread for every position and the sizes that equalise DTS across a stated pair, and (e) tracking error from an active duration, an active DTS, a yield volatility, a relative spread volatility and a correlation, together with each leg's marginal contribution. Assert that the marginal contributions sum to the total tracking error and that the two legs of the slope trade have equal DV01 to 1e-6.",
  "verify": "Read no sizing output until the two assertions fire. Then check the butterfly's stated weighting against what the code did, because 50/50 DV01 weighting and regression weighting give different wing sizes and the trade means something different under each. Confirm the spread the DTS used is measured against the SAME reference curve as the benchmark, not over swaps when the benchmark is governments. Recompute one hedge ratio by hand from the two modified durations, and date and cite every spread and volatility input to the vendor or filing it came from. A sizing model that has never been checked against a hand-computed hedge ratio is an unaudited machine holding the largest bet in the book.",
  "diy": "You must be able to size a two-leg slope trade from two modified durations, compute a butterfly's curvature exposure from three yield changes, and equalise two credits on duration times spread, all on paper. Worked Examples 2, 3 and 5 are those drills. If you cannot do them you cannot tell a sizing bug from a market move.",
  "market": "US"
}

Modern Data Analysis. The whole node is six short functions. A bootstrap is one loop solving one discount factor per tenor. A horizon repricing is the same pricer called against a shifted tenor index. A breakeven is a root-find wrapping the pricer, which scipy.optimize.brentq does in one line. A hedge ratio is a division. A duration-times-spread column is a multiplication, and the marginal contribution to tracking error is a covariance divided by a standard deviation. What makes the code trustworthy is not its cleverness but its assertions: the par bonds reprice to 100, the decomposition ties to the total, the attribution ties to the active return, and the marginal contributions sum to the tracking error. Four assert statements are worth more than any amount of formatting, because they are the only thing standing between a manager and a position sheet that looks right and is not. The quant-code galaxy is where these get built at scale, with testing discipline and vectorisation; the job here is to be able to check them by hand first.


Common mistakes & how experts think differently

  1. Quoting a bond's yield as its expected return over a horizon shorter than its maturity. The yield assumes you hold to maturity and reinvest at the yield. Over one year the rupee five-year at 7.00% returns 7.529609% on an unchanged curve, and the ten-year at 7.25% returns 7.632141%. An expert computes the horizon return, states the curve assumption behind it, and never lets a yield stand in for it.
  1. Computing rolldown against the wrong horizon point. Rolling a five-year bond down one year means pricing four years of remaining cash flows at today's four-year discount factors. Rolling it against the five-year point produces zero rolldown, and rolling it against a three-year point flatters the trade. The check is that the total return computed as yield income plus rolldown must equal the total return computed as end value minus start value, to machine precision.
  1. Treating carry as a cushion rather than as the position's own breakeven. A year of carry on the rupee five-year absorbs a 228.62 basis point parallel selloff before the position loses money. On the ten-year it absorbs 122.89. Those are different trades and the difference is not visible in either yield. An expert states the breakeven before the position is put on, and compares carry per year of duration across candidates rather than carry in the raw.
  1. Forgetting that a carry-and-roll trade is a bet against the forwards. If the curve evolves to its own implied forwards, every bond returns the one-year rate and the strategy earns nothing. The rupee five-year's whole edge, 1.024731 percentage points, is the gap between the unchanged-curve return and the forward-realised return. State the thesis in those terms or you are running a term-premium bet without knowing it.
  1. Sizing a slope trade on notional, or on Macaulay duration. The neutral hedge ratio is the ratio of modified durations, which on the US two-year and ten-year is 0.239747. Size it on notional and the position is dominated by the level of rates rather than the slope. Sizing errors here are invisible in a quiet market and expensive in a fast one.
  1. Calling a duration-weighted slope trade risk-free between the legs. It is short convexity, because the long-maturity leg has far more of it: 75.580012 against 4.615632 on this pair. Under a pure 25 basis point parallel selloff the supposedly neutral steepener loses $4,175 on a $100m front leg. Small, but it is the sign of the residual that matters, and it grows with the square of the move.
  1. Quoting a butterfly without its weighting convention. A 50/50 DV01 weighting makes the trade long or short pure curvature and leaves it exposed to both steepeners on this curve; a regression weighting makes it neutral to fitted slope and exposed to the residual. Both are legitimate, and a butterfly quoted without saying which is a position nobody in the room has actually agreed to.
  1. Believing the credit book is where the risk is. On a mandate with an active duration of 0.60 years and an active duration-times-spread of 140, the duration bet contributes 80.22% of the tracking error and credit 19.78%. Experts check the marginal contributions before arguing about sector weights, and they combine the legs through the correlation rather than reporting them side by side.
  1. Sizing two credits on equal market value or equal spread duration. Aurora at 120 basis points and Bracken at 420, both with a spread duration of 5.00, differ by 3.5000 times in systematic spread risk. Duration times spread is the unit that equalises them, and its two limits should be stated in the same breath: it measures systematic risk only, and it degrades for distressed names whose spreads have stopped behaving like spreads.
  1. Comparing spread carry to nothing. A spread is compensation for an expected loss and for a widening you might have to sit through. The Konark position's 190.57 basis points of carry buys 57.36 basis points of breakeven widening and carries 120.00 basis points of expected credit loss, leaving 70.57. Quote all three or none.
  1. Ignoring the cost of being wrong in a market that gaps. A round trip in the Konark bond costs 26.15% of a year's spread carry in a normal market and 104.60% in a stressed one. An idea that is only profitable at screen bid-ask is not an idea. Price every relative-value trade at the stressed spread and see how many survive.
  1. Reporting the fund's return instead of the manager's. Fairfield's 6.42% is 90.03% benchmark. The 64 basis points that were not are the entire subject of a performance review, and an attribution that does not sum to them exactly has a plug in it.

The thread through all twelve is that an active fixed-income decision is a statement about a market variable with a threshold attached, and that the threshold is computable before the trade. An expert can say, for every position in the book, what has to happen for it to lose money and by how much. The manager who cannot is not running a strategy; they are holding bonds and hoping.


Worked examples

Every figure below was recomputed in Python before it was written down. All entities are synthetic and labelled so; both curves are illustrative but internally consistent, bootstrapped to an arbitrage-free set of discount factors that reprices every one of its own par bonds to 100.000000 within 1.4 x 10^-14. Coupons are semiannual and yields are quoted semiannually on both curves, matching how both markets quote.

The two par curves used throughout:

Tenor0.5y1y2y3y4y5y6y7y8y9y10y
India G-sec6.25%6.40%6.60%6.75%6.88%7.00%7.06%7.12%7.17%7.21%7.25%
US Treasury3.90%3.95%4.05%4.15%4.24%4.32%4.40%4.47%4.53%4.58%4.62%

Worked example 1: Carry, rolldown and two breakevens on the rupee curve (India, Rs)

The Sarayu Debt Fund (synthetic) runs a rupee bond mandate and is choosing between two five-year positions for a one-year horizon: the five-year government bond at 7.00%, and a five-year state development loan issued at a flat 45 basis points over the government curve, so at 7.45%. Both are bought at par. Decompose the expected return of each on an unchanged curve, find the parallel move that wipes out the year, and compare the two on carry per unit of the risk each takes.

Solution. Step 1, bootstrap and confirm the curve reprices itself. The India par curve above bootstraps to spot rates of 6.250000% at six months, 6.402402% at one year, 6.907731% at four years, 7.041364% at five and 7.331595% at ten. Every par bond, priced off those discount factors, returns 100.000000 to within 1.4 x 10^-14. Nothing below is trustworthy if this check fails, so it is run first.

Step 2, the government bond's yield income. The bond pays 3.50 twice. The first coupon is reinvested for six months at the six-month rate six months forward, which today's curve puts at 6.554916%, earning 0.114711. Yield income is (3.50 x 1.03277458 + 3.50) / 100 = 7.114711%.

Step 3, the rolldown. One year on, four coupons and the principal remain. Priced off today's discount factors at 0.5, 1.0, 1.5, ... 4.0 years, they are worth 100.414898236, so the rolldown is +0.414898%. The aged bond's implied yield to maturity is 6.879587%, which is the four-year par yield of 6.88% to within a basis point, as it should be for a bond that is now nearly at par.

Step 4, the rolling yield and the tie-out. Yield income plus rolldown is 7.529609%. Computed the other way, as (100.414898236 + 7.114711 - 100) / 100, the total return is 7.529609%. The two agree to 8.9 x 10^-16, which is the decomposition's own audit.

Step 5, the same three steps on the state development loan. At a flat 45 basis point spread the loan's own par curve runs 6.70% at six months to 7.45% at five years. Yield income is 7.580473% (a higher coupon and a higher reinvestment rate of 7.005254%), rolldown is +0.411015%, and the rolling yield is 7.991488%. The rolldown is slightly lower than the government bond's, because the higher discount rate compresses the price gain from the same 12 basis points of curve slope.

Step 6, the breakevens. Shift every spot rate in parallel and solve for a zero total return.

Rolling yieldHorizon durationBreakeven, exactDuration shortcutConvexity gap
G-sec7.529609%3.440027228.6219 bp218.8823 bp9.7396 bp
SDL7.991488%3.408001245.7386 bp234.4920 bp11.2467 bp

Step 7, carry per unit of risk, which is where the two positions actually separate. Per year of interest-rate duration the government bond earns 2.188823% and the loan 2.344920%, so the loan is 15.6 basis points a year better paid for the same rate risk. But the loan carries a second risk the government bond does not. Bump the spread by one basis point either way and the loan's spread duration at horizon is 3.419638. Its spread carry over the year, the excess of its rolling yield over the government bond's, is 46.1879 basis points, which converts to a breakeven spread widening of

46.1879 / 3.419638 = 13.5067 basis points

and a duration-times-spread figure of 3.419638 x 45 = 153.8837 basis-point-years.

The government bond's spread carry is zero and its spread duration is zero, so its carry per unit of spread duration is not a number at all. That is the correct answer rather than a failure of the calculation. A benchmark government bond is the thing spreads are measured against, so it takes no spread risk and earns no spread carry. The comparison the two positions actually demand is 13.5067 basis points of protection against 46.1879 basis points of extra income.

Read it. The state development loan pays 46 basis points more and gives up 13.5 basis points of spread widening before that extra pay disappears. State development loan spreads have moved by more than 13.5 basis points in a quarter often enough that the position is a genuine view, not a free pickup, and the honest way to hold it is at a size where a 40 basis point widening is an annoyance rather than an event. What the number does not say is anything about default: the breakeven is a mark-to-market threshold, and a state loan that widens 40 basis points and then repays in full has cost the fund nothing at maturity and a great deal at the quarterly valuation.

Worked example 2: A duration-weighted steepener and a butterfly on the same curve (US, $)

Fairfield Core Plus (synthetic) expects the US two-to-ten spread, currently 57 basis points, to widen by 25. It has no view on the level of rates. Size the trade so that only the slope matters, compute the profit and loss under three curve moves, then add a butterfly and identify which of the three moves it is insulated from.

Solution. Step 1, the two legs. On the US par curve, the two-year par bond carries a 4.05% coupon, a modified duration of 1.902710 and a convexity of 4.615632. The ten-year carries 4.62%, a modified duration of 7.936320 and a convexity of 75.580012. Per 100 of face, DV01 is 0.01902710 and 0.07936320 respectively.

Step 2, size for DV01 neutrality. A steepener is long the front and short the back. Against a long of $100,000,000 of the two-year, the short is

100,000,000 x 1.902710 / 7.936320 = $23,974,713

Each leg then carries $19,027.10 of DV01 and $190,270,988 of dollar duration. A one basis point parallel move moves both legs by the same $19,027 in opposite directions, which is the definition of the hedge.

Step 3, three curve moves, priced by exact repricing rather than by the linear estimate.

Scenario2y10ySlope2y leg10y legNetLinear estimate
Bull steepener-30 bp-5 bp+25 bp+$572,896-$95,362+$477,534+$475,677
Bear steepener+5 bp+30 bp+25 bp-$95,078+$562,743+$467,665+$475,677
Parallel+25 bp+25 bp0 bp-$474,239+$470,063-$4,175$0

The linear estimate is dollar duration per leg x change in slope = 190,270,988 x 0.0025 = $475,677, and it is the same in both steepeners because the level dropped out. The exact answers straddle it by about 2%, and the reason is convexity: the short ten-year leg carries 75.58 of it against the long two-year leg's 4.62, so the position is net short convexity and prefers the rally version of the steepening to the selloff version.

Step 4, the parallel case is the honest one. A trade advertised as level-neutral loses $4,175 on a 25 basis point parallel selloff. That is 0.42 basis points of the long leg's notional, negligible at this size and quadratic in the move, so a 100 basis point parallel selloff costs roughly sixteen times as much. Report the number; do not claim neutrality you did not buy.

Step 5, add the butterfly. Buy $100,000,000 of the five-year body, whose DV01 is $44,539, and sell wings carrying $22,270 of DV01 each. That is $117,041,635 of the two-year and $28,060,396 of the ten-year, and the structure raises $45,102,031 of cash, which has to be financed or invested and shows up in the profit and loss either way.

Step 6, what the butterfly is exposed to. Under a 50/50 DV01 weighting the entire exposure is the curvature, delta y(5y) - 0.5 x delta y(2y) - 0.5 x delta y(10y).

Scenario2y5y10yCurvatureButterfly P&L
Bull steepener-30 bp-20 bp-5 bp-2.50 bp+$113,305
Bear steepener+5 bp+20 bp+30 bp+2.50 bp-$116,237
Parallel+25 bp+25 bp+25 bp0.00 bp-$1,036

The butterfly is insulated from the parallel move and from that move alone, because it is the only one of the three in which the body's yield changes by exactly the average of the wings'. The residual $1,036 is the convexity mismatch, since 4.615632 and 75.580012 average to 40.1 against the body's 23.210605.

Step 7, cross-check by a different route. Reprice every leg off a rebootstrapped par curve, with the shift interpolated linearly across the intermediate tenors instead of applied to each bond's own yield. That gives a steepener profit of $476,641 in the bull case against $477,534 from the yield route, a difference of 0.09 basis points of the long leg's notional. In the bear case the gap is 0.72 basis points and in the parallel case 0.37. Two independent routes to the same trade agreeing inside a basis point of notional is the check that the sizing is right.

Read it. The slope trade pays about $476,000 for 25 basis points of steepening whichever way it arrives, which is what "duration-weighted" buys. The butterfly pays nothing at all for that same 25 basis points if the belly moves with the average of the wings, and it is the trade to use when the view is that the five-year is cheap or rich against its neighbours rather than that the curve is too flat. What neither number says is anything about carry: both structures also earn or pay the difference in yield between the legs every day they are held, and on a steepener that funds a low-yielding front leg by shorting a higher-yielding back leg, the carry runs against the position. A slope view that needs six months to work has to clear that cost, and it is not in any of the tables above.

Worked example 3: Sizing two credits so their spread risk is equal (US, $)

Fairfield's credit analyst likes two names equally. Aurora Grid Corp (BBB, synthetic) trades at an option-adjusted spread of 120 basis points with a spread duration of 5.00. Bracken Retail Inc (BB, synthetic) trades at 420 basis points with a spread duration of 5.00. The fund has $10,000,000 to put behind Aurora. How much Bracken carries the same spread risk, and what does getting the sizing wrong cost?

Solution. Step 1, compute the risk unit. Duration times spread is the product of spread duration and spread, in basis-point-years.

Aurora: 5.00 x 120 = 600 and Bracken: 5.00 x 420 = 2,100

The ratio is 3.5000, and it is not visible in either the spread duration, which is identical, or the market value, which the manager chooses.

Step 2, equalise. To match $10,000,000 of Aurora,

10,000,000 x 600 / 2,100 = $2,857,143 of Bracken.

Step 3, prove it under a shock. Spread risk in the duration-times-spread framework is proportional: a shock is a percentage of each bond's own spread, not a fixed number of basis points. Put a 20% proportional widening through both.

Spread+20%WideningPrice changeP&L at equal DTSP&L at equal market value
Aurora120 bp144 bp+24 bp-1.2000%-$120,000-$120,000
Bracken420 bp504 bp+84 bp-4.2000%-$120,000-$420,000

At equal duration times spread the two positions lose exactly the same amount, which is what "equal risk" means. At equal market value Bracken loses three and a half times as much, and the manager who sized that way has taken a much larger credit bet than the one they intended.

Step 4, the case that catches people out. Corniche Utilities (A, synthetic) has a spread duration of 8.00 at 90 basis points; Dunlin Energy (B, synthetic) has 2.50 at 300. Their spread durations differ by 3.2 times and their spreads by 3.3 times, but their duration-times-spread figures are 720 and 750, a difference of 4.17%. A long-dated high-grade bond and a short-dated high-yield bond can be, in systematic spread-risk terms, the same position.

Read it. Duration times spread converts a portfolio of heterogeneous credits into one number that adds, which is why credit desks budget in it. Two limits travel with it and both matter here. It is a systematic measure. Bracken's default risk is the reason it trades at 420 in the first place, and it is not in the 2,100. That risk needs the separate expected-loss and position-size arithmetic that Worked Example 4 supplies. The second limit is that the proportionality making the unit work is an empirical average across normal markets. It breaks for a name trading on its recovery value rather than on its spread, where the price stops responding to spread changes in any proportional way at all.

Worked example 4: What a credit position is really being paid, and what one default costs (India, Rs)

The Sarayu Debt Fund is offered a five-year bond from Konark Infrastructure Finance Ltd (synthetic), a rupee non-bank finance company, issued at par at 8.85%, a flat 185 basis points over the government curve. The fund runs Rs 1,000 crore. Decide whether the spread is worth taking, at what size, and state the two thresholds that would change the answer.

Solution. Step 1, the horizon decomposition. On an unchanged curve, the bond's yield income is 9.035989% (coupon 8.85 plus 0.185989 of reinvestment at 8.406305%), its rolldown is +0.399279%, and its rolling yield is 9.435269%. Against the government bond's 7.529609%, the spread carry over the year is

9.435269 - 7.529609 = 1.905659 percentage points = 190.5659 basis points

slightly more than the 185 basis points of quoted spread, because the spread accrues on a higher coupon base and the bond rolls down a spread curve of its own.

Step 2, spread duration. Bump the flat spread by one basis point either way, holding the government curve fixed, and reprice the aged bond. The spread duration at the one-year horizon is 3.322261, against a modified duration of 3.311196. Duration times spread is 3.322261 x 185 = 614.6183 basis-point-years, which is four times the state development loan's 153.8837 from Worked Example 1 and is the honest statement of how much more credit risk this position carries.

Step 3, the breakeven widening.

190.5659 / 3.322261 = 57.3603 basis points

The spread can widen 57.36 basis points over the year before the position underperforms the duration-matched government bond. Beyond that it loses.

Step 4, the expected credit loss, which is a separate line and not a haircut on the spread. At a one-year default probability of 2.00% and a recovery of 40%,

expected loss = 2.00% x 60% = 1.2000% = 120.00 basis points

so the net expected excess return is 190.57 - 120.00 = 70.57 basis points. Inverting, the one-year default probability that exactly consumes the spread carry is

1.905659% / 60% = 3.176099%

Step 5, size it. At a 3% weight the position is Rs 30.00 crore and contributes 3% x 190.57 bp = 5.7170 basis points of book return a year. If Konark defaults at a 40% recovery, the book loses Rs 30 crore x 60% = Rs 18.00 crore, which is 1.8000% of the book, or 180 basis points. One default therefore erases

180.00 / 5.7170 = 31.49 years

of the carry that position contributes.

Step 6, the decision, written as it should be written. Take the position at 3% if, and only if, three things hold. The analyst's default probability is materially below the 3.176099% breakeven. The fund can survive a 57.36 basis point widening without being forced to sell. And the book carries enough independent names that one default at 180 basis points is absorbed by the rest of the carry rather than by the year's return. At a 3% weight, a book earning 190 basis points of spread carry across all its credit positions absorbs roughly one default a year before the credit programme is flat.

Read it. The two thresholds do different jobs and are frequently confused. 57.36 basis points is a mark-to-market threshold: it decides whether this year's report looks good. 3.176099% is an economic threshold: it decides whether the position was worth owning. A fund with stable liabilities can breach the first and still be right; a fund facing redemptions cannot, because the widening becomes a realised loss. And neither number says anything about correlation: the arithmetic above prices one default in isolation, and the year in which non-bank finance companies default is the year in which several of them do, which is why the position limit and the sector limit both have to exist.

Worked example 5: A sector call and an issuer call, priced against each other (US, $)

Fairfield Core Plus has 4 percentage points of its $500m to reallocate and two proposals. The top-down proposal overweights industrials and underweights utilities by 4 points each. The bottom-up proposal puts the same 4 points into one industrial issuer trading at a concession to its sector, funded from the sector index. Price both.

Solution. Step 1, the top-down proposal. Industrials trade at an option-adjusted spread of 128 basis points with a sector spread duration of 6.40; utilities at 102 with 7.10. The strategist expects industrials to tighten 15 basis points and utilities to widen 10 over the year.

SourceArithmeticContribution
Industrials tighten 15 bp0.04 x 6.40 x 0.15%+3.8400 bp
Utilities widen 10 bp0.04 x 7.10 x 0.10%+2.8400 bp
Carry differential, 26 bp on 4 points0.04 x 26 bp+1.0400 bp
Gross+7.7200 bp = $386,000
Diversified expected-loss differential0.04 x (0.25% - 0.08%) x 60%-0.4080 bp
Net+7.3120 bp = $365,600

The active duration-times-spread arithmetic is worth doing separately: +0.04 x 6.40 x 128 = +32.7680 from industrials and -0.04 x 7.10 x 102 = -28.9680 from utilities, a net of +3.8000 and a gross of 61.7360 basis-point-years. The net figure is what the book's systematic spread risk changes by, which is almost nothing. The gross figure is what is actually at stake, because the two sectors do not move together.

Step 2, the bottom-up proposal. Calderon Pipelines Inc. (synthetic) trades at 168 basis points against its sector's 128, a concession of 40, with a spread duration of 6.00. The analyst expects 25 basis points of that concession to close over the year.

SourceArithmeticContribution
Concession closes 25 bp0.04 x 6.00 x 0.25%+6.0000 bp
Carry pickup, 40 bp on 4 points0.04 x 40 bp+1.6000 bp
Gross+7.6000 bp = $380,000
Expected credit loss, PD 1.20% at 40% recovery0.04 x 1.20% x 60%-2.8800 bp
Net+4.7200 bp = $236,000

Active duration times spread is 0.04 x (6.00 x 168 - 6.40 x 128) = +7.5520 basis-point-years.

Step 3, compare them properly. Gross, the two are within 12 basis points of one another, at 7.7200 and 7.6000. Net of expected loss they are not close: 7.3120 against 4.7200, because a single-name position carries a default tail that a sector tilt diversifies away. The sector call wins this comparison by 2.5920 basis points of fund return, or $129,600.

Step 4, and then the argument reverses. The comparison above is one trade against one trade. A programme is a different object. A top-down process generates perhaps four genuinely independent calls a year, because sector spreads are dominated by the same cycle. A bottom-up process on the same book generates perhaps twenty-five. At the same information coefficient of 0.05, the fundamental law gives an expected information ratio of 0.05 x sqrt(4) = 0.1000 for the sector programme and 0.05 x sqrt(25) = 0.2500 for the issuer programme, a factor of 2.5000.

Read it. On this pair of trades the sector call is worth more, and on the year's programme the issuer process is worth two and a half times as much. Both statements are true and they are not in conflict, because one is about a decision and the other is about a decision rate. The resolution most credit books arrive at is that the cycle and quality layers set how much total spread risk to carry, and issuer selection spends it, which uses the top-down lens where it has few, large, high-conviction calls and the bottom-up lens where it has many. What the arithmetic will not support is the third option, which is holding forty names selected bottom-up while running one undiversified directional bet on the cycle, and then claiming twenty-five decisions' worth of breadth for it.

Worked example 6: The rupee bond a dollar investor is actually buying (India Rs and US $)

A US fund sees the five-year rupee government bond yielding 7.00% against a five-year Treasury at 4.32% and calls the 268 basis point gap a pickup. The one-year rupee money-market rate is 6.40%, the one-year dollar rate is 3.95%, and spot is Rs 88.50 to the dollar. Compute what the position actually earns hedged, and what it earns unhedged under three spot paths.

Solution. Step 1, the forward, from covered interest parity.

F = 88.50 x (1 + 0.0640) / (1 + 0.0395) = Rs 90.585859 per dollar

The rupee trades at a 2.356902% one-year forward discount, which is what hedging it costs. That number is not a forecast and it is not negotiable: it is arbitrage between two money markets, and any quoted forward that differs from it materially is a funding dislocation rather than a view.

Step 2, the local return. Held one year on an unchanged curve, the rupee bond returns 7.529609% and the Treasury returns 4.655398%, from Worked Example 1 and the same arithmetic applied to the US curve.

Step 3, the hedged dollar return. Convert at spot, earn the local return, convert back at the forward:

(1 + 0.07529609) x 88.50 / 90.585859 - 1 = 5.053599%

so the hedged pickup over the Treasury is 5.053599 - 4.655398 = 0.398200 percentage points, or 39.82 basis points. The 268 basis point yield gap became 40 basis points, and almost all of the difference was the hedge cost.

Step 4, cross-check by the shortcut. A hedged cross-market pickup is approximately the difference in each market's own term spread, because the hedge sells the front end of one curve and buys the front end of the other:

(7.529609 - 6.400000) - (4.655398 - 3.950000) = 0.424211 percentage points = 42.42 bp

against the exact 39.82. The 2.60 basis point gap is the cross term the additive form drops, and it grows with the size of both the return and the forward premium, so on high-yield currencies the shortcut is optimistic and should be treated as an approximation rather than a result.

Step 5, unhedged, under three spot paths.

PathSpot at horizonDollar returnAgainst the Treasury
Rupee 4% weakerRs 92.0400+3.393855%-126.15 bp
Spot unchangedRs 88.5000+7.529609%+287.42 bp
Rupee 2% strongerRs 86.7647+9.680201%+502.48 bp

The breakeven is a spot of Rs 90.930526, a 2.746357% depreciation, at which the unhedged position exactly matches the Treasury.

Read it. Hedged, the position is a 40 basis point view about relative term premia, and it is a rates trade. Unhedged, the range across a plausible one-year spot band is 630 basis points wide, and it is a currency trade with a bond attached. Those are different decisions, they need different risk budgets, and they should be signed off by different people. The commonest failure here is a manager who wanted the first and, by not hedging, bought the second, then reports a good year as fixed-income skill. Note also what the hedge does not cover: it locks the principal and the known coupons at the forward, so the part of the terminal value that comes from a price surprise is unhedged, and a rupee bond that rallies hard leaves a small uncovered long position in the currency.

Worked example 7: Three ways to spend five years of duration (US, $)

Fairfield's mandate sets a modified duration of 5.00. Build a bullet, a ladder and a barbell to exactly that duration from the US par curve, compare their convexity, dispersion and yield, and rank them under a parallel move, a steepening and a flattening.

Solution. Step 1, the constituent bonds.

2y4y5y6y8y10y
Coupon4.0500%4.2400%4.3200%4.4000%4.5300%4.6200%
Modified duration1.9027103.6438714.4539265.2233026.6484837.936320
Convexity4.61563215.66420523.21060531.89675352.17287275.580012

Step 2, build each structure to a duration of exactly 5.00. The bullet holds the two bonds nearest the target: solving w x 4.453926 + (1-w) x 5.223302 = 5.00 gives 29.0238% in the five-year and 70.9762% in the six-year. The barbell holds the two ends: solving w x 1.902710 + (1-w) x 7.936320 = 5.00 gives 48.6661% in the two-year and 51.3339% in the ten-year. The ladder holds equal market value at 2, 4, 6, 8 and 10 years, which comes to a duration of 5.070937, so it is scaled by 0.986011, leaving 19.7202% in each bond and 1.3989% in overnight cash at 3.90%.

Step 3, what the three cost and what they buy.

ConvexityDispersionYieldDuration
Bullet29.3757052.0157354.376781%5.000000
Ladder35.4824908.2075264.361453%5.000000
Barbell41.04444914.3308644.342603%5.000000

The ordering never reverses. More dispersion buys more convexity and costs yield: the barbell gives up 3.4177 basis points a year against the bullet and gains 11.668745 points of convexity for it.

Step 4, price the convexity. Convexity is worth 0.5 x (difference in convexity) x (change in yield)^2, so the barbell's edge over the bullet is 0.003646% at a 25 basis point parallel move, 0.058344% at 100 and 0.233375% at 200. Against a 3.4177 basis point annual yield give-up, the parallel move has to reach 76.5373 basis points before convexity alone repays the carry. A barbell in a volatile market rests on exactly that arithmetic and nothing more, and the case it supports is smaller than the case usually made for it.

Step 5, the parallel move confirms it and makes the second point. A 25 basis point parallel selloff costs the bullet -1.240870%, the ladder -1.238990% and the barbell -1.237279%. The bullet-minus-barbell gap of 0.003590 percentage points matches the convexity prediction of 0.003646 to within six ten-thousandths of a percentage point, which is the third-order term. At equal duration, under a parallel move, the three structures are the same portfolio.

Step 6, change the shape of the curve and they stop being the same portfolio. Look first at where each one's duration sits.

2y4y5y6y8y10y
Bullet1.2926973.707303
Ladder0.3752190.7185791.0300471.3110961.565060
Barbell0.9259744.074026

Then the profit and loss:

ScenarioBulletLadderBarbell
Parallel +25 bp-1.240870%-1.238990%-1.237279%
Bull steepener, 2y -40 bp to 10y -5 bp+1.189760%+0.869943%+0.576381%
Bear flattener, 2y +30 bp to 10y +5 bp-0.910517%-0.686167%-0.480001%

Under the steepening the bullet earns twice what the barbell does, because 81% of the barbell's duration sits at ten years where the rally is smallest. Under the flattening the ranking inverts for the same reason.

Read it. Choosing a structure is choosing a curve view, and at equal duration it is only a curve view plus a small convexity trade. The gap between the bullet and the barbell under the steepening is 61 basis points of portfolio return in a single year, which is larger than most managers' entire active budget, and none of it shows up in the duration number the mandate constrains. What the table cannot tell you is which scenario to expect; that is the job of the macro read, and the honest sequence is to form the curve view first and let it choose the structure, rather than to choose a structure for its convexity and discover afterwards which view you have bought.

Verify. Every figure above at the precision it was computed, with its independent check.

QuantityValueIndependent check
India par curve bootstrapworst reprice residual 1.421 x 10^-14every par bond back to 100.000000
US par curve bootstrapworst reprice residual 1.421 x 10^-14every par bond back to 100.000000
India 5y G-sec rolling yield7.529609%equals the direct total return to 8.9 x 10^-16
India 5y G-sec horizon price100.414898236implied YTM 6.879587% against a 6.88% four-year par yield
India 5y breakeven parallel move228.6219 bpduration shortcut 218.8823 bp, gap 9.7396 bp of convexity
India 5y forward-realised return6.504879%equals the effective one-year rate to 7.1 x 10^-15
SDL rolling yield / spread duration7.991488% / 3.419638spread carry 46.1879 bp, breakeven widening 13.5067 bp
US 5y Treasury rolling yield4.655398%direct total return identical
Calderon five-component total+6.352453%curve-view term 0.705332% against a full reprice of 0.707127%
Steepener hedge ratio0.239747DV01 per leg $19,027.10 on both sides
Steepener P&L, bull / bear+$477,534 / +$467,665linear estimate $475,677; rebootstrap route within 0.72 bp of notional
Butterfly P&L, parallel-$1,036curvature 0.00 bp, residual is the convexity mismatch
Aurora / Bracken DTS600 / 2,100equal-DTS sizes both lose $120,000 on a 20% widening
Konark spread carry / spread duration190.5659 bp / 3.322261breakeven widening 57.3603 bp
Konark breakeven default probability3.176099%1.905659% divided by a 60% loss given default
Hedged rupee pickup39.82 bpshortcut 42.42 bp, gap 2.60 bp is the dropped cross term
Bullet / ladder / barbell duration5.000000 eachconvexity 29.375705 / 35.482490 / 41.044449
Bullet minus barbell, +25 bp parallel0.003590 ppconvexity prediction 0.003646 pp
Tracking-error marginal contributions36.349557 + 8.960486sums to 45.310043 bp exactly
Attribution+64.0000 bpsums to the active return with zero residual

Practice set

Work each problem fully before reading its solution. A calculator is assumed. Numeric answers within about 2% of the stated figure score as correct, except where an identity is demanded, in which case it must tie exactly. All entities are synthetic and both curves are the illustrative ones from the worked examples.

P1 (guided). Carry and rolldown on a shorter rupee bond. Take the three-year government bond at 6.75%, bought at par, held one year on an unchanged curve. Compute yield income, rolldown and the rolling yield, and confirm the decomposition ties to the directly computed total return.

Solution. The first half-coupon of 3.375 is reinvested for six months at the six-month rate six months forward, 6.554916%, earning 0.110614. Yield income is (3.375 x 1.03277458 + 3.375) / 100 = 6.860614%. One year on, the bond has two years left; priced off today's discount factors at 0.5 to 2.0 years it is worth 100.277134543, so rolldown is +0.277135%. The rolling yield is 7.137749%. Direct route: (100.277134543 + 6.860614 - 100) / 100 = 7.137749%, agreeing to 4.4 x 10^-15. Note that the three-year earns 39 basis points less carry than the five-year's 7.529609% and carries a horizon duration of 1.843487 against 3.440027, so per year of duration it earns 3.871874% against the five-year's 2.188823%. Short rupee paper is the better-paid carry per unit of risk on this curve.

P2 (guided). A breakeven, two ways. The US seven-year Treasury at 4.47% is bought at par and held one year on an unchanged curve. Compute the rolling yield, then the parallel move that wipes it out, exactly and by the duration shortcut, and explain the gap.

Solution. Yield income is 4.514711% (coupon 4.47 plus 0.044711 reinvested at 4.001000%), rolldown is +0.367316%, and the rolling yield is 4.882027%. The aged six-year bond has a modified duration of 5.215412, so the shortcut gives 4.882027 / 5.215412 = 93.6077 basis points. Solving exactly for the parallel spot shift that makes the total return zero gives 96.0837 basis points. The exact answer is 2.48 basis points further away because convexity means a large selloff hurts less than the linear estimate predicts, so the shortcut is conservative and should be treated as a floor on the protection rather than an estimate of it.

P3 (guided). Sizing a slope trade. A desk is long $250,000,000 of a two-year with a modified duration of 1.90 and wants a DV01-neutral short in a ten-year with a modified duration of 7.85. Compute the short notional, the dollar duration per leg, and the profit on a 20 basis point widening of the slope.

Solution. The hedge ratio is 1.90 / 7.85 = 0.242038, so the short is 250,000,000 x 0.242038 = $60,509,554. Dollar duration per leg is 250,000,000 x 1.90 = $475,000,000, and DV01 per leg is $47,500. Profit on a 20 basis point steepening is 475,000,000 x 0.0020 = $950,000. Two checks before trading it: confirm the short leg's dollar duration equals the long leg's (60,509,554 x 7.85 = 475,000,000), and confirm you used modified rather than Macaulay duration, because on bonds with very different coupons the two ratios diverge and the error is invisible until the curve moves in parallel.

P4. Butterfly curvature. A 50/50 DV01-weighted two-five-ten butterfly is long the body. Compute the curvature and state the direction of the profit and loss under each of these moves. (a) Two-year +12 bp, five-year +4 bp, ten-year -4 bp. (b) Two-year -10 bp, five-year -18 bp, ten-year -10 bp. (c) Two-year +25 bp, five-year +25 bp, ten-year +25 bp.

Solution. Curvature is delta y(5y) - 0.5 x delta y(2y) - 0.5 x delta y(10y). (a) 4 - 0.5(12 - 4) = 4 - 4 = 0.00 bp, so no first-order profit or loss despite a 16 basis point flattening: this is a flattener, and the butterfly is blind to it. (b) -18 - 0.5(-10 - 10) = -18 + 10 = -8.00 bp: the body richened against the wings, so a long-body butterfly gains. (c) 25 - 25 = 0.00 bp, the parallel case. The lesson is that this weighting is neutral to any move where the body travels the average of the wings, which includes both the parallel move and the particular flattener in (a), and is exposed to everything else.

P5. Equalising two credits. Bond X has a spread duration of 7.0 at a spread of 95 basis points; bond Y has 3.0 at 350. You hold $20,000,000 of X. How much Y carries the same systematic spread risk, and prove it under a 30% proportional widening.

Solution. DTS(X) = 7.0 x 95 = 665 and DTS(Y) = 3.0 x 350 = 1,050. Matching size is 20,000,000 x 665 / 1,050 = $12,666,667. Under a 30% proportional widening, X widens 28.5 basis points and loses 7.0 x 0.285% = 1.995000%, which on $20m is -$399,000; Y widens 105 basis points and loses 3.0 x 1.05% = 3.150000%, which on $12.667m is -$399,000. Equal, as the unit promises. Note that X has more than twice Y's spread duration and less than a third of its spread, so neither of those quantities alone would have sized this correctly.

P6. Two thresholds on one credit. A rupee bond carries 240 basis points of spread carry over a year and has a spread duration of 4.8. Compute the breakeven spread widening. Then, at an assumed recovery of 35%, compute the one-year default probability that exactly consumes the carry, and say which of the two numbers a fund facing quarterly redemptions should care about more.

Solution. Breakeven widening is 240 / 4.8 = 50.0000 basis points. Breakeven default probability is 2.40% / (1 - 0.35) = 2.40 / 0.65 = 3.692308%. A fund facing redemptions cares more about the 50 basis point widening threshold, because a widening it has to sell into becomes a realised loss whether or not the issuer ever defaults; a fund with locked capital cares more about the 3.692308%, because it can hold through the mark and collect the spread. Same bond, two different holders, two different right answers.

P7. Combining a rate bet and a credit bet. A mandate runs an active duration of +0.40 years against a benchmark whose yield volatility is 80 basis points a year, and an active duration-times-spread of +90 basis-point-years at a relative spread volatility of 0.18. The correlation between rate and spread returns is -0.25. Compute the tracking error and each leg's marginal contribution.

Solution. Duration leg: 0.40 x 0.80% = 32.0000 bp. Credit leg: 90 x 0.18 = 16.2000 bp. Total: sqrt(32^2 + 16.2^2 + 2 x (-0.25) x 32 x 16.2) = sqrt(1024 + 262.44 - 259.20) = sqrt(1027.24) = 32.050585 bp. Marginal contributions are (32^2 + (-0.25)(32)(16.2)) / 32.050585 = 27.905887 bp for duration and (16.2^2 + (-0.25)(32)(16.2)) / 32.050585 = 4.144698 bp for credit, summing to 32.050585 exactly. The credit bet is 87% as large as the duration bet in raw basis points of tracking error and contributes 13% of the total, because it is partly offsetting rather than additive.

P8. What a cross-market pickup survives. A US fund is offered a rupee bond expected to return 7.30% in local terms over one year against a US alternative returning 4.60%. The one-year rupee rate is 6.75%, the one-year dollar rate is 4.10%, and spot is Rs 89.20. Compute the forward, the hedge cost and the hedged pickup.

Solution. F = 89.20 x 1.0675 / 1.0410 = Rs 91.470701, a forward discount on the rupee of 2.545629%. The hedged dollar return is (1 + 0.0730) x 89.20 / 91.470701 - 1 = 4.636347%, so the pickup over the 4.60% alternative is 3.6347 basis points. A 270 basis point nominal yield gap became under four basis points of hedged advantage, which is the general result rather than a quirk of these inputs: hedging strips out the money-market differential, leaving only the difference between the two curves' own term spreads.

P9. Buying convexity, and what it costs. Two portfolios have a modified duration of 5.00. The bullet has a convexity of 29.375705 and a yield of 4.376781%; the barbell has 41.044449 and 4.342603%. How large a parallel move does the barbell need before its convexity repays the yield it gives up?

Solution. The yield give-up is 4.376781 - 4.342603 = 0.034177 percentage points a year. The convexity advantage is 0.5 x (41.044449 - 29.375705) x (delta y)^2 = 5.8343725 x (delta y)^2. Setting the two equal, (delta y)^2 = 0.00034177 / 5.8343725 = 5.85782 x 10^-5, so delta y = 76.5373 basis points. Below that move the bullet wins on carry; above it the barbell wins on convexity. The number is worth memorising as an order of magnitude, because it says that the standard argument for a barbell needs a rate move most years do not deliver.

P10. Pricing a sector rotation. A $300,000,000 fund overweights sector A and underweights sector B by 3 percentage points each. A trades at 150 basis points with a sector spread duration of 5.5; B at 110 with 6.5. The strategist expects A to tighten 20 basis points and B to widen 5. Compute the gross contribution to fund return and the gross active duration times spread.

Solution. The A leg contributes 0.03 x 5.5 x 0.20% = 0.033% = 3.3000 bp. The B leg contributes 0.03 x 6.5 x 0.05% = 0.00975% = 0.9750 bp. Carry contributes 0.03 x 40 bp = 1.2000 bp. Total 5.4750 basis points of fund return, or $164,250. Gross active duration times spread is 0.03 x 5.5 x 150 + 0.03 x 6.5 x 110 = 24.7500 + 21.4500 = 46.2000 basis-point-years, while the net is only +3.3000. Quote the gross when discussing risk, because the two legs are different sectors and do not offset in a sector-specific selloff.

P11. An excess return that turns out negative. A rupee credit position carries 210 basis points of spread carry over a year with a spread duration of 4.5. Its spread widens 30 basis points. The analyst's default probability is 1.5% at a recovery of 45%. Compute the realised excess return, the breakeven widening and the breakeven default probability.

Solution. Excess return = 210 - (4.5 x 30) - (1.5% x 55%) = 210 - 135 - 82.5 = -7.5000 basis points. Breakeven widening is 210 / 4.5 = 46.6667 basis points, so a 30 basis point widening on its own would have left the position ahead; what turned the year negative was the expected credit loss of 82.5 basis points. Breakeven default probability is 2.10% / 0.55 = 3.818182%. The position was priced for a default rate more than twice the analyst's own estimate and still lost, which is the standard shape of a credit year: the mark moved and the loss estimate was the larger of the two subtractions.

P12. Liquidity against carry. A rupee bond has a spread of 300 basis points, a spread duration of 3.5 and a quoted bid-ask of 25 basis points of yield. What fraction of one year's spread carry does a single round trip consume?

Solution. The round trip costs 3.5 x 0.25% = 0.875000% of price. One year of spread carry is roughly 3.00% of price, so the round trip consumes 29.1667% of it. A position intended to be held for four months would spend most of the compensation on the transaction, which is why turnover discipline in credit is a return decision rather than an administrative one. Repeat the calculation at a stressed bid-ask of 75 basis points and the round trip costs 2.625% of price, or 87.5% of a year's carry.

P13. Where the loss lands. A collateralised loan obligation has a $400,000,000 pool and tranches attaching at 0 to 10% (subordinated), 10 to 12.5% (BB), 12.5 to 16% (BBB), 16 to 22% (A), 22 to 30% (AA) and above 30% (AAA). Cumulative defaults reach 28% of the pool at a 50% recovery. Allocate the loss.

Solution. Pool loss is 28% x 50% = 14.0000%, or $56,000,000. The subordinated notes absorb their full 10 percentage points and are written down 100.00%. The BB class absorbs its full 2.5 points and is written down 100.00%. The BBB class, 3.5 points thick, absorbs the remaining 14.0 - 12.5 = 1.5 points, a writedown of 42.86%. The A, AA and AAA classes are untouched. The A class attaches at 16% against a 14% loss, a cushion of 16 / 14 = 1.1429 times, which is the number worth quoting rather than the rating.

P14. Testing a greenium. An issuer has a conventional bond with 5.2 years to run yielding 5.14% and a green bond with 4.8 years yielding 5.09%. Its own spread curve slopes 4 basis points per year of maturity over this range. Compute the raw gap and the maturity-adjusted residual, and say what else you would need before calling the residual a greenium.

Solution. The raw gap is (5.14 - 5.09) x 100 = 5.0000 basis points. The maturity adjustment is 4 bp/year x 0.4 years = 1.6000 basis points, leaving a residual of 3.4000 basis points. Three more things would be needed before calling that a greenium. The two bonds matched on seniority and on any embedded option. The issue sizes and quoted bid-ask spreads for both, because a 3.4 basis point effect vanishes inside a 4 basis point half-spread. And a second matched pair from a different issuer, because a single pair is one observation. Published matched-pair estimates cluster in the low single digits of basis points and are highly sensitive to the choice of control bond, so a 3.4 basis point residual is entirely consistent with there being no effect at all.


Applied mini-project

Write the active fixed-income policy for a stated mandate, and price every position in it. About five hours. The deliverable is a policy document of at most three pages plus a workbook or notebook, and each of the five artefacts below carries a numbered test it must pass before it counts.

The mandate to write for: a Rs 800 crore or $100 million bond fund, benchmarked to a broad government-plus-credit index of your choice, with a stated tracking-error limit of 100 basis points, a one-year investment horizon, and a client who can tolerate a mark-to-market drawdown but cannot tolerate forced selling. Name the benchmark including its exact variant, and record the pull date and URL of every input.

The first artefact is the curve, bootstrapped and self-checked, which passes Test 1 when every par bond on your curve reprices to 100.000000 off your own bootstrapped discount factors, with the residual reported. Build it from a primary source: the published valuation curve for rupee government securities, or the Treasury par yield curve for dollars. State the compounding convention and the day count, and say which source you used for each.

The second is the position sheet with a breakeven on every line. Choose at least six positions, at least two of them credit, and for each one compute yield income, rolldown, the rolling yield and the parallel breakeven, plus the spread duration, the duration times spread and the breakeven spread widening for the credit lines. It passes Test 2 when the decomposed return equals the directly computed total return to nine decimal places on every line, and Test 3 when each breakeven agrees with its duration shortcut to within the convexity gap you can explain.

The third is the curve strategy, sized and stress-tested. Pick one duration-weighted slope trade or one butterfly, size it, state its weighting convention, and compute its profit and loss under a parallel move, a steepening and a flattening of stated sizes. It passes Test 4 when the two legs' DV01s agree to within 0.001% and Test 5 when the position's profit and loss under the parallel move is reported rather than assumed to be zero, with the convexity residual named.

The fourth is the two credit positions, sized by duration times spread. Choose two credits with different spreads and size them so their systematic spread risk is equal, then compute each one's breakeven widening, expected credit loss at a stated default probability and recovery, and the number of years of its own carry that one default would destroy. It passes Test 6 when a stated proportional widening produces equal losses on the two positions.

The fifth is the risk budget and the report template. Compute the fund's active duration, its active duration times spread, the tracking-error contribution of each, and the marginal contribution of each after the correlation. Then design the one-page monthly report: total return, benchmark return, active return, and an attribution across duration, curve, sector allocation, security selection, currency and trading costs. It passes Test 7 when the marginal contributions sum to the tracking error exactly and Test 8 when your attribution, run on any set of numbers you choose, sums to the active return with a zero residual.

The policy document itself carries the stop rule and the review cadence. State the maximum active duration, the maximum duration-times-spread, the maximum single-issuer weight, the exit trigger for each strategy as a stated fraction of its own breakeven, and how often the position sheet is refreshed. Close with one paragraph naming the single assumption your whole policy is most sensitive to, with the sensitivity quantified.

Rubric (33 points across 11 rows scored 0 to 3; pass at 26 with no zero on any row). A criterion scores full marks only when it is complete, correct, dated and sourced. Any artefact whose numbered test fails scores zero for its row no matter how well the policy reads, because a risk budget built on a number that does not tie is more dangerous than no risk budget at all.

#Criterion0123
1Curve build (Test 1)fails or absentreprices approximatelyreprices to 1e-6reprices to 1e-9, residual reported, source and conventions named
2Return decomposition (Test 2)not attemptedcomponents onlyties to 1e-6ties to 1e-9 on every line
3Breakevens (Test 3)absentexact onlyexact and shortcutboth plus the convexity gap explained per line
4Forward-curve checkabsentmentionedcomputed for one positioncomputed, and the carry thesis stated as a term-premium bet
5Curve strategy sizing (Test 4)wrong or absentsized on notionalDV01-neutralDV01-neutral, weighting convention stated, hedge ratio hand-checked
6Curve strategy stress (Test 5)one scenariotwo scenariosthree scenariosthree scenarios plus the parallel residual and its convexity cause
7Credit sizing (Test 6)equal market valuespread durationduration times spreadDTS with the equal-loss proof and both stated limits of the metric
8Credit thresholdsneither computedbreakeven widening onlyboth thresholdsboth, plus the years-of-carry-per-default figure and the position limit it implies
9Risk budget (Test 7)legs not combinedcombined, no correlationcorrelation usedmarginal contributions computed and summing exactly
10Report template (Test 8)no attributionattribution with a plugties exactlyties exactly, and the market share of the total return is stated
11Policy disciplineno stop rulestop rule statedstop rule tied to a breakevenplus the review cadence, the single-issuer limit and the sensitivity paragraph

Reading & resources

Each entry below is an anchor to verify against, never a source to lift a number from without tracing it yourself.

The strategy spine.

  • Martellini, L., Priaulet, P. and Priaulet, S., Fixed-Income Securities: Valuation, Risk Management and Portfolio Strategies. The most complete treatment of curve strategies as arithmetic: carry, rolldown, bullet against barbell, and the weighting choices behind butterflies. Chapters on active strategies are the ones to read first. [Paid] [Advanced]
  • Fabozzi, F. (ed.), The Handbook of Fixed Income Securities. The desk reference for spread duration conventions, structured-credit mechanics and every instrument definition in between. Use it as a lookup rather than a read. [Paid] [Intermediate-Advanced]
  • CFA Institute Level III Fixed Income readings on yield-curve strategies and active credit management. The exam-form treatment of expected-return decomposition, duration positioning and the credit strategies here, and the closest thing to a shared professional vocabulary for them. [Paid] [Intermediate]
  • Ilmanen, A., Expected Returns. The best single treatment of the term premium, which is the thing a carry-and-roll position is actually betting on, with the long-sample evidence for and against. [Paid] [Advanced]

The credit risk unit.

  • Ben Dor, A., Dynkin, L., Hyman, J., Houweling, P., van Leeuwen, E. and Penninga, O. (2007), "DTS (Duration Times Spread)," Journal of Portfolio Management. The original paper, short, and the primary source for the proportionality result that the whole position-sizing framework rests on. Read the tables rather than summaries of it. [Paid] [Advanced]
  • Dynkin, L., Hyman, J. and others, Quantitative Management of Bond Portfolios. The systematic treatment of index replication, tracking error and credit risk budgeting, and the book most institutional credit risk models descend from. [Paid] [Advanced]
  • Moody's and S&P annual default and recovery studies, and the CRISIL and ICRA default study for India. The primary sources for the default probabilities and recoveries every expected-credit-loss line depends on. Default and recovery rates move with the cycle and are revised, so cite the study year and the rating cohort explicitly (check at each agency's own site). [Free] [Intermediate]

Primary sources for the inputs.

  • The Financial Benchmarks India valuation curve and the Clearing Corporation of India's trade data, for rupee government and state development loan yields, and for the traded volumes that tell you what liquidity actually looks like at each tenor. [Free] [Beginner-Advanced]
  • US Treasury daily par yield curve rates, the standard source for the dollar curve, quoted with its own conventions stated on the page. [Free] [Beginner]
  • The Federal Reserve Bank of St Louis economic database, for the long histories of yields, spreads and volatilities that any assumed yield volatility or relative spread volatility should be estimated from rather than guessed at. [Free] [Beginner]
  • The Reserve Bank of India's Handbook of Statistics on the Indian Economy and its weekly statistical supplement, for the rupee market's own series. [Free] [Intermediate]
  • Index providers' own methodology documents, for the benchmark's exact rules, its rebalancing dates and its variant naming. A benchmark quoted without its variant is the commonest sourcing error in this whole area. [Free] [Intermediate]

On the environmental question.

  • Zerbib, O. (2019), "The effect of pro-environmental preferences on bond prices: Evidence from green bonds," Journal of Banking and Finance. The matched-pair method and a measured premium of roughly two basis points. [Paid] [Advanced]
  • Larcker, D. and Watts, E. (2020), "Where's the Greenium?" Journal of Accounting and Economics. The municipal matched-pair design that finds essentially nothing, and the cleanest statement of why the control bond choice decides the answer. [Free/Paid] [Advanced]
  • SEBI's framework for green debt securities and its business responsibility and sustainability reporting requirements. The Indian disclosure regime a credit analyst actually works from. Both have been revised more than once; check the current version and thresholds at the regulator's own site before relying on either. [Free] [Intermediate]

There is one thing here worth doing rather than reading. Take any government bond you can price and compute its one-year horizon return twice: once on the unchanged curve, and once on the curve's own implied forwards. The second answer will equal the one-year rate exactly, every time, for every bond. Ten minutes watching that identity hold will teach you more about what a carry trade is than any chapter on carry trades, because it shows you precisely which assumption you are being paid for.


Teach it back & journal

Feynman prompt. Explain to a colleague who runs an equity book why a bond yielding 7.00% returns 7.53% in a year when nothing happens. Use one sentence and no more: "the yield says what the bond pays if you keep it; the rolling yield says what the position earns if you sell it." Then walk them through the two pieces. The coupon, plus what the first coupon earns while it waits. And the price gain from the bond becoming a four-year bond priced at a four-year yield. Then ask them the question that turns it into a position, which is how far rates can rise before that 7.53% is gone, and let them try before you give them the 228.62 basis points. If they say "so carry is a cushion", correct them once and carefully. It is the size of the error the view is allowed to make, and it is different for every bond on the curve. That is why the five-year and the ten-year are different trades rather than the same trade at different sizes.

Then the credit half, which is harder and matters more. Give them two bonds with the same spread duration of 5.00, one at 120 basis points and one at 420, and ask them how much of each to hold. Most people say the same amount. Show them the 3.5 ratio, then show them the equal-DTS sizes losing exactly $120,000 each while the equal-market-value sizes lose $120,000 and $420,000. Finish with the number that changes behaviour rather than opinion: on a 3% weight, one default destroys 31.49 years of that position's carry. If they leave the room asking what a position's breakeven is before they ask what it yields, the mechanism is installed.

Journal prompt. For two weeks, every time you meet a fixed-income position, a fund factsheet or a broker's note recommending a bond, write down four things before forming any view. What the position's rolling yield is over your horizon, and against which curve assumption. What its breakeven is, in basis points of parallel move for a rate position or of spread widening for a credit one. What the writer's actual thesis is when stated as a statement about a market variable rather than a direction. And what would have to happen for the position to lose money.

Then answer in writing at the end of the two weeks. Count the recommendations that named a horizon at all, and the ones that quoted a yield where a horizon return was the honest number. Count the credit recommendations that quoted a spread with no spread duration beside it, which leaves the spread uninterpretable. Then say how many named the assumption they were most sensitive to.

Then write a paragraph on the part of this that is uncomfortable. Every number in an active fixed-income book is the joint product of a market price and a set of conventions you chose: the curve, the compounding, the reference the spread is measured against, the default probability, the recovery, the volatility, the correlation. The market gave you the price. You manufactured everything else. Which of the four checks that make those numbers admissible are you most likely to skip when the trade needs doing this afternoon: the curve repricing its own instruments, the decomposition tying to the total, the attribution tying to the active return, or every convention being named? Write down what specifically goes wrong when you skip that one, and what you will put in place this month to make skipping it harder than doing it.


This module's flashcards and mastery quiz are wired into the app: see the node's Quiz and Reviews.

Advertisement

The gate

The module's flashcards and its quiz are in the app. The quiz is the gate: you need 85% to pass it, and the next module opens when you do.