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

  • $\begingroup$ I don't understand. What does it mean that Overall Return = 4.1737 % = ((1+0.011)*(1+0.0105)*(1+0.01025)*(1+0.00935)-1.0)*100 ? You are holding Asset A, then Asset B, then Asset C in sequence ? You hold each for one period and then switch to the next one ? $\endgroup$
    – Alex C
    Jan 6, 2016 at 2:32
  • $\begingroup$ No, they are all assets that are held in your portfolio during the same period and the returns in the second column are geometrically smoothed returns (see page 10 here). And so, they should be aggregated geometrically. I'm pretty sure the math is right. However, I wanted to layer on additional information such as the stock sector so that I could attribute performance to specific sectors. $\endgroup$
    – slaw
    Jan 6, 2016 at 2:59

3 Answers 3


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.


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).


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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.