Portfolio Performance Calculator
Your brokerage statement shows each holding’s gain, but “how did my portfolio do?” is a different question. A 30% winner in a small position and a 3% loser in a large one do not average to 13.5%. Add deposits and withdrawals during the year and the naive math breaks entirely. Portfolio performance is a weighted, cash-flow-aware calculation, and getting it right is the difference between knowing your results and guessing.
The Portfolio Performance Calculator below combines up to four holdings into one true portfolio return: per-holding returns with cash flows handled, the weighted total, the dollar gain, and an optional benchmark comparison. It also shows each holding’s contribution, so you can see what actually drove the result.
Holding 1
Holding 2
Holding 3
Holding 4 (optional)
Quick Answer
- Quick Answer
- How portfolio return actually works
- Worked example, checked against this exact tool
- Contribution: what actually drove the result
- Benchmarking without fooling yourself
- Rebalancing: when the weights drift
- What competing calculators miss
- Frequently asked questions
- Add This Calculator to Your Website
- References
How portfolio return actually works
Each holding's return is (end value - start value - net cash flow) / start value: the cash flow is subtracted because deposits are not investment gains. The portfolio return then weights each holding by its starting share of the portfolio. In the worked example, bonds returned a sparkling 30%, but at only 22.2% of starting capital they contributed 6.67 points, while US stocks at 44.4% weight and 15% return contributed 6.67 points too. Equal contributions from very different stories: that is why the weighted view matters.
Portfolio return = sum(end) - sum(start) - sum(cash flows) / sum(start)
Contribution = holding weight x holding return
Worked example, checked against this exact tool
| Holding | Start | End | Cash flow | Return | Weight | Contribution |
|---|---|---|---|---|---|---|
| US stocks | $20,000 | $24,000 | +$1,000 | +15.00% | 44.4% | +6.67 pts |
| Intl stocks | $15,000 | $14,500 | $0 | -3.33% | 33.3% | -1.11 pts |
| Bonds | $10,000 | $12,500 | -$500 | +30.00% | 22.2% | +6.67 pts |
| Portfolio return | +12.22% | |||||
Enter the pre-filled holdings and the calculator reproduces 12.22% exactly. Now change the international holding's end value to $18,000 and watch the portfolio return jump: losers hurt in proportion to their weight, which is the entire argument for position sizing. The dollar-weighted return answers the related but different question of how your timing affected the outcome.
Contribution: what actually drove the result
Contribution in percentage points of portfolio return, centered at zero. The 30% bond winner and the 15% US stock position pulled equal weight; the international loser was a 1.11-point drag.
Benchmarking without fooling yourself
A return number means nothing without a benchmark, but the benchmark has to match the portfolio. Comparing a 60/40 stock/bond portfolio against the S&P 500 is a category error: of course it trails in a bull market; it is designed to. Enter a blended benchmark (60% of the stock index return plus 40% of the bond index return) for an honest comparison. And compare over identical periods: your portfolio's 12.22% against "the market's 10%" only works if both cover the same dates. Beating the wrong benchmark by two points is not outperformance; it is a framing trick. For the risk side of the comparison, the equity risk premium tells you what the market paid for taking equity risk in the first place.
Rebalancing: when the weights drift
The worked example started 44% US stocks, 33% international, 22% bonds. After a year of 15%, -3.33%, and 30% returns, the weights are no longer 44/33/22: the winners now dominate. Left alone for a decade, a 60/40 portfolio can drift to 80/20, quietly transforming a balanced plan into an aggressive one.
Rebalancing means selling some of what grew and buying what lagged to restore your target weights. It feels wrong because it trims winners, but it is the mechanism that keeps your risk where you decided it should be. Use the contribution view above to see which holdings have outgrown their allocation, then rebalance on a schedule (annually is the common default) rather than on emotion. Note that rebalancing in a taxable account realizes gains, so prefer doing it inside retirement accounts or with new contributions when possible.
What competing calculators miss
Forward-looking instead of backward. Most "portfolio return calculators" multiply your allocation by expected returns: a planning exercise, not a performance measurement. Ours measures what actually happened from start values, end values, and cash flows.
Cash flows ignored. Tools that do look backward often divide (end - start) by start, counting your deposits as gains. A $1,000 deposit mid-year is not a 5% return on $20,000; our per-holding math removes it before measuring.
No contribution view. Competitors show the total and stop. The per-holding contribution breakdown is what turns a number into an insight: it tells you whether the result came from skill, allocation, or one lucky position.
Benchmark as an afterthought. Several tools tack on a benchmark field with no guidance. We show the comparison in points of out/underperformance and explain why the benchmark must match the portfolio's asset mix.
Key takeaways
- Portfolio return = weighted average of cash-flow-adjusted holding returns: 12.22% in the example.
- Contribution (weight x return) shows what drove the result: bonds and US stocks each added 6.67 points.
- Deposits are not gains: always remove cash flows before measuring performance.
- Benchmark against a matching asset mix over identical dates, or the comparison is meaningless.
Frequently asked questions
A simple average treats every holding equally. Portfolio return weights each holding by its starting capital: a 30% gain on 22% of your money contributes 6.67 points, not 30. The weighted figure is the only one that reconciles with your actual dollar gain.
They are removed before measuring: holding return = (end - start - net cash flow) / start. A deposit increases the end value without being a gain, so counting it would inflate the return. Enter deposits as positive, withdrawals as negative.
Yes. Reinvested dividends raise the end value automatically. Dividends paid out as cash and withdrawn are a negative cash flow. Either way they belong in total return; leaving them out understates income holdings systematically.
One matching your asset mix over the identical period: a blended stock/bond benchmark for a balanced portfolio, not a pure stock index. Mismatched benchmarks produce flattering or damning comparisons that mean nothing.
This calculator aggregates across holdings for one period with cash flows netted. Time-weighted return chains sub-periods split at each cash flow date, which is the standard for comparing managers. For multi-period manager-style reporting, use our time-weighted return calculator.
Yes: annualized = (1 + portfolio return)1/years - 1. Annualize before comparing periods of different lengths; a 12% one-year return and a 12% three-year return are very different achievements. Our geometric return calculator handles multi-year annualizing.
Add This Calculator to Your Website
References
- American Association of Individual Investors, "How to Calculate the Return on Your Portfolio" - weighted and time-weighted methods. AAII Journal. Accessed October 19, 2026.
- CFA Institute, "Global Investment Performance Standards (GIPS)" - performance measurement standards. CFA Institute GIPS Standards. Accessed October 19, 2026.
- Morningstar, "Understanding Investment Performance" - benchmarking and return interpretation. Morningstar Portfolio Education. Accessed October 19, 2026.
- U.S. Securities and Exchange Commission, "Investor Bulletin: Understanding Investment Returns" - return basics. SEC Investor Education. Accessed October 19, 2026.
- Vanguard, "Principles for Investing Success" - asset allocation and benchmarking research. Vanguard Investment Research (PDF). Accessed October 19, 2026.
