How To Divide Your Investments Between TFSA, RRSP and Non-Registered Accounts

Last update on April 28, 2015.


Since I started MoneyGeek, readers have frequently asked me questions such as the following:

"Should I keep U.S. stocks in my RRSP account?"

"Which items in MoneyGeek's portfolio should be contained within RRSP, TFSA, and non-registered portfolios?"

In summary, readers wanted to know how they should divide their money between RRSP, TFSA and non-registered accounts in such a way as to minimize taxes over their lifetimes.

Answering such questions, however, was tricky. The answer depended on each person's unique circumstances, including but not limited to their age and income level. I promised my readers that I would work on a tool that would answer this question for them. 

Today, I'm happy to announce that the wait is over. Ladies and gentlemen, please allow me to introduce the "Investment Tax Optimizer". You can access the public version of this tool by clicking on this link, or by going to the Resources menu.


What The Tool Does

The investment tax optimizer takes in various information about your financial circumstances, as well as your expectation regarding your investments, and spits out a breakdown of where you should hold your investments.

For example, if you say you want to hold $20,000 in Canadian stocks and $10,000 in Canadian bonds, it might spit out an answer that says you should hold the $20,000 worth of Canadian stocks in the TFSA, and the bonds in the RRSP.

That's what the tool does, but how does the tool come up with the answer? Let me explain as best I can.


How The Tool Calculates Your Answer

Basically, the tool gets the answer by trying out a lot of different scenarios and by picking out the best one.

Each scenario consists of sets of priorities, which consist of the order of the investments, and the order of the tax vehicles.

For example, one priority might look something like this: [Canadian Stocks, Canadian Bonds], [TFSA, RRSP, non-registered]. In plain language, this means the tool will first try to fit as many Canadian stocks into the TFSA account as it can. If the TFSA account gets full, it will try to put the rest inside the RRSP. If that gets full, it will put the rest inside a non-registered account.

Once all the Canadian stocks are fitted inside the accounts, the tool will try to fit the bonds in the same order. In other words, it will try to fit as many bonds inside the TFSA first, and then try the RRSP, and then the non-registered account.

The algorithm tries all possible priorities. In other words, it will try priorities including [Canadian Bonds, Canadian Stocks], [RRSP, TFSA, nonregistered] (i.e. Fit the bonds inside RRSPs first) and [Canadian Stocks, Canadian Bonds], [TFSA, non-registered, RRSP] (i.e. Fit the stocks inside the TFSA first), as well as all other possibilities.

Once the algorithm allocates investments according to a priority, the algorithm simulates the growth of these investments inside each of these accounts, while maintaining the same priority. For example, if our priority calls for having Canadian stocks inside TFSAs first, then the algorithm will try to put as many Canadian stocks inside the TFSA in the simulated future as well.

I've taken the liberty of making a few assumptions about the user as the tool simulates the future. I've assumed that the user's bond component will increase while the stock component will decrease as the user gets older. I've also assumed that everyone retires at age 65, upon which time the user stops saving and starts withdrawing money. The user withdraws an increasing percentage of his/her money every year, and withdraws every penny by the time he/she is 94.

As people grow older, their financial circumstances change. Therefore, I believe it's unrealistic to expect that the investment priority should stay the same over the person's lifetime. Therefore, I've programmed the algorithm so that once in their lifetime, the user's priorities change.

For example, a person might start with the priority [Canadian Stocks, Canadian Bonds], [TFSA, RRSP, non-registered]. Then, the algorithm will try to change the priority to [Canadian Bonds, Canadian Stocks], [TFSA, RRSP, non-registered] after a number of years into its simulation.

The algorithm will try every possible age for switching priorities. For example, it will try switching priorities 5 years from now, as well as 15 years from now. The tool will record the results of the simulation for every single possibility.

After examining the tax implications of every one of these different scenarios, the algorithm will choose the winning priority and switching age based on the most amount of money the user would receive during retirement. The tool will then display the breakdown of where you should put your investments based on the winning priority.


Further Considerations

That, in a nutshell, is how the tool works, but there are a few other things you should know about it.

First, the public version only optimally allocates Canadian stocks and Canadian bonds. MoneyGeek's regular and premium members have access to the members only tool, which allows the user to allocate U.S. stocks as well.

Secondly, I would like to emphasize that this is merely a tool, and you shouldn't regard the results of this tool as advice. Minimizing taxes involves more than just knowing how to split your investments between TFSA, RRSP and non-registered accounts. Many other considerations come into play as well, so I suggest you talk to an accountant or a tax professional if you want a comprehensive tax planning solution.

That's all I have to say about the tool. I hope you find it useful. If you have any questions, please ask using the comment box below, so that everyone can benefit.

If you enjoyed this article, you might be interested in our free newsletter. Enter your email to get free updates.

Next entry

Previous entry

Similar entries


  1. sberiault2 - 06/10/2014 11:24 p.m. #

    Thanks for adding this tool but there's 2 user inputs I don't quite understand:

    the first one:
    What is your total RRSP contribution room, including used room?
    On my yearly income tax report it only shows how much room I have left. I don't really know how to find out what my total RRSP contribution room is? would it just be the total of what I have invested in my RRSP (is that what you mean by used room?) + the contribution room I have left? please help on this one. thanks.

    the second:
    How much of your RRSP contribution room have you used up so far?
    I guess based on the number from the previous input I would subtract the unused contribution room to get the amount for this user input field. Is this correct?


  2. Jin Choi - 06/11/2014 9:10 a.m. #

    Hi Sylvain, thanks for the feedback. I've changed the tool to address your concerns.

    The tool now takes in unused contribution rooms for TFSA and RRSP, instead of total room.

    I've also changed the label for the used contribution room. It now asks for the total value of investments inside your TFSA/RRSP, which amounts to the same thing.

    Let me know if that's clearer, and if you have any other suggestions.


  3. hlichang - 06/12/2014 2:10 a.m. #

    Hi Jin,

    I have about 20k in a non-registered account despite having abiut 55k in contribution room in RRSPs. I've been advised to wait until most of my income falls into the highest tax bracket before using this contribution room (guaranteed to happen in next year). Do you agree with this approach? Or should I move my non-registered holdings into the RRSP account sooner rather than later?

  4. David - 06/12/2014 5:07 p.m. #

    One observation: You don't consider other assets, such as pension plans. Having a steady stream of retirement income may change the math; if your retirement income will be high enough, it's beneficial to favour TFSA over RRSP to to have truly tax-free growth.

  5. Jin Choi - 06/12/2014 7:04 p.m. #

    @hllchang, I can't answer this because there are other variables at play, such as your age and your investment mix. I would just use the tool.

    @David, that's true. I'll think about how I can incorporate pensions into the algorithm.


  6. sberiault2 - 06/13/2014 7:57 a.m. #

    Thanks Jin for clarifying on my questions by updating the tool. Much clearer now.
    Thanks again.


  7. annemariea80 - 01/11/2016 1:43 p.m. #

    Hi Jin, in the how to Implement the Portfolio tab, What does 'Unused Contribution Room' mean for each account? I have opened a TSFA, RRSP and Margin Account with Questrade and have put 5500 in my TSFA and 6100 in both my RRSP and Margin accounts. Please excuse if the question sounds silly, I am VERY new to the world of investing and learning quickly as I can and I am not sure if the algorithm is calculating correctly because I am not filling in this query.

  8. annemariea80 - 01/11/2016 1:44 p.m. #

    In the above I meant TFSA, not TSFA, but you probably know what I mean.

  9. Jin Choi - 01/11/2016 4:47 p.m. #

    Hi annemariea80,

    TFSAs and RRSPs have contribution limits. For example, most Canadian adults can contribute up to $46,500 in total as of today. Since you put $5,500 in your TFSA, the unused contribution room is $41,000, assuming that's the only TFSA account you have. If you want to find out your contribution room for certain, you can visit the following links.

    Hope that helps,

Post your comment
Web Analytics