crop sportswoman checking information on tracker

Mini Review: Portfolio Tracker

Over the years I built my own portfolio tracker (the multi-asset tracker) and I’ve shared it on this website1. I’ll be the first to admit it’s not terribly user-friendly, which is somewhat understandable since I built it for myself.

If you want to take a look at another Google Sheet tracker that is fully documented and more user friendly, then you might want to take a look at Portfolio Tracker.

I’m not sure where I first encountered this tool; possibly on Reddit or perhaps the Financial Wisdom Forum.

Anyway, the brains behind this tool are substantial, and I bow to the organization and wizardry of the author. For people who adhere to the idea of asset allocation as a way to make investment decisions, you won’t find a better fit.

So, in a nutshell, what does it do?

  • It allows you to track the value of your portfolio across multiple brokerage accounts using multiple data sources for near-real time quotes2
  • It allows you to set up your own asset classes to track and to set individual targets for each, both at the portfolio level and at the account level3.
  • It will show you how far off you are from your targets and make high-level recommendations for where (what account) to buy/sell to get back on track

One very nice feature of Portfolio Tracker is that a given asset can be divided up into multiple asset classes. For fans of asset allocation funds (like me) this is a critical feature. With this feature you can accurately depict that (say) XEQT is 25% Canadian equity and 45% US Equity.

Once I figured out the terms used in Portfolio Tracker, it was pretty straightforward to enter my own portfolio across the 5 RRIF, 2 TFSAs and 3 non-registered accounts.

What confused me at the beginning about Portfolio Tracker is that it has more layers than I’m used to:

  • It starts with asset. Like XGRO, AOA or ZMMK. So far so good.
  • Assets belong to one (or more) asset classes. If more than one, the percentage has to add up to 100%. Asset classes are where I focus my attention: Portfolio Tracker has more of them than I need4 by default but you can define as many or as few as you like.
  • Asset classes in turn belong to a unique Asset Category)5.; a given Asset Category can be the parent of multiple asset classes (e.g. US Small Cap and US Total Market asset classes are both included in the US Equity Asset Category)
  • And asset categories roll up into Parents (stocks, bonds, short-term)

One minor point of confusion to the Canadian user is the inclusion of TIPS which is a uniquely US investment vehicle. In Canada you can buy real return bonds or buy ETFs that hold TIPS if you wish. I don’t bother with either myself.

The only limitation I could find in this tool was that it didn’t support multiple currencies. If you hold USD assets (as I do), that is a very serious limitation, but one that I could (and did) correct myself pretty easily with a few changes. When I sent a note to the provided support email on that limitation, the author promptly replied and admitted it was not the first time someone had asked about it.

I recommend this tool as a user-friendly introduction to tracking your own portfolio.

  1. I’ve built a new version based on pivot tables; on my to-do list is to make it generic enough to share. The new design lifts some ideas from Portfolio Tracker, in fact. ↩︎
  2. At one time my own tracker did this too but as it requires web scraping code it breaks pretty frequently, and in the mean time googlefinance() has become much more reliable ↩︎
  3. I’ve only really cared about portfolio level, but I have some broad rules about what goes where at the account level. TFSA: Equity only. RRIF: only place outside of the cash cushion where cash can be held. And the only place I hold bond funds. Non registered: equity only. ↩︎
  4. It divides US Equity into small cap (“US Small Cap”) and total market (“US Total Market”). This particular example I found a bit weird since logically “US Small Cap” is normally considered part (albeit a very small part) of the “US Total Market”. ↩︎
  5. Asset Categories for me are a level of detail I don’t need. If you set them to be the same as your Asset Classes then they effectively aren’t used. Although probably best to given them “AC”names so you don’t get mixed up, e.g. US Equity asset class belongs to US Equity AC asset category. ↩︎

man juggling on a tightrope against cloudy sky

What do you have to actually DO to get paid?

I’ve covered the mechanics of getting paid in retirement at what is a pretty detailed level, but maybe you’re curious about the actual, blow by blow steps of getting paid?

In a typical month, I make 6 sell trades (one for each RRIF, one for the non-registered account) and perform 2 cash movements (one withdrawal from my non-registered, and either a withdrawal from the cash cushion or an inter-account cash movement from the non-registered account to the cash cushion).

The diagram from the previous post1 I’ll include here, since it may make things a bit clearer:

Step 1. Make sure net worth is accurate in my spreadsheet

By the time the end of the month rolls around, this is normally fine. The beginning of the month has a bunch of (of mostly, but not fully, automatically reinvested) dividend payments and reward payments (aka “free money”) so the opening few weeks of the month always require tweaks to share amounts and outstanding cash amounts.

A quick login to Passiv, which connects in real time to all my retirement accounts held at Wealthsimple and Questrade, allows me to do a sanity check of my spreadsheet values versus what’s actually in all of my accounts. In the event there are discrepancies, I fix them in the spreadsheet before proceeding.

That’s what is behind step A in the diagram.

Step 2: Decide the order of priority for liquidating various assets in my non-registered accounts

Every month, I know that I will have to liquidate shares in my non-registered account, but since I have four different holdings to choose from, I have to input which ones are the most important to liquidate first2. This year, I’ve been trying to reduce dividend-paying holdings to reduce that source of income come tax-time. Another factor I consider is how far my portfolio has drifted from the asset allocation targets. Selling a fund to reduce an overweight asset class (e.g. Canadian Equity) is always a good way to take advantage of a needed asset sale.

This is an input for step G in the diagram.

Step 3: Run the Monthly Macro

The monthly macro3 does a bunch of things to help me figure out exactly what I need to do:

  • It plugs my current net worth into the VPW spreadsheet which then generates the VPW suggestion; the macro then squirrels the suggestion away
  • It takes a look at the current value of my cash cushion and squirrels that away;
  • It takes a look at the current value of the CAD/USD FX rate and squirrels that away4
  • It saves the current month’s numbers into a monthly ledger, which allows me to share with all of you things like my salary and net worth over time.

None of that, strictly speaking, is in the diagram, but is a necessary step for Step 4, below.

Step 4: Follow the step by step instructions that result

With the static copies of key bits of data (VPW suggestion, value of cash cushion, FX rate) these now plug into a specially crafted spreadsheet that provides instructions in English, step by step.

  • It tells me how many shares to sell in each of my accounts5
    • How many XGRO6 to sell based on the current share price and current cash position in each of the 5 RRIF accounts (steps E and F in the diagram; the RRIF payment amount is fixed at the beginning of the calendar year)
    • How many and which shares I need to sell in my non-registered account based on VPW’s suggestion (step G)
  • It tells me if I have to move money to my chequing account from my cash cushion or if I have to move money from my non-registered account to my cash cushion. (That’s step D or D’ in the diagram above).
  • The RRIF payments (steps E’ and F’ in the diagram) are automatic; nothing for me to do there
  • Step G’ requires a visit to Questrade’s “Move Money: Withdraw” menu in order to get money into my chequing account

In summary, I have to execute as many as 6 “sell” trades — one for each of the RRIFs7, and one (possibly more8) in the non-registered account. And then there are two “move money” transactions I have to make — one from my non-registered to my chequing account, and one representing step D/D’ (one of the two is always in play).

Step 5: Update my records

This I usually do right away since I have all the necessary data in front of me. That means

  • updating my holdings spreadsheet to reflect the reduction in XGRO in my RRIFs and the reduction of whatever holdings I liquidated in my non-registered account
  • Add the transaction in my non-registered account to adjustedcostbase.ca so I know what my capital gain/loss was.

Step 6: Wait for the Money

The non-registered cash is usually the first to arrive in my bank account, a day or two later.

Wealthsimple is next, and Questrade’s payments inexplicably arrive on different days depending on what I don’t know. Although all 4 Questrade RRIFs are set up with the same payment schedule, the 4 RRIF payments never arrive on the same date.

  1. Ok, I lied, it’s not exactly the same. I decided I didn’t like the D/D’ arrows in the original post since it wasn’t 100% accurate. ↩︎
  2. And usually, the first one listed is the only one sold. My spreadsheet can handle the scenario where there’s not enough shares held to meet the amount I’m requesting. ↩︎
  3. The macro mostly just makes static copies of these values (aka “squirrels away”) and puts them in known places so I can perform other calculations on them. Since my retirement spreadsheet uses live market data — delayed by 20 minutes, that’s what you get for relying on googlefinance(), the value of things is constantly changing. If I didn’t make static copies, it would make it hard to perform consistent calculations. ↩︎
  4. The value of my cash cushion is dependent on the USD/CAD rate since the majority of my holdings there are in USD since the interest rates are better. ↩︎
  5. It doesn’t actually need to do this for my Wealthsimple RRIF since I’m permitted to sell a dollar amount of assets instead of a number of shares with Wealthsimple’s trading tool. Handy, that. But I haven’t yet made the change to the macro. ↩︎
  6. It’s always XGRO I sell since that’s the majority CAD holding in each of the 5 RRIF accounts ↩︎
  7. My spousal RRIF and my spouse’s individual RRIF are both rather modest in size and their monthly payments are sometimes covered by cash on hand. And I have cash on hand there because Questrade doesn’t offer fractional trading for CAD listed ETFs. . ↩︎
  8. My spreadsheet is fancy enough that I can sell up to 3 different non-registered assets, but only in the scenario where I reduce the holding of a given asset to 0. ↩︎
assorted sushi and sashimi platter top view

What’s in my retirement portfolio (April 2026)?

This is a monthly look at what’s in my retirement portfolio. The original post is here.

Portfolio Construction

The retirement portfolio is spread across a bunch of accounts:

  • 5 RRIF accounts
    • 3 for me (Questrade, Wealthsimple)
    • 2 for my spouse (Questrade)
  • 2 TFSA accounts (Questrade)
  • 4 non-registered accounts, (1 for me, 1 for my spouse, 2 joint, all at Questrade)

The view post-payday

I pay myself monthly in retirement1, so that’s a good trigger to update this post. On April 24 at mid-day, this is what it looked like:

The portfolio is dominated by my ETF all-stars, (and if not an all-star, they are probably on the Magnificent Seven ETFs list). The charts look almost identical to the previous month, in spite of some conversion of AOA to XGRO. (I use Norbert’s Gambit to move USD denominated funds into CAD on a quarterly basis since my spending is all in CAD).

Plan for the next month

The asset-class split looks like this; you can read about my asset-allocation approach to investing over here.

It’s looking pretty close to the targets I have, which are unchanged:

  • 5% cash or cash-like holdings like ICSH and ZMMK
  • 15% bonds/income (most are buried in XGRO and AOA, rest are in XCB)
  • 20% Canadian equity (mostly based on ETFs that mirror the S&P/TSX — HXT and XIC)
  • 36% US equity (dominated by ETFs that mirror the S&P 500)
  • 24% International equity (mostly, but not exclusively, developed markets)

The alignment with target is what drives my investment decisions; and here I see that the international equity portion of my portfolio has drifted 1% below target, which is usually the threshold whereby I start to pay attention. Do I need to take action to increase my International Equity portion, or is my target something to reconsider? I have some thinking to do.

Overall

Part of using VPW2 as a strategy is the need to calculate your retirement net worth on a monthly basis. Last month’s meltdown is yet another speed bump that we’ve managed to survive, and April 2026 brings me to another all time high of my retirement net worth, as compared to January 20253.

My VPW-calculated salary continues to increase, albeit at a more modest rate, as expected.

  1. Questrade, although my RRIF settings are for the last day of the month, seems to need a lot of time to process the payment; I’ve learned that unless I have cash in the account at least 3 business days prior to the last business day, the automatic payment won’t happen. ↩︎
  2. Variable Percentage Withdrawal, my chosen decumulation strategy. ↩︎
  3. In constant dollars. I should really adjust my net worth to show inflationary impacts but it’s more calculating than I feel like doing at the moment. ↩︎
close up view of colorful liquids in laboratory glasswares

Are my portfolio’s asset allocation targets “correct”?

A key aspect of my investment philosophy is to have targets for each of the asset classes I invest in. Because I like to keep things simple, my asset classes are rather broad1:

  • Cash, which includes ultra-short-term bonds (bonds with durations measured in days, not years)
  • Bonds2, which means corporate and government bonds from multiple geographies with various and assorted durations
  • Canadian Equity: Canadian stocks
  • US Equity: US Stocks
  • International Equity: Stocks that don’t sit in North America

The targets I’ve used for a few years now are

  • 5% Cash
  • 15% Bonds
  • 20% Canadian Equity
  • 36% US Equity
  • 24% International Equity

But where did those target numbers come from?

The easy answer is that they are based on the target number of the Canadian 80/20 fund I use in my retirement portfolio, namely XGRO, one of my ETF all-stars. XGRO’s makeup is actually

  • 20% Bonds
  • 20% Canadian Equity
  • 36% US Equity
  • 24% International Equity

The immediately obvious difference between XGRO and my target is the presence of “Cash” in my target, something XGRO doesn’t have3. “Cash” was a recent arrival to the portfolio, a decision I took to accommodate the presence of a Cash Cushion in my portfolio. The Cash Cushion is an integral part of my chosen decumulation strategy, VPW. So rather than keep the Cash Cushion as something set apart from my asset allocation model, I chose to create a new asset to track. 5% was a small and round number, and is about 2x the value of the Cash Cushion today.

That 5% is almost all invested in ultra-short term bond funds so perhaps you could also argue that I never stopped holding 20% bonds in my portfolio4; I just segmented that category a bit more precisely.

But why 20% bonds? Shouldn’t a retiree have a greater portion of bonds to protect against market downturns5? Habit, I suppose. I’ve held 20% bonds for decades now, since well before I retired. I don’t see any reason to change that now. I’m hoping my retirement will go on for decades, and so having a good chunk of equity is a good way to make sure my portfolio returns outpace inflation and offer some protection against outliving my money.

So 80% equity it is; but are the allocations between Canada, the US and International markets the right allocations? Like I said, I basically picked the equity targets to match what the percentage allocations are in XGRO. If I look a bit further at the other *GRO funds (TGRO, VGRO, ZGRO), I find that XGRO is a bit of an outlier with respect to International Equity allocation:

ETF% CAD% US% Int’l
XGRO (Blackrock)203624
TGRO (TD)626.735.617.8
VGRO (Vanguard)253520
ZGRO (BMO)204020
Average for all22.936.720.4

This tells me a few things

  • My US allocation target of 36% is justified by looking across multiple funds
  • My International Equity target is probably too high if I rely on the wisdom of (small) crowds.

Since I like dealing with round numbers, a case could certainly be made for my targets to instead look like

  • 23% Canadian Equity
  • 37% US Equity
  • 20% International Equity

Using these targets and looking at my current holdings would require me to move about 3% of my International equity holdings into Canadian equity.

I can control my equity allocations in normal monthly transactions, somewhat — since a good chunk of my retirement salary is funded by selling non-registered assets, I get to choose (somewhat) what equity class to liquidate. Here’s the problem I see — my International Equity component in my non-registered account is SCHF, which trades in USD. Liquidating SCHF is possible. but the small problem with SCHF is that it’s denominated in USD, and thanks to my current credit card lineup, I don’t have a way (or need) to spend USD natively anymore.

Sigh. Actually, there’s really no good reason for me to hold *any* USD assets in my non-registered accounts. USD assets are now, for me

  • Difficult to spend as USD
  • Problematic because they are counted against my “foreign income”, per CRA’s T1135; hold too much foreign income, and you have to file additional paperwork at tax time. I hate paperwork.

So, in conclusion,

  • I think I will shift my asset allocations slightly, tilting a bit towards Canadian Equity at the expense of International Equity; this will take time as I draw down SCHF from my non-registered portfolio
  • I will get rid of USD-denominated assets from my non-registered accounts. This will start with reversing the decision I took about a year ago when I went with a majority of ICSH in my Cash Cushion.
  1. 5 categories could easily morph into 20 if you were particular about things. For example, bonds could be split by geography, and/or by duration and/or by bond quality. The US and Canadian equity categories could be split into sectors and/or company size. The international equity categories could be split by region, country, sector, company size. The possibilities are endless, and so could the number of assets you actually hold to meet them. I don’t claim that my 5 are the right ones for you, but I’ve used them for quite a while now. ↩︎
  2. For the longest time, and for many earlier posts, I refer to this segment as “Income”. This made some sense in the days where I didn’t track “Cash” as a distinct category. But it’s time to move on. What lives here are bonds, and only bonds. ↩︎
  3. Of course, all ETFs hold some portion of cash, it’s pretty much unavoidable as you shift assets, collect dividends and so on. I don’t worry about this sort of thing; my assumption is that the ETF manager is doing their job and adhering to their published targets. That MER has to be worth something, right? ↩︎
  4. Questrade (my primary broker) doesn’t offer high interest savings accounts; at my previous broker (QTrade) this cash cushion really was cash held in a high interest savings account. ↩︎
  5. And there will always be market downturns. SORR is a common acronym thrown around; it stands for “Sequence of Returns Risk”. Basically this is the admission that there will be market downturns during retirement; SORR is the risk that those downturns happen really early in retirement and blow up your well-crafted plan because you are forced to sell into a down market. My mitigation strategy concerning SORR? I can always find a job if things got really bad… ↩︎
  6. The reason TGRO’s numbers aren’t round is because the other *GRO funds hold 80% equity while TGRO holds 90% equity. I’ve scaled TGRO’s holdings accordingly. ↩︎
abandoned plane wreck on icelandic landscape

PortfolioPilot Review: Any better?

I last took a look at PortfolioPilot a year ago, and since their email frequency seems to have ticked up, I figured I’d give it another look.

If you don’t feel like looking at the old review, the TL/DR is “good promise, errors in the data make me hesitant to recommend it”.

And guess what? Nothing has changed in that regard. All the lovely formatting in the world, all the tailored recommendations, all the graphs and charts are pretty much useless if PortfolioPilot can’t accurately reflect what’s underneath the ETFs in my portfolio. 

And, as I’ll show with a few examples, both of which I reported to support, the errors are not minor.

Now, bear in mind that I’m a big fan of all-in-ones, and these are essentially “funds of funds”, so if you DON’T hold these kinds of assets, then your perception of PortfolioPilot’s usefulness might be quite different. For me, if PortfolioPilot doesn’t have an accurate handle on what I actually own, it can’t have an accurate handle on anything else: the risk calculations, the forecasts, the recommendations — all are suspect.

Problem number 1: PortfolioPilot doesn’t know what’s in XGRO

So here’s the breakdown PortfolioPilot shows when you give it a portfolio with just XGRO in it:

PortfolioPilot’s Assessment of the “By Holdings” look-through of XGRO

The first few entries are accurate, per the XGRO product page. As of April 17, 2026, it reports:

  • 36.31% in ITOT, the iShares Core S&P Total US Stock Market1
  • 20.31% in XIC, the iShares Core S&P/TSX Capped Composite2
  • 20.21% in XEF, the iShares Core MSCI EAFE ETF3

So it’s got about 3/4 of the holdings right so far. PortfolioPilot now reports that XGRO holds 12.3% in a BondBloxx ETF. This is dead wrong. I’ve never heard of it, and “BB rated USD High Yield” sounds rather speculative, not something I’d want to invest 10% of my hard-earned money in. How can this kind of error creep in? My friend google gives a hint for those in the know:

Google Gemini’s take on BondBloxx BB Rated HY Corporate Bond ETF

The clue? The symbol of this ETF per Google Gemini is “XBB”. XGRO does not hold XBB on any US market4. XGRO does, however, hold XBB.TO, which, admittedly, is also a bond fund, but its description is a lot more boring:

Why XBB? Low cost, broad exposure to the Canadian investment grade bond market

XBB by Bondbloxx is clearly a much different animal than XBB by Blackrock, and that’s a pretty big miss.

There’s more to shake your head at, though. PortfolioPilot has “other equities” sitting at 7% of the portfolio. This is also wrong. XGRO is an 80/20 fund, which means it’s 80% equity. 75% of it we’ve already talked about (ITOT, XIC, XEF), and the other 5% is the next line in the PortfolioPilot report, namely XEC, the iShares MSCI Emerging Markets fund. So by PortfolioPilot’s estimation, XGRO is about 88% equity, which is off by 8 percentage points.

Anyway, two pretty serious errors for a fund that makes up 15% of my retirement portfolio.

But perhaps it’ll do better with a fund based in the USA?

Problem #2: PortfolioPilot doesn’t know what’s in AOA either

AOA is even a more important fund for me at the moment: it’s 50% of my portfolio, give or take. So what does PortfolioPilot have to say about what’s underneath?

PortfolioPilot’s Assessment of the “By Holdings” look-through of AOA

I don’t really know where to begin with this breakdown. Perhaps it’s faster to point out what it has right:

  • iShares US Aggregate Bond ETF (IUSB) percentage is correct

The rest is pretty much random:

  • PortfolioPilot claims the top holding of AOA is a Vanguard fund. Given that AOA is a product of iShares (a major competitor of Vanguard) this seems rather unlikely. And it is, I assure you, completely wrong.
  • PortfolioPilot correctly says that AOA holds the S&P 500 ETF (IVV) but the percentage is totally wrong. Per the AOA product page, it sits at about 45%
  • The other three major holdings (namely “other”, iShares Real Estate and SPDR Gold) are all wrong. AOA holds none of these.

Of course, my test is a very small sample, but important to me. If you do use PortfolioPilot, I’d make very sure that it accurately reflects what you actually own; otherwise the rest of the service cannot possibly work correctly. I’ll let you know if/when the situation at PortfolioPilot changes, but until it does, I’m not trusting it even at its free tier.

  1. AKA “US Equity” to my way of thinking of asset allocation ↩︎
  2. AKA “Canadian Equity” ↩︎
  3. AKA “International Equity” ↩︎
  4. Recall that PortfolioPilot is a US based tool that happens to support Canadian-listed ETFs, but to find them you have to add “.TO” to the end of the Canadian symbol ↩︎