I've read multiple research papers but can't find a good answer as to why multi-period contributions don't add up to the returns of a portfolio. I understand that arithmetic sums miss the compounding effect, but what other factors lead to the individual contributions to not equal the portfolio return?


To make it clear, I want to know how to make contributions of assets align over time without using any normalizing process. I did both the geometric way of getting contributions as well as arthemetic. In both cases, there is some mismatch versus the actual portfolio return. I want to know what causes this.

enter image description here

  • $\begingroup$ The dilemma of Multi Period Contributon is that Arithmetic measures don't add up because of compounding while Geometric measures are unintutive and difficult to interpret. $\endgroup$
    – nbbo2
    Jun 22, 2021 at 20:30
  • $\begingroup$ @noob2 thank you but why are the geometric measures unintutive and difficult to interpret Can you please give an example if possible? $\endgroup$
    – QFqs
    Jun 23, 2021 at 14:55
  • $\begingroup$ (1) I have read the reason Arithmetic is more commonly used in USA is because "it is more intuitive" but I don't remember source (2) For an example see comment here quant.stackexchange.com/a/36530/16148 basically people are used to the idea that simultaneous contributions in the same period should be additive then want to extend this to multiple periods (3) personally I prefer geometric but in my job I don't have to worry about industry standards or "what users want" which can be an issue for some quant.stackexchange.com/questions/60259/… $\endgroup$
    – nbbo2
    Jun 23, 2021 at 15:49
  • $\begingroup$ @noob2 Thank you for taking the time. I've been mulling this over for a few days and I am not sure I understand. I've added an example to my original post. Neither the arithmetic sum nor the geometric sum seems to add up to the portfolio return. Am I doing the calculations wrong? if there is some sort of a loss in the calculation, i'm trying to understand where that loss is occuring $\endgroup$
    – QFqs
    Jun 28, 2021 at 13:25
  • $\begingroup$ @QFgs I retyped your screenshot into excel. There are 3 periods and their total return is -3.72%, 5.82% and -2.47% respectively (sum of contrib1, contrib2, contrib3). If you coumpound it by $$(1+(-3.72\%))*(1+5.82\%)*(1+(-2.47\%))-1=-0.63\%$$ you get the total return from your excel, but their sum is $$-3.72\%+5.82\%+-2.47\%=-0.37\%$$ The difference is due to compounding only. $\endgroup$
    – emot
    Jun 28, 2021 at 14:46

4 Answers 4


Thanks for the example. It is exactly like my comment. Look at your weights after the first period. Are they really 80% and 20%?

Lets say you have £100 to invest.

  • £80 is invested in product A. That turns into £81 after the first period and £79.38 ($81*(1-0.02)$) after the second period. Total return is $79.38/80 = -0.775 \% $
  • £20 is invested in product B -> 20.1 -> 20.25075: 1.25375%

(after your first period, you have £101.1 and 81 as well as 20.1 respectively which is a "new" weight of 80.1187% and 19.8813% - which will be needed for (absolute) return contribution analysis)

  • Individually you earned (weighted by start value) $-0.775\% *0.8 + 1.25375\% *0.2 = -0.36925\%$
  • Total value is $79.38+20.25075 = 99.63075$ which results in a decline of $-0.36925\% $ from 100.

You cannot simple use the same weights, as that is no longer true after the first period (any period).

You can find some basics about rebalancing on Investopedia.

Edit 1

You cannot compute it like you attempt to. You simple assume weights are identical across periods. That just does not work. The geometric mean computes an average return spread across all periods. You do not need to weight that every period. You simply know your start weight (which is same as start value if multiplied with total portfolio cash) and you spread the average across all periods (two here, which is why you need to compute $Start_{value}*(1+geom)^2$ for every asset). There is no need to use weights - the geometric mean is the $n_{th}$ root of $n$ products of the values over $n$ periods. enter image description here If you want portfolio total return at any period, you can use the logic in blue. It gives the weight at any period, and the sum of it divided by initial total portfolio is your return at any period.

Edit 2 (Absolute) return contribution analysis (not computed against a benchmark) identifies the contributions of portfolio components to the total return of the portfolio. It uses weights and returns of the portfolio in each period. $$R_{period}= \sum_{i=1}^{n} w_iR_i$$ where $w_i$ is the weight of the security in each period, computed as value of security divided by total value. In this example here:

enter image description here

You cannot do the geometric mean of the individual securities absolute return contributions, as these use different weights, whereas the geometric mean is simple the average of returns in each period from start to end (see formulas above). For the portfolio as a whole it works because you always have the same weight in this case (1).

I apologize for the excel sheets that are arguably not well done because I quickly did them during work breaks. I hope they still help.

  • $\begingroup$ so in this case the only real way to calculate contributions would be to have continuous weight updates. Over long periods of time (say over a month), this slippage can add up to multiple basis points. How would you suggest calculating contributions over a year to minimize this slippage? $\endgroup$
    – QFqs
    Jun 29, 2021 at 1:21
  • 2
    $\begingroup$ Not sure what you mean with slippage. You simply compute your return from one period to the other just like I did. If you have a return for whatever period, you get your value at the end of that period. That is your start value for next period. What the weight is doesn't matter in that case ( I also only used the start weight times total return). Note that none of your values matched my computation. So it is not individual vs total, just the general way you compute it that matters. $\endgroup$
    – AKdemy
    Jun 29, 2021 at 1:30
  • $\begingroup$ I think we are referring to 2 different thing. My misunderstanding is with asset contribution/attribution over time. If I took Asset A's contribution to return over multiple periods. At the end of the period, the geometric product or arithmetic sum of Asset A and Asset B contributions don't equal the return of the portfolio. This whole question is on contribution/attribution of Assets. $\endgroup$
    – QFqs
    Jun 29, 2021 at 13:08
  • $\begingroup$ I don't believe I am correct, just showing what I have learned. From your example. What is the contribution from Asset A and Asset B to the total return? $\endgroup$
    – QFqs
    Jun 29, 2021 at 15:34

If you use geometric period returns (aka "continous", "exponential"), you can calculate an arithmetic average and this will give you the same result as if you would calculate this growth rate only from the start and end value of your time series (e.g. a Total Return Index).

If you use arithmetic period returns, this will not be the case. It is just the mathematics of artihmetic period returns and it just does not make sense to calculate 1/2*(-50% + 100%), if you go from 1000 to 500 to 1000.

In both cases, you do not want the result of your return over all periods to depend on the "path". If you start with 1000 and end with 1800, this will be a return of 80% (arithmetic) or 59% (geometric), if your "overall" time is 1. You can always translate the arithmetic into the geometric return by using exp(r_continous)-1=r_arithmetic.

If you annualise (i.e. T>1), you would have r_continous=1/T*ln(S_T/S_0) or r_arithmetic=(S_T/S_0)^(1/T)-1 . The point is, you should not care too much about the "average period return" when you have arithmetic perio returns as this can be misleading (this only "fits" for geometric returns.)

  • $\begingroup$ thank you for the explanation but my question is regarding contributions from multiple investments which make up the total portfolio return. Returns should only be geometrically calculated but even with a geometric calculation of the individual contributions, it does not equal the portfolio return. I am trying to figure out what causes these losses $\endgroup$
    – QFqs
    Jun 28, 2021 at 17:11
  • $\begingroup$ @QFqs Could you please provide more information/explanation/example what you need? I'm having hard time understanding the problem. $\endgroup$
    – emot
    Jun 28, 2021 at 17:51
  • $\begingroup$ @emot Hi, sorry for the misunderstanding. I've written an edit in my original post to hopefully be more clear $\endgroup$
    – QFqs
    Jun 28, 2021 at 20:52

A short answer is you need to update the weight at each period.

For return contribution, you should able to match the portfolio level return if there is no change in "holdings" but just market price movement.


The best answer I found in Morningstar "Total Portfolio Performance Attribution Methodology" , p.36

enter image description here

There is an explanation of the compounding effect, but I like the one from the R package "PerformanceAnalytics" docs on p. 217.

From the portfolio contributions of individual assets, such as those of a particular asset class or manager, the multiperiod contribution is neither summable from nor the geometric compounding of single-period contributions. Because the weights of the individual assets change through time as transactions occur, the capital base for the asset changes.

Instead, the asset’s multiperiod contribution is the sum of the asset’s dollar contributions from each period, as calculated from the wealth index of the total portfolio. Once contributions are expressed in cumulative terms, asset contributions then sum to the returns of the total portfolio for the period.

In other words, every one period contribution return should be corrected by previous portfolio Total return. In our case, we have two period example, so multiperiod contribution components have quite simple form.

  • (arithmetic) Asset A Total Contribution: $C_{A,Cum} = C_{A,1}+C_{A,2}\bullet (1+R^P_{T1}) = 1.00\% + (1+1.10\%)\bullet (-1.60\%) = -0.617600\%$
  • (arithmetic) Asset B Total Contribution: $C_{B,Cum} = C_{B,1}+C_{B,2}\bullet (1+R^P_{T1}) = 0.10\% + (1+1.10\%)\bullet 0.15\% = 0.2516500\%$

The Total Contribution is equal to the sum $-0.617600\% + 0.2516500\% = -0.3659500\%$ as was to be shown.


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.