Compounding Monthly Fund Contributions Across a Year
Summary
The document explains why adding a fund’s monthly arithmetic return contributions does not generally produce its contribution to a portfolio’s compounded return over a longer period. Monthly contribution is calculated as the fund’s portfolio weight times its return, but portfolio returns compound across periods, so the sum of monthly contributions falls short of capturing that effect.
A proposed method treats each period’s contribution as if it remains invested in the overall portfolio during subsequent periods. A two-fund example shows that an earlier contribution grows with later portfolio returns, so its total contribution can differ from a later contribution of the same size. The example illustrates how timing affects attributed returns. The discussion focuses on arithmetic attribution under compounding; it does not compare alternative attribution methods or establish which convention is appropriate for every portfolio.
Key ideas
- Monthly arithmetic contribution is the fund’s weight multiplied by its return.
- Adding monthly contributions does not generally equal the portfolio’s compounded return over multiple periods.
- A contribution can be compounded through later periods to account for reinvestment.
- Earlier contributions may receive greater compounded attribution than later contributions of the same size.
Tags
Full text
# How to calculate the annual contribution of a fund to a portfolio of funds?
# 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.
## Answer by Enrico Schumann (score 3, accepted)
https://quant.stackexchange.com/a/36530
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 .)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.