Wednesday, December 14, 2011
Doing transaction-based attribution? Don't forget about the benchmark!
To avoid complicating the matter, I began by selecting months where the S&P 500's constituents saw no changes, as I didn't want to be bothered with worrying about capturing those transactions (one or more securities leaving during the month, and being replaced by other securities, possibly altering the weights of the various sectors). The problem is that it's often difficult to find such a month.
And so I decided to discard this requirement, and select any month, even if changes had taken place. The problem was that when I made this decision, I forgot about the need to capture the transactions on the index side.
Almost immediately residuals appeared when no portfolio transactions had occurred: they weren't terribly large (usually only one or two basis points), but when there is supposed to be no residual whatsoever, this posed a dilemma. At first I thought the fault lied with my spreadsheet somehow: that perhaps in loading the data, I had altered a cell's formula. But after some reflection it hit me: the benchmark's composition had changed, and I hadn't accounted for it (ironic, because my initial intention was to avoid this situation, but somehow forgot about it when I decided to forgo the original constraint). In other words, the benchmark sector weights used in the formulas were based solely on what they looked like at the start of the period, without accounting for the changes that occurred during the month. And so, the formula:
The solution? Well, in "real life," one would want to make sure you captured the changes in the sector weights that resulted from securities leaving or entering the sector during the month. In my case, because I am evaluating changes to the portfolio, not the benchmark, I will simply alter the benchmark's overall return so that the formula is satisfied: something I have the luxury of doing in my analysis, and arguably a "must" to properly assess what the study is all about. Hopefully, you'll read more on this in an upcoming article.
My point? Make sure that your implementation of a transaction-based model properly captures the benchmark's changes, too; i.e., not just the ones to your portfolios!