Think a single percentage will tell you whether an investment was good? Not really.
Many people get fooled by totals that ignore deposits, fees, dividends, or time.
This post strips the math down to simple formulas you can use today.
You’ll learn the basic return formula and ROI (return on investment), how to handle deposits with holding period return, when to use CAGR (compound annual growth rate) for multi-year growth, and the difference between time-weighted and money-weighted returns.
By the end you’ll know which formula fits your situation and what to calculate first.
Core Methods for Measuring Investment Returns

The most basic way to figure out how much money you made on an investment is the simple return formula: Return = (Ending Value / Beginning Value) – 1. You started with $20,300 and ended at $21,773? Divide $21,773 by $20,300 to get 1.0726, then subtract 1 to get 0.0726, or 7.26%. This one period formula works perfectly when you make no deposits or withdrawals during the period.
Return on Investment (ROI) is algebraically identical but looks a little different: ROI = (Ending Value – Beginning Value) / Beginning Value. Same example: subtract $20,300 from $21,773 to get $1,473, then divide by $20,300. You arrive at the same 7.26%. Both formulas produce the same result because (Ending / Beginning) – 1 is mathematically equivalent to (Ending – Beginning) / Beginning.
When you add or remove money during the holding period, you need Holding Period Return (HPR) to measure each interval between cash flows. HPR is calculated as: HPR = Ending Value / (Previous Value after Cash Flow) – 1. Let’s say you had $21,773 on February 27, then deposited $500. Your “Previous Value after Cash Flow” becomes $22,273. If the account grows to $23,937 by the next measurement date, the HPR for that interval is $23,937 / $22,273 – 1, which equals 7.47%.
Basic Return Calculation Steps:
Choose your starting and ending dates, then record the beginning and ending account values. Identify all external deposits and withdrawals during the period (any money you added or removed). For each interval between cash flows, calculate the HPR using the ending value divided by the previous value after adjusting for the cash flow, then subtract 1. When no cash flows occur, use the simple return formula across the entire period. Always express your result as a decimal (0.0726) or percentage (7.26%) and label the time period it covers.
A naive approach that ignores deposits and withdrawals will mislead you. You started with $20,300 and ended at $25,992 after three $500 deposits and one $250 withdrawal? A simple calculation would show $25,992 / $20,300 – 1 = 28.04%. That 28.04% looks impressive but overstates performance because $1,250 of the growth came from your own deposits, not investment gains. Price return measures only the change in asset value, while total return adds income such as dividends or interest. We’ll cover total return calculation in the next section.
Applying ROI and Total Return Calculations to Real Investments

ROI measures the performance of an investment by dividing your gain or loss by your initial cost: (Ending Value – Beginning Value) / Beginning Value. It’s a quick way to compare investments, but it only captures price change. You bought 100 shares at $50 each for a $5,000 starting value and sold them at $60 each for $6,000? Your ROI is ($6,000 – $5,000) / $5,000 = 20%.
Total return goes further by including all income the investment generated during the period. Dividends, interest payments, and reinvested distributions count as part of your return, not as external cash flows. For stock investors, total return combines price appreciation and dividend income reinvested back into more shares. Total Shareholder Return (TSR) is a common label for this combined measure, and it’s the number mutual funds report in their official performance disclosures because it reflects the full economic benefit to the investor.
Step by Step Total Return Calculation:
Record your beginning market value (for example, 100 shares at $50 = $5,000). Add up all dividends, interest, or distributions received during the holding period (say, $200 in quarterly dividends). Assume those dividends were reinvested at the prevailing price to buy additional shares (or fractional shares). Calculate your ending market value including the reinvested shares (100 shares became 103 shares, at $60 each that’s $6,180). Compute total return: ($6,180 – $5,000) / $5,000 = 23.6%. Compare this total return to the price only ROI (20%) to see the extra 3.6% contributed by reinvested dividends.
Understanding the difference between income returns and price returns matters because bonds deliver most of their value through coupon payments, while growth stocks deliver most value through price appreciation. If you only track price, you’ll understate bond performance. If you forget to account for dividends, you’ll understate stock performance. TSR captures both components in a single number, which is why professionals and fund managers report total return rather than price only ROI when disclosing performance to clients.
Using CAGR to Measure Long Term Investment Growth

When you hold an investment for multiple years, simple return doesn’t account for compounding, the process where returns earned in one period generate returns in the next period. The Compound Annual Growth Rate (CAGR) solves this by expressing your total gain as a smooth annual rate that compounds over time. The formula is: (1 + Total Return)^(1 / N) – 1, where N is the number of years. CAGR is also called the annualized return or geometric average return because it uses a geometric mean rather than a simple arithmetic average.
If you earned a total return of 21.49% over two years, you might guess your average annual return was 10.75% (21.49% ÷ 2). That arithmetic average ignores compounding. The correct CAGR is (1 + 0.2149)^(1/2) – 1 = (1.2149)^0.5 – 1 = 1.1022 – 1 = 0.1022, or 10.22%. Each year compounds on the prior year, so 10.22% compounded for two years delivers the full 21.49% total return.
CAGR smooths out year to year volatility and tells you the steady annual growth rate that would produce the same ending value. It’s ideal for comparing investments with different holding periods or for projecting future portfolio values. But CAGR does not show the path your investment took, it excludes cash held outside the investment, and it can be misleading if you had large deposits or withdrawals during the period because those flows change the capital base.
| Total Return | Years Held | CAGR Formula | Computed CAGR |
|---|---|---|---|
| 21.49% | 1 | (1.2149)^(1/1) – 1 | 21.49% |
| 21.49% | 2 | (1.2149)^(1/2) – 1 | 10.22% |
| 50.00% | 3 | (1.5000)^(1/3) – 1 | 14.47% |
When to Use CAGR and When to Avoid It:
Use CAGR to compare funds, managers, or asset classes over the same time period with no interim deposits. Use CAGR to project future values when you expect consistent compounded growth (though past CAGR does not guarantee future results). Avoid CAGR if your account had frequent or large deposits and withdrawals, because CAGR assumes a constant capital base and will overstate or understate true investment performance. Avoid CAGR for very short periods (less than one year) because annualizing a three month return can produce inflated or deflated annual rates that don’t reflect realistic long term growth.
Time Weighted vs. Money Weighted Returns for Portfolios

When cash flows in and out of your portfolio, you need a method that separates investment performance from the timing and size of your deposits and withdrawals. Two approaches dominate: Time Weighted Return (TWR) and Money Weighted Return (MWR), often measured by the Internal Rate of Return (IRR).
Time Weighted Return
Time Weighted Return removes the impact of cash flows by calculating a separate Holding Period Return (HPR) for each interval between deposits or withdrawals, then chaining those HPRs together. The chaining formula multiplies (1 + HPR₁) × (1 + HPR₂) × … × (1 + HPRₙ), then subtracts 1 to get the overall TWR.
Suppose you have five intervals with the following HPRs: 7.26%, 7.47%, –6.60%, 8.62%, and 3.89%. Convert each to a multiplier: 1.0726, 1.0747, 0.9340, 1.0862, and 1.0389. Multiply them all: 1.0726 × 1.0747 × 0.9340 × 1.0862 × 1.0389 = 1.2149. Subtract 1 to get 0.2149, or 21.49% TWR. This 21.49% represents the return your investments delivered, independent of when you added the three $500 deposits or took out the $250 withdrawal.
TWR is the standard for mutual funds, pension funds, and professional managers because it isolates investment skill from client cash flow decisions. If a client deposits a large sum right before a market drop, TWR won’t penalize the manager for bad timing that the manager didn’t control.
Money Weighted Return (IRR)
Money Weighted Return, calculated via the Internal Rate of Return (IRR), accounts for the timing and magnitude of every deposit and withdrawal. IRR solves for the discount rate that makes the present value of all cash flows (deposits as negatives, withdrawals as positives, and ending value as a final positive) equal to zero. You deposited $500 right before a strong rally? Your IRR will be higher than someone who deposited $500 right before a decline, even if both investors held the same assets with the same TWR.
IRR better reflects your personal experience because it weights each dollar by how long it was invested. When exact pre flow values are missing or cash flows happen mid period, the Modified Dietz method approximates IRR by using weighted average cash flows. If you deposited $300 on May 10 (20 days into a 30 day month) and $200 on May 23 (7 days remaining), the weighted cash flow is ($300 × 20/30) + ($200 × 7/30) = $200 + $46.67 = $246.67. You then compute May’s HPR as (May Ending Value) / (April Ending Value + $246.67) – 1.
Comparing TWR and IRR:
TWR isolates manager or investment performance, ignoring when you added or removed money. IRR reflects your personal dollar weighted experience, sensitive to deposit and withdrawal timing. Use TWR to evaluate fund managers, compare strategies, or report to clients. Use IRR (or Modified Dietz) to measure your actual wealth creation, especially if you control cash flow timing. TWR requires breaking the period into sub periods at each cash flow, IRR can handle irregular flows via XIRR in spreadsheets without manual sub period splits.
Accounting for Cash Flows, Fees, and Taxes in Return Calculations

Fees, transaction costs, and taxes reduce the value of your portfolio, but they aren’t external cash flows. They stay inside the account and lower your ending value, which automatically reduces your calculated return. Management fees, trading commissions, expense ratios, and tax withholdings are all internal events. Your portfolio earned $1,000 before fees and paid $50 in management fees? Your net ending value is $50 lower, and your return calculation reflects that drag.
The distinction matters because mislabeling an internal cost as an external withdrawal will inflate your return. Your account fell from $10,000 to $9,950 due to a $50 advisory fee? That’s a –0.5% return on the $10,000. If you mistakenly record the $50 as a withdrawal, you’d compute return as ($9,950 / ($10,000 – $50)) – 1 = 0%, wrongly showing no loss. Always keep fees, dividends, interest, buys, sells, and tax payments inside the portfolio when calculating returns. Only count money you physically deposited or withdrew as external cash flows.
Tax adjusted returns show performance after income and capital gains taxes. You sold stock for a $1,000 gain and paid $200 in taxes? Your after tax return is based on the $800 net gain. Pre tax and post tax returns can differ significantly, especially for high income investors in taxable accounts. Comparing a tax deferred retirement account to a taxable brokerage account requires either adjusting both to after tax terms or acknowledging that the taxable account faces ongoing tax drag that the retirement account defers.
Comparing Nominal, Real, and Inflation Adjusted Returns

Nominal return is the percentage change in your account value without adjusting for inflation. Your investment grew 8% in a year? That 8% is your nominal return. Real return adjusts for inflation to show how much purchasing power you gained. The formula is: Real Return = (1 + Nominal Return) / (1 + Inflation Rate) – 1.
You earned 8% and inflation was 3%? Your real return is (1.08 / 1.03) – 1 = 1.0485 – 1 = 0.0485, or 4.85%. That 4.85% reflects the increase in what your money can actually buy, while the nominal 8% overstates your gain in real terms. Over long periods, inflation erodes purchasing power, so even positive nominal returns can produce negative real returns if inflation runs higher than your investment gains. Real returns matter for retirement planning, endowment spending, and any goal measured in future purchasing power rather than nominal dollars.
| Nominal Return | Inflation Rate | Real Return Formula | Real Return |
|---|---|---|---|
| 8.0% | 3.0% | (1.08 / 1.03) – 1 | 4.85% |
| 5.0% | 2.0% | (1.05 / 1.02) – 1 | 2.94% |
| 3.0% | 4.0% | (1.03 / 1.04) – 1 | –0.96% |
Portfolio Level Return Measurement Across Multiple Assets

When your portfolio holds several investments, the overall return is a weighted average of each asset’s individual return. To calculate it, multiply each holding’s return by its proportion of the total portfolio value at the start of the period, then sum those products. 60% of your portfolio is in stocks that returned 10% and 40% is in bonds that returned 4%? Your portfolio return is (0.60 × 10%) + (0.40 × 4%) = 6% + 1.6% = 7.6%.
Weighting by starting value ensures that larger positions have proportionally more influence on the portfolio result. If you rebalanced during the period or if individual assets changed in relative size, you may need to calculate returns for each sub period and chain them, or use average weights across the period. Attribution analysis goes further by breaking down how much of your total return came from asset allocation, security selection, or timing decisions, but the core calculation always starts with weighted averages.
Steps for Computing Weighted Portfolio Return:
List each holding, its starting market value, and its individual return for the period. Calculate each holding’s weight by dividing its starting value by the total portfolio starting value. Multiply each holding’s return by its weight to get its contribution to the overall return. Sum all the weighted contributions to arrive at the portfolio’s total return for that period.
Using Excel and Google Sheets for Return Calculations

Spreadsheets simplify return calculations, especially when you have multiple cash flows or need to chain HPRs over many periods. Set up columns for date, beginning value, cash flow, value after cash flow, ending value, HPR, and (1 + HPR). For each row, the “Value after Cash Flow” is Beginning Value plus the cash flow. HPR is Ending Value divided by Value after Cash Flow, minus 1. Then create a (1 + HPR) column and use the PRODUCT function to multiply all those terms together, subtracting 1 to get the Time Weighted Return.
If cell B3 holds the beginning value and C3 holds the cash flow, the formula in the “Value after Cash Flow” column is =B3 + C3. If D3 is the resulting value after cash flow and E3 is the ending value, the HPR formula in F3 is =E3 / D3 – 1. In the next column, G3, enter =1 + F3. Once you’ve filled down all rows, calculate TWR with =PRODUCT(G3:G7) – 1 (assuming rows 3 through 7 are your sub periods).
| Function | Purpose | Example Input |
|---|---|---|
| ROI | Simple return (manual formula) | =(B2 – B1) / B1 |
| CAGR | Annualized growth (manual formula) | =(B2 / B1)^(1 / A2) – 1 |
| XIRR | IRR for irregular cash flows | =XIRR(values, dates) |
| PRODUCT | Chain (1 + HPR) terms | =PRODUCT(G3:G7) – 1 |
| Value After Cash Flow | Adjust for deposits/withdrawals | =B3 + C3 |
The XIRR function in Excel (and Google Sheets) calculates IRR when cash flows occur on irregular dates. You provide two ranges: one for cash flows (deposits as negative, withdrawals as positive, ending value as positive) and one for corresponding dates. XIRR returns the annualized money weighted return without requiring you to break the period into sub intervals. If you want to implement Modified Dietz manually, create a helper column that weights each cash flow by the fraction of the period it was invested, sum those weighted flows, then use the weighted sum in your HPR formula for that sub period.
Advanced Return Metrics and Risk Adjusted Measures

Return alone doesn’t tell you whether an investment compensated you fairly for the risk you took. Risk adjusted return metrics combine your return with a measure of volatility or downside risk to show performance per unit of risk. The Sharpe ratio is the most common: it divides your excess return (return above the risk free rate) by the standard deviation of your returns. A higher Sharpe ratio means you earned more return for each unit of volatility. You earned 10% with a standard deviation of 15% while Treasury bills paid 2%? Your Sharpe ratio is (10% – 2%) / 15% = 0.53.
The Sortino ratio improves on the Sharpe ratio by using downside deviation instead of total standard deviation. It only penalizes volatility below your target return, ignoring upside swings. Your goal is 8% and you experienced 12% downside deviation? The Sortino ratio is (10% – 8%) / 12% = 0.17. This makes sense for investors who don’t mind gains exceeding expectations but care deeply about losses.
The Information ratio measures active return per unit of tracking error. It divides the portfolio’s excess return over a benchmark by the standard deviation of that excess return. Your fund beat the S&P 500 by 2% with a tracking error of 4%? The information ratio is 2% / 4% = 0.50. Managers with high information ratios consistently outperform their benchmark without taking excessive active risk.
Four Key Risk Adjusted Metrics:
Sharpe ratio measures return per unit of total volatility (standard deviation). Sortino ratio measures return per unit of downside volatility, ignoring upside deviations. Information ratio measures excess return per unit of tracking error relative to a benchmark. Standard deviation quantifies total volatility, the spread of returns around the average, used as the denominator in Sharpe and other ratios.
These ratios help you compare managers or strategies with different risk profiles. A 15% return with 20% volatility may be less attractive than a 12% return with 8% volatility when you adjust for risk. Always pair return calculations with risk measures to see the full picture of investment performance.
Practice Calculations and Common Mistakes When Computing Returns

One of the most frequent errors is mixing external deposits and withdrawals with internal portfolio events. You sell one stock and buy another? That’s an internal trade, not a cash flow. Your brokerage pays you $100 in dividends and you leave it in the account? It’s internal income, not a withdrawal. Only money that moves in or out of the account counts as an external cash flow. Mislabeling internal moves as external flows will distort your return, usually by inflating it.
Another mistake is annualizing a short term return without adjusting for compounding. You earned 2% in one month and multiply by 12 to get 24% annualized? You’ve ignored the fact that returns compound. The correct approach is (1.02)^12 – 1 = 26.82%. Compounding matters, especially over multiple years, and skipping it understates long term growth or overstates short term projections.
Practice Scenarios to Test Your Understanding:
Calculate the simple return when an account grows from $5,000 to $5,750 with no deposits or withdrawals. Compute the HPR for a quarter in which the account started at $10,000, received a $1,000 deposit mid quarter, and ended at $11,500. Chain three quarterly HPRs (3%, –2%, and 5%) into a total return for the year. Annualize a two year total return of 30% to find the CAGR. Adjust a 9% nominal return for 2.5% inflation to find the real return.
When chaining multiple periods, ensure they’re contiguous with no gaps or overlaps. Each period’s ending value must equal the next period’s beginning value after adjusting for any cash flow. Skip a day or double count a period? Your chained return will be wrong. Build your spreadsheet carefully, check that every HPR uses the correct denominator (previous value after cash flow), and confirm that multiplying all (1 + HPR) terms and subtracting 1 reproduces your overall Time Weighted Return. Practice with real account statements until the process feels automatic, and always double check that you’ve classified deposits, withdrawals, fees, and dividends correctly before hitting calculate.
Final Words
You now have the core formulas, including simple return, ROI, and HPR, plus annualized CAGR and how to handle time-weighted versus money-weighted results. We also covered fees, taxes, inflation, portfolio weighting, spreadsheet functions, and risk-adjusted measures.
If you need one rule, pick the method that matches your cash-flow situation. Use HPR and TWR for performance, and IRR and XIRR when timing matters. Always check net returns after fees.
Practice the examples until calculating feels routine. These steps make it easier to know how to calculate investment returns and act with more confidence.
FAQ
Q: How do I calculate my investment return?
A: To calculate your investment return, divide the ending value by the starting value and subtract 1 (ROI = (Ending − Beginning)/Beginning). Use holding-period return for cash flows and CAGR to annualize.
Q: Is 7% return on investment realistic?
A: A 7% return is realistic over long periods for a mixed stock-bond portfolio or historical market averages, but it depends on your time horizon, fees, taxes, and risk. Expect variability and diversify.
Q: How much will $10,000 invested be worth in 10 years?
A: How much $10,000 will be worth depends on the annual return; at 7% compounded it becomes about $19,672, and at 5% about $16,289. Use FV = PV*(1+r)^n to calculate.
Q: What if I invested $1000 in S&P 500 10 years ago?
A: If you invested $1,000 in the S&P 500 ten years ago, value depends on the index’s total return. At 10% annualized it’d be about $2,594; at 12% about $3,106. Check historical total-return CAGR for exact numbers.
