The multi-period return attribution section ends with a warning: run a Brinson decomposition on a bond portfolio and you get a table that adds up and means nothing. This section makes the alternative real, because "sector weights" is not what moved the bond book, and an attribution that reports on the wrong drivers will be defended in a client meeting by somebody who cannot explain it.
Why does Brinson attribution fail for bonds?
The reason is structural. An equity segment's return is whatever the segment's stocks did, and there is no lower-level model of it. A bond's return is a known function of a small set of market variables, and every one of them is observable. Over a period of length Δt, to first order,
r ≈ y·Δt (income, or carry)
− D · Δy_parallel (the level of the curve moved)
− D · Δy_curve (the shape of the curve moved, at this bond's maturity)
− D_spread · Δs (this bond's spread over the curve moved)
+ residual (convexity, roll-down, paydowns, and genuine selection)
Advertisement
That equation is the whole design. Attribute to those four terms rather than to sector weights and the report answers the questions a fixed-income committee actually asks. Was the manager paid for taking duration, for positioning on the curve, or for taking credit risk? And did any of it come from picking bonds rather than from placing bets on the market?
The four effects, defined so they tie.
Yield and carry is what the book earns for existing. It is the accrual over the period plus, in a fuller version, the roll-down as a bond ages into a lower point on an upward-sloping curve. It is the one effect that is almost always positive and the one most often taken for granted; a manager whose entire outperformance is carry has taken more credit or less liquidity than the benchmark and should be described that way.
Parallel shift, or duration effect, is the return from the whole curve moving up or down, applied through each holding's effective duration. A duration bet shows up on this line and nowhere else, and in a quarter when rates moved it is almost always the largest single figure in the table.
Curve reshaping, or twist, is the residual curve movement after the parallel component has been removed, applied at each holding's own maturity point. A steepener and a flattener both live here. Separating this from the parallel effect matters because the two are different decisions taken by different desks and a manager can be right about one and wrong about the other in the same quarter.
Spread and selection is the return from each holding's own spread over the curve moving, applied through spread duration, plus whatever is left. Splitting this line into a spread-sector component and a security-specific one is where the credit analyst's work becomes visible.
How do the four effects tie to active return?
To make the four effects tie, compute each one for the portfolio and for the benchmark, then take the difference:
Active effect_c = Σ_i [ w_P,i · r_P,i,c − w_B,i · r_B,i,c ]
and the four effects sum to the total active return with no residual, because the bucket returns were built from the same four components. Inside each effect, the familiar allocation-against-selection split still applies, using the identity w_P·r_P − w_B·r_B = (w_P − w_B)·r_B + w_P·(r_P − r_B). The first term is what the weight decision earned at benchmark returns; the second is what the holdings inside the bucket earned beyond the benchmark's holdings. Worked Example 8 runs all of it on a three-bucket book, and its four effects reconcile to the active return with a residual of exactly zero.
Two conventions to state before anyone builds one. The decomposition of a curve move into parallel and twist is a choice, not a fact: taking the parallel component as the change at a chosen key rate, as the average change across key rates, or as the first principal component of the curve gives three different splits of the same total. Say which you used, because a manager's "curve call" can be moved between two lines by changing that convention alone. And currency belongs in its own effect for any book that holds foreign bonds, computed on unhedged returns with the hedge return shown separately, or the currency decision hides inside spread.
6c. Attributing active risk, not just active return
The attributions so far are backward-looking and additive in return. A risk committee asks the forward-looking version of the same question: not where the active return came from, but where the active risk is, and the two answers routinely disagree.
The apparatus is AA1.02's risk budgeting applied to the active weights rather than to the total weights. Let x = w_P − w_B be the vector of active weights, which sums to zero by construction, and Σ the covariance matrix of the segment returns. Then
Tracking error TE = √(x'Σx)
Marginal contribution to TE MCTE_i = (Σx)_i / TE
Component contribution CCTE_i = x_i × MCTE_i (these sum exactly to TE)
Run it on Worked Example 8's active weights, with annualised segment volatilities of 1.8% for short Treasuries, 12.0% for long Treasuries and 5.5% for investment-grade credit, and correlations of 0.75 between the two Treasury buckets, 0.45 between short Treasuries and credit and 0.55 between long Treasuries and credit. Tracking error is 1.1827% annualised, and the contributions are:
| Sleeve | Active weight | MCTE | CCTE | % of active risk |
|---|---|---|---|---|
| Short Treasury | −15.00 pts | 1.1472% | −0.1721% | −14.55% |
| Long Treasury | +10.00 pts | 11.6559% | +1.1656% | +98.56% |
| IG Credit | +5.00 pts | 3.7832% | +0.1892% | +15.99% |
| Total | 0.00 | 1.1827% | 100.00% |
How do you read active risk by sleeve?
Three readings, and each is a thing a return-only report cannot say.
The long-Treasury overweight is ten percentage points of active weight carrying essentially all of the active risk. On the return side it produced 0.4575 points of duration effect and 0.4175 of twist, roughly two-thirds of the quarter's outperformance, so the risk and return stories agree here; the point is that they had to be checked rather than assumed.
The short-Treasury underweight has a negative risk contribution. It is not adding risk, it is subtracting it, because short Treasuries are 0.75 correlated with the long Treasuries the book is overweight, so being underweight the short bucket partially hedges the long bet. A report that ranked positions by the absolute size of the active weight would have called this the largest position in the book.
The credit overweight contributes 15.99% of active risk against 5 points of active weight, which is the ordinary result and the reason it is worth stating: risk contributions are not proportional to active weights and are not even monotonic in them.
One honest limit. Segment-level risk attribution treats each sleeve as a single asset with one volatility, so it cannot see within-bucket risk, and in Worked Example 8 the portfolio's credit sleeve carries 0.6 years more spread duration than the benchmark's, which this table does not price at all. A full risk attribution runs on a factor risk model with duration, curve and spread factors rather than on segment buckets. AA1.02 owns the risk-budgeting mathematics, FI1.02 owns the duration and spread-duration measures, and AA1.06 owns the factor model.