How to use the portfolio return contribution calculator
- Write one line for each holding: its name, its starting weight in percent, and then its return for each period in percent, separated by commas.
- Give every holding the same number of returns, from 1 to 24, and make the weights add up to 100.
- Choose buy and hold if the weights were left to drift, or rebalanced if you reset them to the starting weights each period.
- Read the table for each holding's own return and its contribution to the portfolio, and the headline for the portfolio return that those contributions add up to.
Formula
buy and hold: contribution of holding i = starting weight x cumulative return of holding i
rebalanced: period return = sum of (weight x return), linked over the periods
rebalanced contribution of i = sum over periods of (k_t / k) x weight x return of i in that period
smoothing factor k = ln(1 + R) / R for the whole span, and k_t = ln(1 + R_t) / R_t for period t
With no rebalancing, the starting weight times a holding's cumulative return is exactly that holding's share of the portfolio return. With rebalancing, simple products no longer add up over several periods, so the page scales each period with the Carino factor so that the pieces sum exactly to the linked return.
Three holdings over three periods
The page starts with 50 percent in US stocks (4, -2 and 3 percent), 30 percent in bonds (1, 0.5 and -1) and 20 percent in real estate (2, 3 and 0). Left to drift, US stocks compound to 4.9776 percent, bonds to 0.49 percent and real estate to 5.06 percent. Multiplying by the weights gives contributions of 2.49, 0.15 and 1.01 percentage points, which add up to a portfolio return of 3.65 percent.
With rebalancing to 50, 30 and 20 percent each period, the portfolio return is 3.67 percent and the contributions are 2.51, 0.15 and 1.01. The two answers differ because rebalancing sells what rose and buys what fell at each step.
What a contribution tells you
A holding's contribution is how many percentage points of the portfolio return came from it. A large holding with a modest return can contribute more than a small holding with a big return. The table shows the weight, the holding's own return and the contribution side by side so you can see which factor mattered.
Contributions describe the past. They do not say whether a holding was a good choice, because they ignore risk, fees and what else the money could have done. For risk, see the Sortino, Calmar and Omega Ratio Calculator.
Buy and hold versus rebalanced
If you never trade, the weights drift: a holding that rises becomes a bigger part of the portfolio. Its starting weight times its own cumulative return still gives its exact contribution, so the answer needs no approximation.
If you restore the starting weights every period, each period's portfolio return is the weighted sum of the holdings' returns. To keep the contributions additive after linking the periods, the page uses the Carino smoothing factor. To work out the trades needed to restore the weights, use the Portfolio Rebalancing Calculator.
Assumptions and limits
- Weights are percentages of the portfolio at the start and must add up to 100. Cash counts as a holding with its own return.
- No money is added or withdrawn during the periods, so the result is not a money-weighted return.
- Fees, taxes and trading costs are not modeled. Use returns that are already net of them if you want them included.
- Up to 40 holdings and 24 periods are accepted. Names cannot contain commas.
- Nothing typed here leaves your browser.
Frequently asked questions
Why do my contributions not match weight times return for a long period?
Over several periods, returns compound. A simple weight times average return ignores that. The page either compounds each holding (buy and hold) or scales each period with the Carino factor (rebalanced) so that the pieces add up exactly.
What if a holding lost money?
Its contribution is negative and is shown with a minus sign. The portfolio return is still the sum of all the contributions, so a loss in one holding offsets gains in others.
Can I include a benchmark or compare against one?
This page splits one portfolio. To compare with a benchmark, run the benchmark's holdings through the page as well and compare the totals by hand. It does not compute the active share or attribution effects.
Why must the weights add up to 100 percent?
The weights describe how the whole portfolio was split at the start. If they do not add up to 100, some of the money is not accounted for, and the contributions would not add up to the portfolio return.