pythonperformanceportfoliometricattribution

Portfolio Performance Attribution Metrics


I would like to incorporate a particular performance metric into my portfolio managing software. This metric should be one where I can measure

"how much of the potential gains from the selected assets have been captured by the selected portfolio composition".

Consider the following table reporting a portfolio's performance with key metrics between dates 2017/10 and 2018/03

netpeq: net $ profit gained over the period
aroc: annualized rate of change in asset's price over the period
cagr: compounded annualized growth of portfolio over the period

I need a metric which penalizes divergence between cagr (or netpeq) and aroc. Namely, positive aroc says these asset could have produced growth (as in BA, MSFT, CSCO) but the portfolio manager failed to make money out of these or even lost money.

I would like to measure the extent the portfolio manager missed to capture
a. the growth potential due to each asset in the portfolio
b. the overall growth potential w.r.t portfolio as a whole.

+---------+----------+----------+---------+-------+--------+--------+--------+
| name    | netpeq   | draw     | aroa    | cagr  | sharpe | rvalue | aroc   |
+---------+----------+----------+---------+-------+--------+--------+--------+
| BA      | -555.71  | 3439.15  | -36.54  | -1.25 | -0.17  | 0.42   | 64.58  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| DWDP    | 0        | 0        | 0       | 0     | 0      | 0      | -13.18 |
+---------+----------+----------+---------+-------+--------+--------+--------+
| CAT     | -447.66  | 1361.54  | -74.36  | -1.01 | -0.66  | -0.17  | 39.91  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| WMT     | 363.25   | 448.09   | 183.34  | 0.82  | 1.1    | 0.66   | 4.73   |
+---------+----------+----------+---------+-------+--------+--------+--------+
| UTX     | 0        | 0        | 0       | 0     | 0      | 0      | 18.96  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| NKE     | 690.34   | 498.24   | 313.36  | 1.57  | 1.21   | 0.84   | 67.19  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| VZ      | -76      | 76       | -226.16 | -0.17 | -2.18  | -0.63  | 4.73   |
+---------+----------+----------+---------+-------+--------+--------+--------+
| XOM     | -272.87  | 555.36   | -111.12 | -0.62 | -0.65  | -0.46  | -18.69 |
+---------+----------+----------+---------+-------+--------+--------+--------+
| GE      | 0        | 0        | 0       | 0     | 0      | 0      | -85.61 |
+---------+----------+----------+---------+-------+--------+--------+--------+
| MCD     | 1025.63  | 731.44   | 317.12  | 2.33  | 1.09   | 0.64   | -6.02  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| CSCO    | -313.88  | 313.88   | -226.16 | -0.71 | -1.81  | -0.39  | 75.23  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| JPM     | 961.69   | 267.33   | 813.59  | 2.19  | 1.72   | 0.86   | 45.46  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| V       | 3261.55  | 1969.88  | 374.46  | 7.53  | 1.76   | 0.9    | 31.18  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| GS      | 0        | 0        | 0       | 0     | 0      | 0      | 24.24  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| HD      | -32.32   | 960.59   | -7.61   | -0.07 | -0.06  | 0.09   | 20     |
+---------+----------+----------+---------+-------+--------+--------+--------+
| PFE     | 0        | 0        | 0       | 0     | 0      | 0      | 4.12   |
+---------+----------+----------+---------+-------+--------+--------+--------+
| KO      | 0        | 0        | 0       | 0     | 0      | 0      | -10.66 |
+---------+----------+----------+---------+-------+--------+--------+--------+
| MMM     | 0        | 0        | 0       | 0     | 0      | 0      | 17.01  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| DIS     | 0        | 0        | 0       | 0     | 0      | 0      | 11.43  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| CVX     | 357.2    | 1415.09  | 57.09   | 0.81  | 0.37   | 0.33   | -5.8   |
+---------+----------+----------+---------+-------+--------+--------+--------+
| INTC    | 1632.52  | 599.42   | 615.95  | 3.73  | 1.4    | 0.63   | 67.32  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| PG      | -197.12  | 314.7    | -141.66 | -0.45 | -1.25  | -0.72  | -32.05 |
+---------+----------+----------+---------+-------+--------+--------+--------+
| TRV     | -348.86  | 348.86   | -226.16 | -0.79 | -1.55  | -0.79  | 26.49  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| MSFT    | -205.86  | 680.29   | -68.44  | -0.46 | -0.42  | 0.25   | 47.6   |
+---------+----------+----------+---------+-------+--------+--------+--------+
| AAPL    | 0        | 0        | 0       | 0     | 0      | 0      | 28.32  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| JNJ     | 17.55    | 64.8     | 61.25   | 0.04  | 0.33   | 0.43   | -7.55  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| AXP     | -1366.89 | 1492.43  | -207.14 | -3.06 | -1.69  | -0.77  | 5.65   |
+---------+----------+----------+---------+-------+--------+--------+--------+
| IBM     | 0        | 0        | 0       | 0     | 0      | 0      | 20.59  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| UNH     | 877.04   | 676.82   | 293.06  | 1.99  | 1.13   | 0.79   | 39.98  |
+---------+----------+----------+---------+-------+--------+--------+--------+
| MRK     | 0        | 0        | 0       | 0     | 0      | 0      | -27.88 |
+---------+----------+----------+---------+-------+--------+--------+--------+
| RunPort | 5369.6   | 10091.44 | 120.34  | 12.56 | 0.65   | 0.73   | -1     |
+---------+----------+----------+---------+-------+--------+--------+--------+

Solution

  • A reasonable intensive measure of how much a market instrument within a portfolio captured its potential would be the geometric difference between its IRR for the period and its annualized market return for the same period. For this you would need the cash flow amounts and dates into and out of the instrument, its actual opening and closing market value and the total market return of the component. If the instrument or its IRR-implied value is ever short at any time during the period, then you would need to employ an advanced version of IRR instead of the standard calculations provided in Excel.
    What is usually the more relevant is the extensive measure of the achieved controllable relative success of the management of a portfolio. It is best captured by a well-formulated value-based decision attribution analysis using daily data.
    Andre Mirabelli