Given a set of portfolio weights, w, and historical security prices, I am looking to calculate a simple portfolio return via:

enter image description here

where R is the simple return for a given security from time t to t+1:

enter image description here

This is pretty straight forward. However, I can't seem to wrap my head around how the portfolio return calculation changes if:

  1. There is a portfolio rebalance
  2. A new security is added
  3. An existing security is removed

For example, if my portfolio only contains two securities, A and B:

enter image description here

And, so, the simple portfolio return is:

enter image description here

What happens now if I want to rebalance the portfolio? How would that alter the return calculation or how would my portfolio return be different? Does "time" matter? Say, the portfolio from time t to t+1 was one year but the portfolio was then balanced for only one day. Then, the return period that I am interested would be for time t to (t+1+one day).

Similarly, instead of rebalancing, what if I wanted to add a new security C at time t+1 and the calculate the return from time t to (t+1+one day). In other words, security C did not exist in the portfolio from time t to t+1. How do I get the portfolio return now?

What if I want to remove security A at some later time t+2?

  • are you calculating the return as IRR?
    – MD-Tech
    Nov 6, 2015 at 14:07
  • I'm not familiar with IRR but from what I can gather, no "decision" (accept/reject) is made based on the percent portfolio being calculated. Does that answer your question or would you care to elaborate? There really is no further context behind my question besides calculating the simple portfolio return when given a start and end date. The challenge for me is understanding how to correctly handle things when there are changes in the portfolio during that time period (i.e., rebalancing, adding a security, removing a security, etc)
    – slaw
    Nov 6, 2015 at 14:15
  • I'm new to this group. Is this the right place to ask this sort of question?
    – slaw
    Nov 6, 2015 at 14:25
  • 1
    IRR is the rate of return that makes the NPV of all of the considered cashflows 0 so its simple to calculate the returns with intra-period rebalancing just by calculating the IRR intra-period rather than full period. i.e. change the final cashflow date to the date of sale.
    – MD-Tech
    Nov 6, 2015 at 14:26
  • 1
    I could make an answer in which I discuss using IRR if you like?
    – MD-Tech
    Nov 6, 2015 at 15:05

1 Answer 1


If you want to calculate returns on a changing portfolio it is a good idea to use Net Present Value (NPV) calculations as the underlying method.

NPV discounts future cashflows to the current time and then sums them to get a complete view of the change in value from an investment. The net present value of each cashflow is calculated as:

NPV = c/(1 + r^t)

where c is the cashflow amount including direction (so an outgoing payment will be negative), r is the annualized rate of return and t is the time period in years. Use t/12 for months or t/365 or t/360 for days depending on days convention used.

The Internal Rate of Return (IRR) is the useful measure for your purposes as you want a comparable, annualized rate of return. The IRR is the rate of return (r above) that makes the NPV of all of the relevant cashflows 0. Excel can only calculate IRR for regular cashflows but it is simple enough to write your irregular cashflows into a NPV calculation and then solve for 0 by hand.

IRR has the benefit of being comparable over all security types and can take into account costs of holding (for commodities etc.) and fees incurred if those cashflows are included. The greatest benefits to you as laid out, however, are that it takes the time component into account by discounting to present value and can handle any unevennesses in your holding periods (cashflows). IRR is also comparable against annualized market and fund returns, and cost of debt or leverage so it gives an excellent idea of portfolio performance.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .