§ Platform

One engine computes every figure. Every view reads the same book.

  • 01→NAV & Fund AccountingDaily NAV from chain state under your valuation policy. Locked periods, LP statements, a trail to the block.
  • 02→Performance & AttributionPnL and returns computed from every transaction since inception, and what earned them: yield or price.
  • 03→Risk & ExposureLook-through exposure: every LP token, receipt and vault share unwrapped to the last token, block by block, with leverage.
  • 04→Data & ReconstructionEvery wallet replayed from its first transaction into one reconciled ledger, also served by the Portfolio API.
  • 05→Automated NAV ReportsA period's report built from the book in one click, locked so it can't change, shared under your brand.
  • 06→All featuresRaw and adjusted data, price feeds, versions, formula mode and reports shared as a link.

§ Use cases

The same book, read by the people who have to sign off on it.

  • 01→Hedge funds & asset managersA track record from inception and a NAV your LPs and auditors can re-perform.
  • 02→Vault curatorsAudit-ready NAV and attribution for every vault, benchmarked against on-chain rates.
  • 03→Allocators & family officesEvery allocation rebuilt from the chain and read the same way, in one book.
  • 04→Fund administratorsA classified, reconciled ledger your accounting stack accepts, instead of wallet exports.
  • 05→DAOs & treasuriesOne view of a treasury spread across protocols, chains and multisigs, ready for the board or the forum.
DocsBlogData API
Book a demo
Enter appEnter app

Platform

  • NAV & Fund Accounting→
  • Performance & Attribution→
  • Risk & Exposure→
  • Data & Reconstruction→
  • Automated NAV Reports→
  • All features→

Use cases

  • Hedge funds & asset managers→
  • Vault curators→
  • Allocators & family offices→
  • Fund administrators→
  • DAOs & treasuries→
  • Docs
  • Blog
Data API→

Vaults, yields and lending markets from every major protocol and chain, through one API.

Book a demo
Dark mode
Enter appEnter app

Audit-ready NAV, from the first block. Every wallet, protocol and chain in one portfolio, reconciled to the chain.

Platform

  • NAV & Fund Accounting
  • Performance & Attribution
  • Risk & Exposure
  • Data & Reconstruction
  • Automated NAV Reports
  • Features

Use cases

  • Hedge funds & asset managers
  • Vault curators
  • Allocators & family offices
  • Fund administrators
  • DAOs & treasuries

Data API

  • Overview
  • Pricing
  • Get your API key

Resources

  • Blog
  • Documentation
  • Methodology
  • API reference

Company

  • Book a demo
  • Sign in
  • team@syncrone.fi

Syncrone provides portfolio analytics and reporting software. Finalized reports are a locked record of the period and are not an audit opinion. Portfolio figures shown on this site belong to an illustrative sample fund. Nothing here is investment advice.

© 2026 Syncronesyncrone.fi
← All posts

Performance

TWR, Modified Dietz and XIRR: what each one tells an LP

Three standard return methods answer three different questions. A worked example with a mid-quarter subscription, and the on-chain flow errors that corrupt all three.

Published
7 Oct 2026
Reading time
6 min
Author
Syncrone Research
Category
Performance

Related product

  • Performance & Attribution→

An LP asks how the fund did last quarter. There are at least three correct answers, and they can differ by several points. Time-weighted return (TWR), Modified Dietz and XIRR are all standard and all defensible, but they answer different questions. Choosing which to lead with is a disclosure decision. Getting their inputs right is an accounting one, and on-chain, the inputs are where most errors start.

Three methods, three questions

Time-weighted return

TWR measures the strategy. The period is split into sub-periods at every external cash flow, each sub-period's return is computed on the capital actually invested during it, and the results are chain-linked:

TWR = (1 + r₁) × (1 + r₂) × … × (1 + rₙ) − 1

Because each sub-period begins after the flow, the size and timing of subscriptions and redemptions drop out. The fund's TWR for a quarter is the same whether LPs added $1M or $100M during it. That is why TWR is the standard for comparing managers and for benchmarking, and why it needs a valuation at every flow date. The GIPS standards require portfolios to be valued on the date of any large external cash flow for exactly this reason.

Modified Dietz

Modified Dietz computes one return for the period without intermediate valuations. Each flow is weighted by the share of the period it was invested:

R = (V₁ − V₀ − F) ÷ (V₀ + Σ wᵢ × Fᵢ)

V₀ and V₁ are the start and end values, F is net external flows, and wᵢ is the fraction of the period remaining after flow i. The result is profit over average invested capital. That makes Modified Dietz a money-weighted measure: a close approximation of the period's internal rate of return, not of TWR. Chain-linking monthly Modified Dietz returns approximates TWR, and the approximation degrades as flows grow relative to net asset value (NAV) and as prices move within the month.

XIRR

XIRR is the internal rate of return on dated cash flows: the annual rate at which the present values of the starting value, every flow and the ending value sum to zero.

Σ CFₖ ÷ (1 + XIRR)^(dₖ ÷ 365) = 0

Each CFₖ is one of those amounts, negative for capital going in, positive for capital coming out and for the ending value, and dₖ is its number of days from the start of the period. XIRR answers the investor's question: what did these dollars earn, given when they went in? It is annualized by construction.

A worked example

A hypothetical fund has a NAV of $40.0M at the close of 30 Jun 2026. Over the 92 days of the third quarter:

DateEventNAV
2026-06-30Start of period$40,000,000
2026-08-15Sub-period 1 return of +8.0%$43,200,000
2026-08-15$20,000,000 subscription lands, day 46 of 92$63,200,000
2026-09-30Sub-period 2 return of −5.0%$60,040,000

The strategy gained $3.2M on $40.0M, then lost $3.16M on $63.2M. Profit for the quarter is $40,000.

MethodQ3 2026
TWR+2.6%
Modified Dietz+0.1%
XIRR, annualized+0.3%
End NAV over start NAV, flow ignored+50.1%

TWR is 1.08 × 0.95 − 1. Modified Dietz is $40,000 over $50.0M of average capital: $40.0M, plus half the subscription because it was invested for 46 of 92 days. That is +0.08% unrounded, which matches the period's internal rate of return to two decimals. XIRR states the same economics as an annual rate.

All three are right. The strategy returned +2.6%. The fund's capital, weighted by when it arrived, earned almost nothing, because $20.0M of it arrived just before the drawdown. The gap between the two is information about the timing of flows, not about the manager's skill. The last row is what a tool that doesn't classify flows reports: the subscription counted as profit.

Annualization is the second trap. Annualize the quarter's TWR and +2.6% becomes +10.7%, a figure nobody earned. The GIPS standards prohibit annualizing returns for periods shorter than a year. XIRR is annualized by construction, so for a period under a year, quote the period figure or label the rate clearly, and never set it beside an unannualized TWR as if the two were comparable.

Which to show an LP

SituationLead withShow alongside
Open-ended fund, LPs choose when to subscribe and redeemTWR, net of fees, monthly since inceptionDollar PnL for the period
Closed-end or drawdown vehicle, manager calls and returns capitalMoney-weighted returnTWR, for comparison with peers
One LP's capital accountThat LP's XIRR, from their own flow datesThe fund's TWR
Treasury deploying its own capitalMoney-weighted returnTWR against an on-chain benchmark rate
Sleeve with no valuations inside the periodModified Dietz, labelled as suchDollar PnL

The logic is control. Where LPs decide the timing, the manager shouldn't be credited or penalized for it, and TWR removes it. Where the manager decides the timing, it is part of the decision being evaluated, and a money-weighted figure keeps it in. The GIPS standards permit money-weighted returns in place of time-weighted ones only when the manager controls external cash flows and the vehicle has features such as a closed-end or fixed-life structure, committed capital, or a strategy built on illiquid investments.

When the two diverge by more than a point or so, show both and explain the flows. An allocator's analyst will often compute the other figure from the capital statements anyway.

The on-chain traps

Every method above depends on one input: the list of external cash flows, with their dates and values. On-chain, building that list is where the errors start.

Bridging is not a flow

Moving USDC from Ethereum to Arbitrum is a transfer between the fund's own addresses. It appears as an outflow on one chain and an inflow on another, sometimes seconds apart, sometimes days: withdrawals through an optimistic rollup's canonical bridge wait out a challenge period, commonly around a week. A system that treats each leg on its own records a redemption followed by a subscription, splits the TWR at both, and drops the in-transit value from NAV until the second leg lands.

The fix has two parts: a register of every address the fund controls, and an in-transit balance that keeps bridged assets in NAV while they move. Bridge fees and gas are expenses and reduce the return. The same rule covers transfers between the fund's own wallets, between a multisig and an exchange or perp sub-account, and wrapping or unwrapping. None of them changes the capital the LPs have contributed.

Reward claims are income

Tokens claimed from a rewards distributor arrive from an address the fund doesn't control, which is exactly what a subscription looks like. Booked as a flow, the reward is removed from performance. On a $50.0M fund, a $400,000 claim misread as a subscription late in the period understates the return by about 0.8 points.

Accruals make the claim neutral

If the valuation policy accrues claimable rewards in NAV, the claim itself is PnL-neutral: it turns a receivable into a balance. If it doesn't, the whole reward lands as PnL on the day of the claim. Either policy is defensible. Mixing them across protocols is not.

Staking rewards, lending interest and perp funding are income or expense in the same way, whether they accrue in a balance or arrive as a transfer.

True TWR needs daily valuations

An LP who sends USDC to the fund's subscription address on the 17th creates a flow on the 17th, not at month-end. A true TWR needs a valuation at that point, which in practice means a daily NAV series at minimum. With monthly valuations, the fund has to fall back on Modified Dietz within the month or on an assumption about when the flow happened. Remove the 15 Aug valuation from the worked example and the +2.6% cannot be recovered: place the subscription at the start of the quarter, at the end or anywhere in between, and the result lands near +0.1%. Subscriptions in kind, in ETH or a vault share rather than USDC, are flows valued at the block where they arrive. Fees paid to the manager are expenses for a net-of-fees return, not redemptions.

How Syncrone computes them

Syncrone computes TWR with sub-periods split at every external cash flow, Modified Dietz ROI with APR alongside, and XIRR, all from the same block-level NAV series and the same flows, so the three figures describe one set of events. Methods follow the GIPS definitions where one exists, and every report records the parameters it was generated with.

In the product

  • PerformancePerformance & AttributionPnL and returns computed from every transaction since inception, and what earned them: yield or price.Explore →

More from the blog

  • NAV & ReportingA track record that starts at onboarding is not a track record
  • RiskMarked at NAV is not liquid at NAV: a liquidity ladder for DeFi

Onboarding takes a wallet list, not a migration

NAV you can prove.

Register your accounts. Syncrone rebuilds the rest and hands you numbers your LPs and auditors can check on their own.

Enter appEnter appBook a demo