Skip to content
All library documents

Attributing Portfolio Returns to Sector Weights

Article Quant Q&A · Author: slaw

Summary

The document asks how to break a portfolio’s compounded return into contributions from sectors when each fund holds a mix of sectors. Its example allocates each fund’s return across technology, energy, and other holdings, then compounds those sector-level pieces separately. That calculation does not reproduce the portfolio return because it treats sector contributions as independent returns compounded over the same period.

The replies distinguish weighted portfolio returns from returns compounded across time. To calculate a sector’s blended return, first weight the sector-level returns by each fund’s share of the portfolio and that fund’s allocation to the sector. Then combine sector contributions using their portfolio weights. One reply also suggests simple addition for the displayed contributions, but this depends on the return and weighting conventions; the question does not fully specify investment weights or the period structure. The example therefore illustrates an attribution issue rather than establishing a universal formula.

Key ideas

  • Portfolio returns depend on asset weights, so summing fund returns does not generally give a portfolio return.
  • Sector returns should be blended using each fund’s portfolio weight and its allocation to that sector.
  • Compounding sector components independently can fail to reconcile with the compounded portfolio return.
  • Attribution requires clear definitions of the return period, portfolio weights, and sector weights.

Tags

Full text
# Calculating Portfolio Returns Across Sectors


# Calculating Portfolio Returns Across Sectors












I have a table of asset (mutual fund) returns and the percentage that each asset is in a particular stock sector:

```
Asset   Return  Tech %  Tech Returns  Energy %  Energy Returns  Other %  Other Returns
A       1.1     100     1.1           0         0               0        0
B       1.05    50      0.525         50        0.525           0        0
C       1.025   0       0             100       1.025           0        0
D       0.935   33      0.30855       33        0.30855         34       0.3179
```

I know how to calculate the overall portfolio return:

```
Overall Return = ((1+0.011)*(1+0.0105)*(1+0.01025)*(1+0.00935)-1.0)*100
               = 4.1737 %
```

Now, I'd like to calculate the returns coming from each sector but I can't seem to figure out how to get the sector returns to accumulate up to the overall return above. I can see that for a given asset, the returns aggregate across the sectors by summing them up.

So, I thought I could aggregate each sector vertically and then sum them up accordingly:

```
Tech Return = ((1+0.011)*(1+0.00525)*(1+0.0)*(1+0.003085)-1.0)*100
            = 1.9443 %
Energy Return = ((1+0.0)*(1+0.00525)*(1+0.01025)*(1+0.003085)-1.0)*100
              = 1.8687 %
Other Return = ((1+0.0)*(1+0.0)*(1+0.0)*(1+0.003179)-1.0)*100
             = 0.3179 %

Expect Overall Return = Tech Return + Energy Return + Other Return
                      = 4.1309 %
```

I would appreciate any help on identifying where I may be going wrong

## Answer by Dr_Be (score 1)

https://quant.stackexchange.com/a/22638

I think you mixed up two aspects here: returns over time and returns over sectors (your columns). Your citation refers to a smoothing technique for portfolio returns over more than one time period where the portfolio consists of several sectors (might be even single stocks). That would be your rows (funds) but I cannot see the time periods here (which should be your columns). Instead you have broken down further into sectors which in my humble opinion does not fit to the smoothing I assume you have applied.

## Answer by Uditg_ucla (score 1)

https://quant.stackexchange.com/a/25895

Portfolio return is simply weighted return of parts (and NOT the formula mentioned in your post) - e.g. if you invested \$100 total equally among the four funds (\$25 each), and each of those funds earned 1% on average, then on aggregate you made 1% return on \$100 and not 4%.

The trick (and the answer to your Q) lies in how you calculate these weights!! If you want to calculate 'sector' returns to your portfolio, say for Tech, your individual returns are 1.1%, 0.525% and so on; your respective weights would be calculated as

Weight of 1.1% = (proportion of 'A' in your fund)*(proportion of tech in A) / total weight of tech sector in your portfolio

Where, total weight of tech sector in your portfolio = sum of term in numerator for all 4 cases (A, B, C & D)

Once you have these four weights (they'll add to 1 by construction) - you can calculate the weighted return for tech sector (specific to the tech sector's composition in your portfolio)

Overall portfolio return can now be written as (weight in sector 'i')*('blended' return of sector 'i', as calculated above).

## Answer by Valtinho (score 0)

https://quant.stackexchange.com/a/24767

I think you are complicating this too much. Just add the returns with simple addition. The math works:

```
Total Returns: 1.1 + 1.05 + 1.025 + 0.935 = 4.11

Tech Returns: 1.1 + 0.525 + 0 + 0.30855 = 1.93355
Energy Returns: 0 + 0.525 + 1.025 + 0.30855 = 1.85855
Other Returns: 0 + 0 + 0 + 0.3179 = 0.3179

Total Returns = 1.93355 + 1.85855 + 0.3179 = 4.11
```

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.