How to calculate the annual contribution of a fund to a portfolio of funds?

let's assume I have a portfolio of two funds (call them F1 and F2), where, by convention, there is a monthly compounding of the returns.

On a monthly basis, the contribution of each fund will just be Weight_Fi*Return_Fi.

On an annual basis, though, since the assumption is that there is monthly compounding in the whole portfolio (in the sense that Return_portfolio_year = (1+Return_portfolio_jan)*(1+Return_portfolio_feb)...) I cannot think of any straightforward way to calculate the annual contribution of each fund.

• Unless you are making monthly withdrawals above a high water mark from the funds you are invested in, the compounding is already occurring at the fund level unless I am missing something. – amdopt Oct 19 '17 at 13:26
• @amdopt thanks for your comment. No, the funds are not sending compounded data - just net monthly returns. I need to compound these at a portfolio level. – sen_saven Oct 19 '17 at 13:32
• I understand that they are sending monthly net returns. However, if you are not withdrawing profit from them, then they are compounding gains each month at the lower level. For example, if you invested 1M and made 10% in month 1, the start of month 2 has 1.1M. If it makes another 10% in month 2, you now have 1.21M at the start of month 3...sorry if I am missing the point of your question. – amdopt Oct 19 '17 at 13:48
• I agree, the compounding does happen in the fund level too. However, if in the end of the year I sum up the compounded returns of the two funds it's not the same as the compounded return of the portfolio. For example, if we assume that both funds produce every month a positive return, then the portfolio return will be slightly higher than the sum of the two funds. – sen_saven Oct 19 '17 at 13:58

These problems arise when you compute arithmetic return contributions: in a given month, you want the sum of the funds' contributions to equal the portfolio return. The sum of these single-month contributions over more than one month will never equal the total portfolio returns over more than one month.

One way to include the compounding effect is to 'pretend' that a segment's return contribution in one period is reinvested in the overall portfolio in succeeding periods.

Here is an example, with R code. There are just two periods: first F1 makes 10%, then F2 makes 10%. The weights of F1/F2 are kept constant at 50% each.

library("PMwR")
weights <- rbind(c( 0.5, 0.5),
c( 0.5, 0.5))

R <- rbind(c( 10,   0),
c( 0 , -10))/100

rc(R, weights, segment = c("F1", "F2"), timestamp = 1:2)

The output will be

$period_contributions timestamp F1 F2 total 1 1 0.05 0.00 0.05 2 2 0.00 0.05 0.05$total_contributions
F1     F2  total
0.0525 0.0500 0.1025

F1 makes a higher overall contribution because its single-period contribution occured earlier and hence is compounded by the overall portfolio return.

(The PMwR package, of which I am the author, is available from GitHub https://github.com/enricoschumann/PMwR .)

• I believe that a lot of the "mysteries" or "oddities" of arithmetic performance attribution disappear if you use geometric performance attribution. Would it help in this case? – noob2 Oct 20 '17 at 12:39
• yes & no: the numbers may 'add up' (multiply, actually), but are less intuitive. If F1 and F2 make 10% in a month, then their single-period contribution is not 5% but 4.89%, because (1.049)*(1.049)=1.1 – Enrico Schumann Oct 20 '17 at 13:31
• thanks, this seems to be working - would it be possible to give a quick explanation of its logic? – sen_saven Oct 20 '17 at 14:19
• The idea is that contributions in one period are, after that period, invested into the overall portfolio until the end of the investment horizon. In the example, F1 contributed 5% in period 1; these 5% are then compounded at 5% (=portfolio return in period 2) in period 2. So the overall contribution is 5*1.05 - 1 = 5.25%. – Enrico Schumann Oct 20 '17 at 19:13
• No, I don't think so. It is described in a textbook by Bruce Feibel, but the author does not claim to have 'invented' it. If you look for 'multi-period contribution', you will find it in different sources. (Though most texts deal with 'multi-period attribution', not contribution.) – Enrico Schumann Oct 24 '18 at 7:21