Part IV

Explaining the return

Knowing the number isn't enough. Clients, boards and portfolio managers all want to know what produced it. Contribution explains the return; attribution explains the difference from the benchmark; linking makes both work over time.

8

Contribution: which holdings drove the return?

Before any benchmark comparison, the first question a portfolio manager asks is simple: what made us money, and what lost it? Contribution answers that. Each holding's contribution is its weight at the start of the period times its return.

Contributioni = wi × Ri and Rportfolio = Σ contributions

Contributions always add up to the portfolio return for a single period, which makes them easy to read. A stock that rose 45% but was only 3% of the fund contributed 1.35%. A bond that fell 3% but was a quarter of the fund cost 0.75%. Weight matters as much as return.

In plain termsThink of a basketball team's score. Contribution tells you who scored the points. Attribution (next chapter) tells you whether the coach's tactics beat the other team's.

A multi-asset portfolio for one year

Change any weight or return (in %). Bars show each holding's contribution.

HoldingWeightReturnContribution
Portfolio

Contribution vs attribution

ContributionAttribution
QuestionWhat drove the return?Why did we beat or lag the benchmark?
Needs a benchmarkNoYes
Breaks down byHolding, sector or asset classDecision: allocation, selection, interaction
Adds up toThe portfolio returnThe active return
Typical audiencePortfolio managers, client reportsInvestment committees, consultants, risk

There's also a relative version: contribution to active return, wp,i × Rp,i − wb,i × Rb,i. It shows which holdings helped or hurt versus the benchmark, but unlike attribution it doesn't separate the weighting decision from the stock-picking decision.

Linking contributions over time

Just like returns, monthly contributions can't simply be added. A contribution in month 2 is earned on a portfolio that has already grown (or shrunk) in month 1, so it's worth more (or less) in terms of the original investment. The exact fix is to scale each month's contribution by the portfolio's growth up to the start of that month.

Linked contributioni = Σt ci,t × (1 + R1)(1 + R2)…(1 + Rt−1)

Example: a portfolio starts 60% in A and 40% in B. In month 1, A rises 20% and B falls 10%, so the portfolio gains 8% and the weights drift to 66.7% and 33.3%. In month 2, A falls 10% and B rises 15%.

HoldingMonth 1Month 2Added upLinked
A+12.00%−6.67%+5.33%+4.80%
B−4.00%+5.00%+1.00%+1.40%
Portfolio+8.00%−1.67%+6.33%+6.20%

The true two-month return is 1.08 × 0.9833 − 1 = 6.20%. Simply adding contributions gives 6.33%, which is wrong. Linking scales month 2 by 1.08 (A: −6.67% × 1.08 = −7.20%; B: 5.00% × 1.08 = 5.40%), and the totals now match exactly.

For practitionersThe growth-scaling method above is exact but order-dependent: the same monthly contribution counts for more later in the period. Cariño can link contributions too, using a single return series: kt = ln(1 + Rt) ÷ Rt and k = ln(1 + R) ÷ R. Buy-and-hold contributions computed from start-of-period weights won't match the official return when there's intra-period trading; the gap is a trading or timing effect. Daily contribution with daily linking removes most of it. For reporting, contributions are usually shown at sector or asset-class level with the top and bottom ten securities.

All numbers are illustrative. The models are simplified for teaching: annual coupons, Black-Scholes options, simplified fee mechanics and no intra-period trading. Real systems add transaction-based returns, daily valuation, tax and corporate action processing, and reconciliation to the official TWR.