Time-Weighted Return (TWR) — Exact Linking or Modified Dietz

Enter a series of dates, market values, and net flows. We compute subperiod returns and link them into a clean, time-weighted total. 100% client-side.

Inputs

TWR links returns between valuation dates and neutralizes cash-flow timing.

Valuation & Flow Table

Enter one row per valuation date. For each row after the first, set the market value and the net external flow that occurred since the prior valuation (positive=inflow, negative=withdrawal). For Modified Dietz, optionally add a flow weight (0–1 fraction of the period the cash was invested) or a number of days.
Date Market value Net flow since prior Flow weight (0–1) Flow days
Tip: You can paste CSV/TSV lines into cells in order: Date,Value,Flow,Weight,Days.

Results

Total TWR
Annualized (CAGR)
Periods linked
Span (days)
Subperiod details
FromToValue₀FlowValue₁Weightrᵢ

📈 5 Fun Facts about Time-Weighted Return

Olympic standard for managers

GIPS performance reports rely on time-weighted return because it strips out the impact of client deposits and withdrawals—so managers can’t “win” by timing cash calls.

Fair-score rule

Order doesn’t matter

When you link subperiods, the geometric product makes the same total TWR no matter how you reorder the periods—unlike arithmetic averages that depend on sequence.

Geometric magic

Dietz was space-age

Peter O. Dietz coined the Modified Dietz method in the late 1960s—the same era NASA was landing on the Moon. It’s still the go-to shortcut when daily valuations are missing.

History

One missed valuation can swing it

If a volatile day is absent from the valuation schedule, TWR can look rosier or harsher than reality. Daily data keeps the “link” honest.

Data quality

Flow immunity isn’t free

Neutralizing cash-flow timing demands more valuations. The payoff is a return that isolates skill, but the cost is keeping a cleaner book of daily (or at least frequent) prices.

Trade-off

Understanding Time-Weighted Return (TWR)

If you want to measure investment performance without letting deposits and withdrawals distort the result, time-weighted return is the go-to method. This calculator helps you compute TWR by breaking your portfolio history into smaller chunks, calculating each period's return, then linking those returns together. The goal is a clean view of how the investments performed, not how well-timed your cash flows were.

Think of it this way: if you add money right before a market rally, your account balance jumps, but that does not mean the strategy was stronger. TWR neutralizes that effect by calculating performance between valuation dates and ignoring external cash flows inside each subperiod. That makes it a standard metric for fund managers, advisors, and anyone comparing portfolios over time.

How to Use This Calculator

  1. Enter the starting value for the first period.
  2. Add any cash flows (deposits or withdrawals) that occurred within each period.
  3. Enter the ending value for each period on its valuation date.
  4. Repeat for as many periods as you have, then calculate.
  5. Review the total TWR and the annualized return (CAGR).

Example: Suppose your portfolio starts at $10,000, you add $2,000 halfway through the month, and it ends at $12,300. A simple return based on start and end values can be misleading because it includes the deposit. TWR isolates the market performance by splitting the month into subperiods and linking them: \( (1+r_1)\cdot(1+r_2)\cdots(1+r_n)-1 \). This produces a return that reflects investment gains or losses, not the timing of your contribution.

Why TWR and Modified Dietz Both Matter

Time-weighted return assumes you have valuations at each cash flow boundary. If you do not have frequent valuations, the Modified Dietz method provides a close approximation by weighting cash flows by how long they were invested. It is widely used in portfolio reporting and is helpful for personal finance, brokerage accounts, and small investment records.

  • Subperiod TWR (linking): assumes flows occur exactly at valuation points, so the subperiod formula is \( r_i = \frac{V_1 - V_0 - F}{V_0} \).
  • Modified Dietz: when flows happen inside the period and you do not have daily valuations. Use \( r_i = \frac{V_1 - V_0 - F}{V_0 + wF} \), where \( w \) is the fraction of the period that the average flow was invested.

After linking, you can annualize over the exact day count: \( \text{CAGR} = (1+\text{TWR})^{365.2425/\text{days}} - 1 \). This makes it easy to compare performance across different time spans, such as a six-month period versus a three-year track record.

Educational only — not financial advice. Fees, taxes, pricing sources, and valuation timing can affect results.

Explore more tools