Tools › Investing › Portfolio and Risk › Performance Attribution › Method

Performance Attribution: Method

Open the Performance Attribution tool

Performance Attribution: How It Works

What it does

A portfolio is measured against a benchmark, the index or mix it is meant to be compared with. When the two returns differ, the difference is called the active return. Performance attribution answers one question: where did the active return come from? The page divides the portfolio and the benchmark into the same segments (sectors, countries or asset classes) and splits the active return, segment by segment, into the part due to holding a different amount of a segment and the part due to earning a different return inside it. Every step is printed as formula, numbers put in, answer.

The method

Symbols. For segment i, wPi and rPi are its weight and return in the portfolio, wBi and rBi in the benchmark, all in percent. The weights are those at the start of the period, and each set adds to 100.

Total returns. RP = Σ wPi rPi / 100 and RB = Σ wBi rBi / 100. The active return is RA = RP − RB, in percentage points.

Brinson-Hood-Beebower effects (1986), in percentage points:

Allocation: Ai = (wPi − wBi) rBi / 100. The weight difference, valued at the benchmark's return in the segment.

Selection: Si = wBi (rPi − rBi) / 100. The return difference, at the benchmark's weight.

Interaction: Ii = (wPi − wBi)(rPi − rBi) / 100. The weight difference times the return difference.

Multiplying out shows that Ai + Si + Ii = (wPi rPi − wBi rBi) / 100, the segment's contribution to the portfolio less its contribution to the benchmark. Summed over the segments, the effects therefore equal RA exactly.

Brinson-Fachler allocation (1985): Fi = (wPi − wBi)(rBi − RB) / 100. The segment's benchmark return is measured against the whole benchmark's return, so an overweight counts as a gain only when the segment did better than the benchmark overall. Because the weight differences add to zero, Σ Fi = Σ Ai: the total allocation effect is the same and only its split between segments changes.

Interaction folded into selection (Advanced): S′i = wPi (rPi − rBi) / 100 = Si + Ii, the return difference at the portfolio's own weight. Two effects are then reported.

Cash and one-sided segments (Advanced). Cash is a segment the benchmark does not hold: its benchmark weight is zero and its benchmark return is set equal to the cash return, so its whole effect is allocation. The same rule is applied to any segment held on one side only when no return is entered for the other side.

Two periods linked by the Carino factors (Advanced). Over two periods the returns compound, R = [(1 + R1/100)(1 + R2/100) − 1] · 100 for the portfolio and for the benchmark, and the single-period effects no longer add up to the compounded active return. Carino (1999) scales them. With returns as decimals, the factor of period t is

kt = [ln(1 + RPt) − ln(1 + RBt)] / (RPt − RBt),

or 1 / (1 + RPt) when the two returns are equal, and kL is the same expression on the compounded returns. Each linked effect is (k1 / kL) × its first-period value + (k2 / kL) × its second-period value. The linked effects add to the compounded active return, because logarithms of growth factors add over periods.

What it assumes

  • The weights are fixed at their start-of-period values. Nothing is bought or sold during the period.
  • Portfolio and benchmark are divided into the same segments, and every return is in one currency.
  • The benchmark is a fair description of what the portfolio could have held instead.
  • The total return of each side equals the weighted sum of its segment returns: fees, cash flows and anything outside the listed segments are left out.

When it misleads

  • Trading inside the period. If weights changed during the period, the weighted sum of segment returns will not match the return the portfolio actually earned, and the gap is not explained by any effect. Shorter periods, linked, reduce it.
  • The split depends on the segments chosen. The same portfolio attributed by sector and by country gives different allocation and selection numbers. Neither is wrong; they answer different questions.
  • Interaction has no single owner. Reporting it separately, or folding it into selection, is a convention. The folded form credits selection for results that depended on the weighting decision too.
  • The two allocation forms disagree segment by segment. In a period when everything rose, the Step 2 form shows a gain from every overweight; the Brinson-Fachler form shows a gain only from overweights in segments that beat the whole benchmark.
  • Linking is a convention. The Carino factors make the two periods add up; other linking methods share out the compounding differently and give somewhat different segment effects with the same total.
  • An effect is arithmetic, not a judgement. A positive selection effect over one period says where the difference arose. It does not show whether it came from skill or chance, and it says nothing about the risk taken.
  • Currency. For holdings in several currencies a separate currency effect is usually reported. The page does not compute it; a currency gain or loss sits inside the other effects.

Worked example

The default case has five illustrative sectors (invented numbers, not market data).

SegmentwP (%)rP (%)wB (%)rB (%)
Technology30122510
Health Care154156
Financials207205
Energy5−310−2
Consumer305305.5

RP = (30·12 + 15·4 + 20·7 + 5·(−3) + 30·5) / 100 = 6.95 %. RB = (25·10 + 15·6 + 20·5 + 10·(−2) + 30·5.5) / 100 = 5.85 %. Active return RA = 6.95 − 5.85 = 1.10 points.

Technology: allocation (30 − 25) · 10 / 100 = +0.500; selection 25 · (12 − 10) / 100 = +0.500; interaction (30 − 25)(12 − 10) / 100 = +0.100. Its Brinson-Fachler allocation is (30 − 25)(10 − 5.85) / 100 = +0.2075.

Energy was held at half the benchmark's weight and fell: allocation (5 − 10)(−2) / 100 = +0.100, and by Brinson-Fachler (5 − 10)(−2 − 5.85) / 100 = +0.3925.

Totals: allocation +0.600, selection +0.350, interaction +0.150, and 0.600 + 0.350 + 0.150 = 1.100, the active return.