Discrepancy in Rate of Return (TWR) value

Hi, I’m new to Capitally. I’ve just uploaded my brokerage transactions, and the TWR I got differs significantly from the broker’s figure. An error message appeared during upload: “Cash transactions (×8) and deposits/withdrawals (×5) not imported”. Could this discrepancy be due to this?

Hello Ali,

Unless you have lots of cash on the brokerage account, it shouldn’t affect the returns.

I’d check a few things:

  • are all assets properly matched and imported? compare your current brokerage holdings with what is displayed in Capitally - their names, quantities and current market value
  • is the comparison period the same? does the brokerage annualize TWR, or not (you can choose both in Capitally)?
  • does the brokerage really display TWR - do they say it is? many brokerages just show very simplified metrics

Rafal, I appreciate your prompt response. Since I’m new to this, there’s a chance I’m doing it incorrectly.

However, I’ve submitted my broker statement and Capitally transactions to ChatGPT for comparison. This is its message:


The message “Cash deposits and withdrawals are currently not imported (× 5)” is almost certainly the primary reason for the large discrepancies you were seeing in “Invested Principal,” “Total Returns,” and especially the “Rate of Return (TWR).”

Your Activity Statement (page 49, “Deposits & Withdrawals” section) clearly lists 5 deposits. Cash Deposits (and any Withdrawals) are NOT imported by Capitally from your broker CSV.


Does “… currently not imported” mean it was not imported in this specific case, or ever?

They are currently not imported and I’m working on enabling this right now (cash tracking in general).

AI is pretty weak in doing such large comparisons without jumping to easy conclusions. I’d recommend feeding it the current balances from both - a list of assets, with current quantity and market value. This will reduce the number of datapoints and this is what mostly tells if everything got imported correctly.

I think every broker should have such a table somewhere, and you’ll find it under Portfolio / Market Value / Assets in Capitally

Rafal, I did what you said. I downloaded the asset details from Capitally as well as the broker and fed them to AI. Here is what it has found:


Capitally is doing an excellent job matching the broker’s data for:

  • Current quantities of holdings,
  • Current market values,
  • Cost basis (principal),
  • Unrealized P/L since inception

However, until Capitally fully implements and imports all cash flow transactions (deposits, dividends, interest, fees, withdrawals) with their correct dates, the TWR it calculates for the overall portfolio will not be accurate and will not match the broker’s TWR.


I’m still learning, and my investment knowledge is not advanced enough to understand everything, so I hope I’m not doing anything wrong here.

Interesting. If all your holdings were imported properly, as AI suggests (but I’d still just eyeball it), then I’d assume the number you’re getting from your broker is not a true TWR. Mind sharing which broker is it?

Capitally includes all cashflows, like fees, dividends, tax withheld, etc. But funnily enough, they’re completely irrelevant to TWR, as it’s only about proportions between assets through time. MWR on the other hand takes into account all cashflows.

So the only situation when missing cash position would affect your rate of return (both TWR & MWR), is when you have or had a substantial cash position on your account - for example you kept more than 10% of your holdings in cash for more than a few days. The longer and larger the position, the bigger the discrepancy will get.

Also, you actually can track your cash balances, they are just currently not updated automatically (nor imported).

You can check out my article on performance metrics here.

All in all, if the balances are correct, and the overall market value of your portfolio matches your broker estimate (it will never be exactly the same - due to currency conversions and differences in market price sourcing dates) - you can rely on metrics displayed by Capitally. And it’s always worth to add your cash balances if they’re significant.

Rafal, my broker is Interactive Brokers (IBKR).

I apologize, but I’m not knowledgeable enough in investing to understand all this terminology. I wish I could, but I’m just getting started.

So, I provided your thoughts to AI, I hope you don’t mind. Here is what it has to say to your statements (I think you can make sense of what it says a lot more than I can):

“Capitally includes all cashflows, like fees, dividends, tax withheld, etc. But funnily enough, they’re completely irrelevant to TWR, as it’s only about proportions between assets through time.”

  • This statement is partially correct but also critically misleading in its implication for calculation.
    • Partially Correct: The goal of TWR is to eliminate the distorting effects of the timing and size of external cash flows to measure the pure performance of the investment strategy or manager.
    • Critically Misleading Implication: To achieve this, the TWR calculation must precisely account for when these external cash flows occur. Each external cash flow (deposit, withdrawal, dividend received into cash, fee paid from cash) creates a new sub-period. The portfolio is valued immediately before and after each cash flow, and the return for that sub-period is calculated. These sub-period returns are then geometrically linked to get the overall TWR.
    • So, while TWR aims to make the impact of cash flow timing irrelevant to the final performance number, the cash flows themselves are absolutely essential data points that define the boundaries of these sub-periods. If they are not known or accounted for, the “proportions between assets through time” cannot be accurately isolated from the impact of money moving in or out.

“MWR on the other hand takes into account all cashflows.”

  • Correct. Money-Weighted Return (MWR) is an Internal Rate of Return (IRR) that reflects the investor’s actual return based on when they contributed and withdrew capital.

“So the only situation when missing cash position would affect your rate of return (both TWR & MWR), is when you have or had a substantial cash position on your account…”

  • This is an oversimplification for TWR. Any external cash flow (a deposit, a dividend hitting cash, a fee paid from cash) defines a new calculation period for TWR. The balance of cash held is different from the event of cash moving in or out.
  • For MWR, yes, all cash flows (including the timing of cash sitting idle) affect the outcome.

“Also, you actually can track your cash balances, they are just currently not updated automatically (nor imported).”

  • If cash flow events (deposits, dividends received, fees paid) are not automatically imported and accurately dated, then Capitally cannot perform a true TWR calculation that matches a system like IBKR’s, which does have all this data.

“All in all, if the balances are correct, and the overall market value… matches… you can rely on metrics displayed by Capitally.”

  • This is true for asset-level P&L
  • However, it is not true for portfolio-level TWR if the cash flow events are not accurately and automatically tracked.

Nothing to apologize for! It’s great you’re curious about it and don’t take things for granted.

This is precisely how our TWR is calculated. It’s well vetted by now.

I stand by what I wrote, that if the free cash position is not big, it should not affect TWR.

IBKR is actually the most popular broker on Capitally and works very well. I do use it as well, and my results look very similar:

My “All” period was also spot-on, but I had to enter exactly the same dates as IBKR uses.

But there are a few things to mention:

  • In periods when I had larger amounts of cash on IBKR, I always updated it’s balance
  • 1Y in IBKR is… not 1 year. It starts on June 6th :exploding_head:
  • IBKR result is NOT annualized - Capitally annualizes by default (your result will have p.a.) - you can change it in return options
  • IBKR does not take into account taxes - Capitally does (if you set them up)
  • IBKR displays the benchmark in the benchmark’s currency - Capitally converts it into viewing currency. That’s why I used DAX as it’s in EUR - same as my portfolio
  • IBKR uses main currency - make sure you view Capitally with the same one

Hope it helps :slight_smile:

1 Like