Skip to content
DDavinchu TradeOS
FeaturesProductsDashboardWho it's forPricingPartnersFAQBlog
EnglishEspañolРусскийУкраїнська中文PolskiDeutsch
Log inSign up
FeaturesProductsDashboardWho it's forPricingPartnersFAQBlogLog inSign up
Davinchu blog

Portfolio return with deposits: TWR and XIRR explained

Why «start vs end» lies when money was added, how to calculate time-weighted (TWR) and money-weighted (XIRR) return with a worked example, and which one to look at.

PublishedOctober 11, 2026UpdatedOctober 15, 2026AuthorDavinchu teamReading time7 min

Articles

All articlesDavinchu TradeOS overviewHow to use MT5Compound interestForex trading sessionsFunding rateCopy trading: picking a traderGrid and martingale riskMT5 tester vs live accountYour first 30 days in tradingStop loss and take profit in MT5Margin, margin call, stop outMT4 vs MT5Edgewonk vs DavinchuTradezella, TradesViz, DavinchuFX Blue vs DavinchuIntelinvest, Snowball, DavinchuLiquidation price: Bybit, BinanceInvestment tracking: Excel or appChecking an EA before buyingSelling EAs and signalsMT5 alerts in TelegramWhy an EA isn't tradingVPS for an EAPassing a prop challengeEvaluating a strategyTrading plan and checklistTilt and overtradingMT5 investor passwordInstalling an EA in MT5Showing results to investorsReturn: TWR and XIRRBybit trade historyCrypto portfolio trackingReviewing students' journalsTrading teamProfit factorTrading expectancyRisk/reward ratioThe 1% ruleSharpe, Z-score, AHPR, GHPRTrailing vs static drawdownLimiting losses in MT5Crypto trading journalRead-only API keyLot size calculationTrading journal templateMT5 account monitoringMyfxbook alternativesTrading journal for MT5Prop firm risk managementCalculating drawdownStocks from IBKR and T-BankJournals and monitoring compared

In short. If money was deposited or withdrawn, «it was $10,000, now it is $15,200» is not a return: part of the growth is your own deposits. There are two honest ways. TWR (time-weighted return) removes the effect of deposits and shows the quality of the investments themselves. XIRR (money-weighted return, MWR) accounts for when and how much you deposited and shows what happened to your money.

Why «start vs end» misleads

A one-year example. On January 1 the account holds $10,000. By July 1 the portfolio grew to $11,000 and you added $5,000 — now $16,000. The market fell in the second half, and on December 31 the account holds $15,200.

  • «Start vs end»: (15,200 − 10,000) / 10,000 = +52% — wrong, $5,000 of the growth is a deposit.
  • Net profit: 15,200 − 10,000 − 5,000 = +$200.
  • Profit over total contributions: 200 / 15,000 ≈ 1.33% — closer, but it ignores that the $5,000 worked for only half a year.

TWR — time-weighted return

The period is cut into sub-periods at every deposit and withdrawal. Each sub-period return is calculated without the cash flow, and then the returns are chained:

TWR = (1 + r₁) × (1 + r₂) × … × (1 + rₙ) − 1, where rᵢ = value at the end of the sub-period / value at its start − 1

In the example: first half 11,000 / 10,000 = 1.10; second half 15,200 / 16,000 = 0.95 (the start of the second sub-period already includes the deposit). TWR = 1.10 × 0.95 − 1 = +4.5%. The deposit does not affect the result: the investments would have performed the same with any amount in the account.

$10,000$12,000$14,000$16,000Jan 1Jul 1Dec 31Account valueWithout the deposit (TWR)+$5,000 — deposit$11,000$16,000$15,200$10,450TWR +4.5%
The account shows $15,200, but $5,000 of it is a deposit. TWR multiplies the sub-period returns before and after the deposit and shows what would have happened to the same $10,000: +4.5% for the year.

Use TWR to judge a strategy or a manager and compare them with an index or another portfolio: the decision when to add money is not the strategy's, so it is unfair to include it. There is one requirement — the portfolio value must be known at each deposit or withdrawal.

XIRR — money-weighted return

XIRR is the annual rate r at which all your contributions, grown at that rate to the end of the period, add up to the final value. For the example:

10,000 × (1 + r)¹ + 5,000 × (1 + r)^0.5 = 15,200

The first contribution worked for a year, the second for half a year. The equation is solved iteratively (the XIRR function in Excel and Google Sheets), the answer is r ≈ +1.6% per year. A quick approximation is the Dietz method: profit divided by time-weighted capital, 200 / (10,000 + 5,000 × 0.5) = 1.6%.

XIRR is below TWR because the larger amount was invested during the weak half. The opposite case: the same $10,000 fell to $9,000 by July, you bought $5,000 more (now $14,000), and by year end the portfolio grew to $15,400. TWR = 0.90 × 1.10 − 1 = −1%, while XIRR ≈ +3.2%: the strategy lost slightly over the year, but your money made a profit thanks to buying the dip. To run your own dates and amounts — any number of deposits and withdrawals — use the TWR and XIRR return calculator.

Which return to look at

QuestionMetric
Does the strategy or manager perform well?TWR
How does the strategy compare with an index or another portfolio?TWR
How much did my money earn, given when I contributed it?XIRR
Did my decisions to add and withdraw help or hurt?XIRR minus TWR

Common mistakes

  • Counting a deposit as return. Any growth after a contribution must be separated from the contribution itself — otherwise the return is overstated.
  • Annualizing a very short period. +3% in two weeks annualizes to more than 100% — that is compounding arithmetic, not a forecast.
  • Ignoring dividends and fees. Payouts left in the account are income, not deposits; fees reduce the result.
  • Comparing one investor's XIRR with another's TWR. They answer different questions — compare like with like.

How Davinchu calculates it

In «Investments», the «Overview» tab shows both metrics — «TWR return» and «XIRR / MWR». The portfolio records its value every hour, and TWR is calculated from these snapshots: a deposit, a purchase with new money or an imported position is a cash flow, not income. XIRR appears once the portfolio has at least 30 days of history. Next to them are Max Drawdown from the peak of the TWR index, annual volatility and Sharpe / Sortino from daily returns (with the risk-free rate from the portfolio settings, 4% by default). The «Analytics» tab adds a benchmark comparison (BTC, ETH or 60/40 BTC-ETH) and monthly returns, and the «Investor report» PDF shows both returns with a note on the method. Deposits and withdrawals from Interactive Brokers and T-Bank are loaded automatically. The «Investments» section is on every plan.

More in «Tracking stocks from Interactive Brokers and T-Bank» and on the «Davinchu for investors» page. Risk metrics are covered in «Sharpe ratio, Z-score, AHPR and GHPR».

Journal, risk manager and analytics in one dashboard

Free forever: 2 accounts, a journal and AI reviews. Setup takes 5–10 minutes.

Start for free
DDavinchu TradeOS

Analytics platform for traders and teams.

Products

Trading journalAccount analyticsAccount monitoringMT5 risk managerAI analyticsTrading calculators and toolsAll featuresWho Davinchu is for

Company

About usPricingSecurityPartnersBlogTrading glossaryDocumentationHelp centerContacts

Support

DocumentationHelp centerTelegram supportTelegram channel[email protected]

Legal

Privacy policyTerms of serviceRefund policyAML policy
© 2026 Davinchu. All rights reserved.Premium trading analytics platform
Davinchu dashboard demoOpen the live dashboard →