# Daily to Monthly Performance Attribution - Getting Effects to equal the Excess Return

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

I would convert all data from daily to monthly using the generic total return formula you specified. Then do the attribution.

The issue is going to be with the weights of assets, sectors, and countries; you will have to make an assumption whether you use end of month weight or average weight over the month. For example, end of month weight of manager A vs average weight of manager A over the month. I think the industry standard is to use end of month weight.