Calculate Monthly Returns by Compounding Daily Returns
Summary
The document explains why a monthly return computed from the first and last account values can differ from the sum of the daily percentage returns. The monthly holding-period return is found by dividing the ending value by the starting value and subtracting one. Equivalently, daily simple returns must be linked through a cumulative product of one plus each return, then reduced by one.
Adding daily returns ignores compounding, so the sum generally does not equal the return over the full period. The replies identify compounding as the source of the discrepancy and note that data integrity is a separate consideration. The example supplies daily values and returns, but the answers do not verify whether the reported figures are internally consistent or discuss complications such as external cash flows, fees, or different return conventions. The method applies to a sequence of linked simple returns over a period.
Key ideas
- A period return from account values is the ending value divided by the starting value, minus one.
- Daily simple returns combine through multiplication of one plus each return.
- Summing daily percentage returns generally differs from the compounded period return.
- Data quality should be checked separately from the choice of return aggregation method.
Tags
Full text
# Daily returns to monthly basic question
# Daily returns to monthly basic question
I am currently a little bit puzzled. I am trying to compute the monthly returns from a set of data.
```
30-Sep-18 175.9790658 Performance
29-Sep-18 175.9790658 0.000%
28-Sep-18 175.9790658 0.000%
27-Sep-18 174.9712013 0.576%
26-Sep-18 175.4530194 -0.275%
25-Sep-18 173.5249863 1.111%
24-Sep-18 173.6253172 -0.058%
23-Sep-18 175.9311682 -1.311%
22-Sep-18 175.9311682 0.000%
21-Sep-18 175.9311682 0.000%
20-Sep-18 171.6433724 2.498%
19-Sep-18 170.5624874 0.634%
18-Sep-18 167.1542002 2.039%
17-Sep-18 164.9153843 1.358%
16-Sep-18 168.1403232 -1.918%
15-Sep-18 168.1403232 0.000%
14-Sep-18 168.1403232 0.000%
13-Sep-18 167.0250094 0.668%
12-Sep-18 162.2830264 2.922%
11-Sep-18 163.2663355 -0.602%
10-Sep-18 163.7415407 -0.290%
09-Sep-18 166.8650865 -1.872%
08-Sep-18 166.8650865 0.000%
07-Sep-18 166.8650865 0.000%
06-Sep-18 165.9631283 0.543%
05-Sep-18 168.6782507 -1.610%
04-Sep-18 172.9814277 -2.488%
03-Sep-18 171.6316528 0.786%
02-Sep-18 172.3265548 -0.403%
01-Sep-18 172.3265548 0.000%
31-Aug-18 172.3265548 0.000%
```
For calculating the monthly performance (X2/X1)-1 has been used giving us a performance of 2.12% but the sum of individual daily returns is 2.31%
I don't see where discrepancy could come from is it because of the compounding? Are there perhaps any papers on this subject to read up on since google was to no avail.
Thanks for the help advance and kind regards!
## Answer by numerairX (score 1, accepted)
https://quant.stackexchange.com/a/42380
it's the difference between $\sum_{i=1}^n \frac{X_i}{X_{i-1}} -1$ and $\frac{X_n}{X_0}-1$ and has nothing to do with your data integrity
## Answer by Évariste Galois (score 0)
https://quant.stackexchange.com/a/42378
Returns are cumulated, not summed. Run a cumulative product on your performance column (this looks like a pandas DataFrame; pandas has build in functions for that), which is the actual monthly return you are looking for.
Whether or not this is 2.12% is up to the integrity of your data set.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.