I am building a performance attribution tool on Python to help us understand the asset allocation, stock selection effects of our fund.
We are using daily price data for each component within the fund, daily asset allocation (to account for any changes made within the fund) and also have similar data available for the benchmarks.
Now, the process of calculating returns, contribution, asset allocation and manager selection effects work accurately when implementing it on a daily basis. However, when converting this to monthly, what is the most appropriate way of tackling this?
Currently, we use the generic total return formula
R = (1+r1)(1+r2)....(1+rn) - 1
to get monthly returns. Can I apply that same formula to the contributions?
How can I go from daily attribution to monthly attribution whilst also making sure:
asset allocation + manager selection = portfolio return - benchmark return = excess return