Portfolio Performance Calculator

Separate investment performance from the timing and size of your deposits and withdrawals.

  • Methods explained
  • Save scenarios
  • Compare saved scenarios
  • Chart
  • Printable report
Import valuations from CSV

Use the exact four-column template: date, valueBeforeFlow, externalFlow, fee. Headers can appear in any order. Dates use YYYY-MM-DD and money uses dot decimals with at most two places, without currency signs or grouping. Files stay in this browser.

Every valuation is before that row’s fee and deposit/withdrawal. Positive flows are deposits. The opening row has no flow or fee. Include every external flow; this importer cannot reconstruct valuations from transactions.

UTF-8, comma-separated, 2–300 rows, maximum 256 KiB. Quoted cells, escaped quotes and LF/CRLF line endings are supported. Blank records and unsupported headers need correction.

Normalized CSV contains the complete valuation rows. The JSON return summary includes those inputs, computed results and return statuses. Save a scenario for an editable worksheet.

Dated valuations

Include a valuation immediately before every deposit or withdrawal, plus the opening and closing valuations. Positive flows are deposits; negative flows are withdrawals. Enter fees here only if they have not already been deducted from the valuation.

Valuations 1–3 of 3 (maximum 300).

Opening valuation
$
Valuation 2
$
$
$
Valuation 3
$
$
$

A new row starts on the following day at the previous closing balance, with no flow or fee. Replace these draft values with the actual pre-flow valuation and cash activity.

Returns and dollar reconciliation

Time-weighted return, net of entered fees21.00%
Money-weighted return, full period21.00%
Annualized time-weighted return10.00%
Annualized money-weighted return10.00%
Time-weighted return before entered fees21.00%
Opening balance$100,000.00
Net deposits$100,000.00
Investment profit after entered fees$31,000.00
Closing balance$231,000.00
Entered fees$0.00

Growth of $100, excluding external flows

Valuation ledger

DateFlowFeeBalance after flowSubperiod returnCumulative return
2024-12-31$0.00$0.00$100,000.00Unavailable0.00%
2025-12-31$100,000.00$0.00$210,000.0010.00%10.00%
2026-12-31$0.00$0.00$231,000.0010.00%21.00%
How it works›

CSV preview and replacement. The local CSV template uses date, valueBeforeFlow, externalFlow and fee. Dates must increase and money uses dot decimals with at most two places. Preview and correct all rows before explicitly replacing the worksheet. No transactions, missing valuations or fee treatment are inferred. Exports retain unavailable return values and their status.

Time-weighted versus money-weighted. Time-weighted return geometrically links returns between external cash flows. Money-weighted return solves dated investor cash flows using actual elapsed days / 365, then converts the annual rate to the same full period for comparison. Dates must increase; combine same-day external flows into one row. A valuation is required at every external flow. Missing valuations cannot be reconstructed from deposits alone. This worksheet does not establish GIPS compliance.GIPS Standards Handbook: calculation methodology

Fees, income and timing. Each row values the portfolio before its entered fee, then deducts the fee and applies the external flow. Fees are internal expenses, not investor withdrawals. Dividends retained in the portfolio stay in its value; dividends paid out belong in external withdrawals. Include all portfolio assets and cash consistently. Returns under one year are not annualized. The before-fee result adds back only fees entered here, not fund expenses already embedded in prices. A zero opening balance in any subperiod prevents a continuous time-weighted return.