### How to calculate the internal rate of return (IRR) and the net present value (NPV) of a stock portfolio with Google Sheets

As a long-term investor, I need to know how to evaluate the performance of my stock portfolio. A simple return on investment calculation is not a good indicator for long-term investment because it does not take into account the holding duration, and cash flows involved during that period. A return on investment of 80% after 20 years is not as impressive as it sounds after 1 year. In this post, I explain the idea of using Google Sheets to calculate the internal rate of return (IRR) and the net present value (NPV) of a stock portfolio.

#### Table of Contents

- Identify cash flows
- Choose a discount rate
- Apply XIRR and XNPV functions of Google Sheets
- Interpret internal rate of return (IRR) and net present value (NPV)
- Conclusion
- Series: how to calculate internal rate of return (IRR) and net present value (NPV) for a stock portfolio in Google Sheets
- Disclaimer
- Feedback
- Support this blog
- Share with your friends

## Identify cash flows

As mentioned in the introduction of time value of money, present value, future value, internal rate of return, net present value, to calculate the internal rate of return (IRR) and the net present value (NPV), it is necessary to firstly identify cash flows. Cash flow is the money that is transferred from one entity to another entity. On the recipient side, the cash flow is positive. However, on the expedition side, the cash flow is negative.

In a stock portfolio, each cash flow is essentially a transaction. It could be either:

- A
**DEPOSIT**transaction: money is transferred from a pocket to a broker account - A
**WITHDRAW**transaction: money is transferred from a broker account to a pocket - A
**BUY**transaction: money is transferred from a broker account to the market in exchange for shares of a stock - A
**SELL**transaction: money is transferred from the market to a broker account in exchange for shares of a stock - A
**DIVIDEND**transaction: money is transferred from a paying-dividend company to a shareholder's broker account

**Note**

That leads to the question of how to manage stock transactions with Google Sheets. In the post, I have detailed how to use Google Sheets as a database to keep track of a portfolio's transactions. The rest of this guide is based on that model.

Depending on the chosen side, a cash flow is positive or negative.

- If calculating internal rate of return (IRR) and net present value (NPV) for
**a stock**in the portfolio, cash flows are all transactions related to that stock. They are**BUY, SELL, and DIVIDEND**transactions.- From the portfolio's perspective, cash flow is negative for a
**BUY**transaction. - From the portfolio's perspective, cash flow is positive for a
**SELL**and**DIVIDEND**transaction. **Note:**If a stock is currently held in the portfolio, its current market value (shares * latest price) is considered as a positive cash flow because that is the amount that will be sent to the portfolio if that stock is immediately sold out.

- From the portfolio's perspective, cash flow is negative for a

- If calculating internal rate of return (IRR) and net present value (NPV) for
**the whole portfolio**, there are two options for identifying cash flows.- The first option is to consider the task as calculating internal rate of return (IRR) and net present value (NPV) for many stocks. Therefore cash flows are
**BUY, SELL, and DIVIDEND**transactions for all stocks presented in the portfolio. - The second option is to view it from the pocket. Therefore cash flows are all
**DEPOSIT**and**WITHDRAW**transactions.- From the pocket's perspective, cash flow is negative for a
**DEPOSIT**transaction. - From the pocket's perspective, cash flow is positive for a
**WITHDRAW**transaction.

- From the pocket's perspective, cash flow is negative for a
**Note:**The portfolio's current value is considered as a positive cash flow because that is the amount that will be withdrawn to the pocket if the portfolio is immediately closed (sell all shares and withdraw all money).

- The first option is to consider the task as calculating internal rate of return (IRR) and net present value (NPV) for many stocks. Therefore cash flows are

## Choose a discount rate

A discount rate is a next thing to identify. The discount rate is used to benchmark an investment. The resulted internal rate of return (IRR) is compared to the discount rate or the discount rate is used to calculate the net present value (NPV). There are many ways to choose a discount rate and the choice depends on personal preferences, for example:

- A minimum required rate of return for an investment that one sets for herself/himself
- An expected rate of return if investing in an alternative asset such as: saving account, real estate, buying a business, etc.
- A reference rate of return of the market: S&P 500, CAC 40, etc.

As for myself, I set it to be 10% in the sample portfolio.

## Apply XIRR and XNPV functions of Google Sheets

With the cash flows and the discount rate identified, the next step is to calculate the internal rate of return (IRR) and net present value (NPV) of a stock portfolio by applying the mathematical formulas introduced in the introduction post. However, as demonstrated by several examples in that introduction post, the task requires many repetitive calculations and investors don't generally have time to do those calculations manually. Instead, it is wiser to leverage the 4 available functions **IRR, NPV, XIRR, and XNPV** of the Google Sheets to calculate the internal rate of return (IRR) and net present value (NPV) for a stock portfolio.

- The
**IRR and NPV**functions are used if cash flows are regularly spaced. For example, an investor only makes transactions on the first day of every year. I think it is not a realistic scenario. - The
**XIRR and XNPV**functions are used if cash flows are irregularly spaced. Transactions can be made on whatever day. The XIRR and XNPV functions require both date and amount for cash flows. They are the two functions that I use and explain in this series.

**Note**

- For the
**XIRR**function, cash flows can be entered in any order. - For the
**XNPV**function, cash flows must be ordered ascending by time.

## Interpret internal rate of return (IRR) and net present value (NPV)

Using internal rate of return (IRR) and net present value (NPV) helps me to evaluate the performance of my investment. Given my personal discount rate being 10%:

- If the calculated internal rate of return (IRR) is less than 10% for a stock (or the whole portfolio), I can say that my investment into that stock (or the whole portfolio) does not meet my expectation. Otherwise, if it is greater than 10%, I am pleased with that performance.

- If the calculated net present value (NPV) (with 10% discount rate) is negative for a stock (or the whole portfolio), I can say that my investment into that stock (or the whole portfolio) does not meet my expectation. Otherwise, if it is positive, I am pleased with that performance.

## Conclusion

In this post, I have explained the idea of using Google Sheets functions to calculate internal rate of return (IRR) and net present value (NPV) for a stock portfolio at three levels: for a stock, for a group of stocks, and for the whole portfolio. The process consists mainly of three steps:

- Identify cash flows from transactions managed in a Google Sheets spreadsheet
- Choose a discount rate based on personal preferences
- Apply XIRR and XNPV functions of Google Sheets

In the next posts, I will explain how to apply this idea with some ready-to-use examples and demos.

## Series: how to calculate internal rate of return (IRR) and net present value (NPV) for a stock portfolio in Google Sheets

- Time value of money, Present Value (PV), Future Value (FV), Net Present Value (NPV), Internal Rate of Return (IRR)
- How to calculate the internal rate of return (IRR) and the net present value (NPV) of a stock portfolio with Google Sheets
- Demo how to use XIRR and XNPV functions of Google Sheets to calculate internal rate of return (IRR) and net present value (NPV) for a stock portfolio

## Disclaimer

**The post is only for informational purposes and not for trading purposes or financial advice.**

## Feedback

If you have any feedback, question, or request please:

- leave a comment in the comment section
- write me an email to allstacksdeveloper@gmail.com

## Support this blog

If you value my work, please support me with as little as a cup of coffee! **I appreciate it. Thank you!**

## Share with your friends

**If you read it this far, I hope you have enjoyed the content of this post. If you like it, share it with your friends!**

## Comments

## Post a Comment