Cariño smoothing: how and why
Attribution is usually run daily or monthly and then reported for a quarter or a year. Here's the catch: the effects are arithmetic, but returns compound. Add up four quarters of effects and they won't match the year's active return.
Why the numbers don't add up
Take two months where the portfolio returns 10% and the benchmark 5% each month. The active return is 5% a month, so you'd expect 10% in total. But the linked portfolio return is 1.10 × 1.10 − 1 = 21.00% and the linked benchmark is 1.05 × 1.05 − 1 = 10.25%. The real active return is 10.75%.
The missing 0.75% comes from compounding. Over two months the portfolio picks up a cross-term of 10% × 10% = 1.00% (month 2's return earned on month 1's gain), while the benchmark picks up only 5% × 5% = 0.25%. The difference, 0.75%, doesn't belong to either month, so no single month's attribution captured it.
You could show the 0.75% as a "residual" line, but clients rightly ask what it means. You could scale every effect up by the same ratio (10.75 ÷ 10), but that treats every period alike and has no real justification. Cariño's idea (1999) is to move to logarithms, where compounding turns into addition.
How it works, step by step
- Logs add up. Over several periods, ln(1 + R) = Σ ln(1 + Rt), and the same for the benchmark. So the log active return, ln(1 + R) − ln(1 + B), is exactly the sum of each period's log active return. No residual in log space.
- Build a conversion rate for each period. kt is the period's log active return divided by its simple active return. It converts simple returns into log returns, and it's close to 1 ÷ (1 + the period's average return).
- Build the same rate for the whole period. k uses the linked returns R and B. Because linked returns are larger, k is usually smaller than each kt when returns are positive.
- Put it together. Step 1 says k × (R − B) = Σ kt × (Rt − Bt). Divide both sides by k: R − B = Σ (kt ÷ k) × (Rt − Bt).
- Scale every effect. Each period's active return is the sum of its allocation, selection and interaction effects. Multiply every effect by kt ÷ k and they add up exactly to the linked active return.
In the two-month example, each month's kt = (ln 1.10 − ln 1.05) ÷ 0.05 = 0.9304 and k = (ln 1.21 − ln 1.1025) ÷ 0.1075 = 0.8655. Each month's 5% is scaled by 0.9304 ÷ 0.8655 = 1.075, giving 5.375% per month and exactly 10.75% in total.
What the scaling does
When returns are positive, kt ÷ k is above 1, so each period's effects are scaled up to include their share of compounding. Periods where returns were lower have a slightly larger kt and get a slightly larger scale-up. When returns are negative overall, the factor can fall below 1. The factor is always positive, so smoothing never flips the sign of an effect: a positive allocation effect stays positive.
Four quarters, one year
Enter each quarter's returns and allocation effect (in %). Selection is whatever's left of the active return.
| Quarter | Portfolio return | Benchmark return | Allocation effect | Selection (computed) |
|---|
Unexplained residual:
| Quarter | Active | Allocation | Selection | kt ÷ k |
|---|
The calculation, step by step
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.