steadyETF

ETF Portfolio Calculator, Backtest an ETF Portfolio

Combine multiple ETFs with your own allocation and see how the blended portfolio would have performed, based on real historical prices. Add up to 10 funds, set each one's weight, and optionally include a monthly, quarterly, or annual contribution. It's free, takes just a few minutes, and no signup is required.

Holdings
%
Total weight: 100%
Select a fund for every holding before calculating.
Dividends
Regular contributions
Annual increase of deposits (optional)
Results will appear here once you calculate

1. How the ETF Portfolio Calculator Works

Add up to 10 ETFs, give each one a percentage weight (they must add up to exactly 100%), enter how much you're starting with, and choose a date range. The first fund you pick sets the portfolio's currency, every other holding you add has to be in that same currency, since mixing currencies without a conversion would produce a meaningless total. If you want to model regular investing rather than a single lump sum, add a recurring deposit (or withdrawal) and how often it happens, with an optional annual increase, either a fixed amount or a percentage. Click Calculate, and the tool replays that exact scenario against each fund's real historical monthly prices, combined according to your weights. The result is a month-by-month simulation of what the blended portfolio would have been worth, including how much came from your own contributions versus market growth. There's also a Dividends toggle: by default the tool reinvests dividends automatically, using each dividend payment to buy more shares of that holding at that month's price, or you can switch it to "Taken as cash" to track those same payments separately instead, without buying additional shares.

2. Important Information

This calculator uses real historical price data, but historical performance is not a guarantee of future results. Markets that grew over the period you select may not grow the same way going forward and past downturns don't predict future ones either. Nothing on this page is financial, investment, or tax advice; it's a tool to help you understand how a given allocation has behaved historically, not a recommendation to build any specific portfolio. Use it to inform your own thinking, not to replace it.

3. Example Portfolio Investment

Scenario: $10,000 initial investment split 70% VTI (Vanguard Total Stock Market ETF) and 30% SCHD (Schwab U.S. Dividend Equity ETF), plus $1,000 added every month for 10 years, from August 2016 through August 2026, with dividends reinvested.

PeriodTotal DepositsEarningsBalance
Start (Aug 2016)$10,000n/a$10,000
After 3 years (Aug 2019)$46,000+$9,428$55,428
After 5 years (Aug 2021)$70,000+$51,120$121,120
After 6 years (Aug 2022)$82,000+$37,267$119,267
After 7 years (Aug 2023)$94,000+$52,759$146,759
End (Aug 2026)$130,000+$167,927$297,927

4. Understanding Your Results

Investment Summary

  • Final Investment Value: what the entire portfolio (initial plus contributions) is worth at the end of your selected period.
  • Total Earnings: the portion of that value that came from market growth, separate from money you put in yourself.
  • Dividends Received: the total dividend payments the portfolio received over the period, combined across every holding. When dividends are reinvested, this amount is already included in Final Investment Value and Total Earnings; when taken as cash, it's tracked here separately from Balance.
  • Initial Balance: your starting lump sum.
  • Additional Deposits/Withdrawals: the running total of any recurring contributions (or withdrawals) over the period.

Results table

Each row is one month (or one contribution period, if you've chosen quarterly or annual contributions). Deposits/Withdrawals shows that month's transaction, Total Deposits/Withdrawals is the running sum, Earnings is that month's combined market gain or loss across every holding, and Balance, the final column, is the running total value of the whole portfolio at that point. If you've chosen "Taken as cash" for dividends, an extra Dividends column appears showing that month's combined dividend payment across all holdings; when dividends are reinvested instead, their effect is already reflected in Balance's growth, so the column doesn't appear.

Total Balance

A line chart showing your portfolio's combined balance for every month in the period, so you can see the shape of the growth over time, not just the final number.

Deposits vs. Earnings

A stacked area chart showing how much of your balance came from your own contributions versus market growth. The earnings layer is green if the portfolio ends the period positive, red if it doesn't.

Allocation

A pie chart showing your portfolio's starting allocation, the weights you set for each holding when you clicked Calculate. Since this tool doesn't rebalance (see Methodology below), the actual mix drifts away from these starting weights as the underlying funds grow at different rates, this chart shows where you started, not a live snapshot of where the portfolio ended up.

5. Historical Data & Methodology

  • Data granularity: monthly, not daily. Every price used is the closing price for that month, normalized to the first of the month for consistency across funds, this is what lets holdings on different exchanges line up correctly month to month.
  • Dividends: reinvested or cash. Every calculation starts from each holding's raw closing price plus its real dividend payments and stock splits, the same underlying data either way. By default, dividends are reinvested: each payment is used to buy additional shares of that holding at that month's price, so future dividends are then paid on a larger share count too. Switching to "Taken as cash" skips that step, the same dividend cash is tracked separately in a running total instead of buying shares. The two scenarios can end quite differently, that's the effect of compounding reinvested dividends over time, not a rounding difference.
  • No rebalancing. This is a buy-and-hold simulation. Once the initial weights are set, the calculator never sells one holding to buy more of another to bring the portfolio back to its original mix. Whichever holdings grow fastest naturally become a larger share of the portfolio over time, exactly as they would in a real buy-and-hold account. Adding a new holding to an existing portfolio doesn't rebalance the existing weights either, you set each row's weight yourself.
  • Overlapping data only. Your holdings commonly won't all have the same amount of price history (a fund that launched in 2024 can't have 10 years of data). The calculation clips to the window where every selected holding actually has data, rather than either failing outright or silently changing what's in the portfolio to paper over a gap, and always shows you the actual date range used. If two holdings have no overlapping history at all, Calculate returns a clear error naming both funds instead of a generic failure.
  • No currency conversion. Every holding in a portfolio must share the same trading currency, the calculator locks to your first holding's currency and only offers matching funds for the rest, since combining differently-denominated amounts without a real FX conversion would produce a meaningless total.
  • Fees: each fund's expense ratio is deducted continuously from its own assets, so it's already reflected in that fund's price itself, unlike dividends, which require the adjustment described above. The calculator doesn't show or let you compare fee drag explicitly.
  • What's not adjusted for: inflation and taxes are not factored in anywhere. Every number shown is a nominal figure.

We use monthly (rather than daily) data because it's the right level of precision for the question this tool answers, "how would a long-term, multi-fund investment have grown," without the noise of day-to-day price swings.

6. How to Use Historical Backtesting

Backtesting is a starting point for understanding how an allocation has behaved, not a prediction of how it will behave. A few habits make the results more useful:

  • Test long time periods, not just the last few years. A 3-year window can look very different from a 20-year one, especially if it happens to skip a downturn.
  • Try more than one starting point. Use the date-range presets to see how the same allocation performed starting before and after the 2008 financial crisis, or before and after the 2020 COVID crash.
  • Compare allocations, not just single funds. Try the same total contribution split across two or three different weightings, for example, more growth-focused versus more dividend-focused, to see how differently each mix would have played out over the same period.
  • Watch for overfitting to a single window. It's tempting to keep tweaking weights until you find the exact mix that produces the best-looking historical number, but that's picking the answer you want, not learning something real about the allocation.

7. Understanding Long-Term Compound Growth

Compound growth means your gains start generating their own gains, and that effect gets stronger the longer it runs. A contribution made in year one has decades to compound if you're investing for retirement; a contribution made in year nineteen has almost none. That's why the length of the time period you test often matters more than the exact mix of funds you choose, and it's also the core argument for staying invested and contributing consistently, rather than trying to time when to add money to any one holding.

8. What the Calculator Can and Cannot Tell You

It can show you:

  • How a specific combination of ETFs, at specific weights, actually performed together over a specific historical period, including the effect of dividends being reinvested (or taken as cash, if you toggle that).
  • How a buy-and-hold allocation drifts over time as its holdings grow at different rates, since the portfolio is never rebalanced back to its starting weights.
  • How sensitive an outcome is to when you started, or to how you weighted each holding, by testing multiple date ranges and allocations yourself.

It cannot tell you:

  • What any allocation will do in the future. Every result here is historical.
  • Whether rebalancing back to your original weights periodically would have improved or hurt your results, this calculator only models buy-and-hold, not a rebalancing strategy.
  • The full effect of fees. Each fund's expense ratio is deducted continuously from its own assets, so it's already baked into that fund's price, not something added separately. But there's no fee-drag comparison shown, so you can't isolate how much a fund's fees cost you versus a lower-cost alternative.
  • Real, inflation-adjusted purchasing power. All figures are nominal: a dollar (or pound, or euro) at the end of the period is treated the same as one at the start, even though it buys less.
  • Tax consequences. Capital gains, dividend tax treatment, and account type (ISA, 401(k), taxable brokerage, etc.) all affect your real return and aren't modeled here.
  • Broker or platform costs. Trading commissions, platform/custody fees, and FX conversion charges from your own broker are separate from each fund's expense ratio and aren't factored in.

Want to backtest a single fund instead of a full portfolio? The ETF Calculator lets you model one ETF on its own, with the same date-range and contribution options.

9. Frequently Asked Questions

How many ETFs can I add to a portfolio?

Up to 10 holdings. Each one needs a weight, and every holding's weight together must add up to exactly 100% before you can calculate.

Can I mix ETFs in different currencies?

No. The first fund you select locks the portfolio to that currency, and every other holding you add has to be in the same one. Combining different currencies without a real FX conversion would produce a total that doesn't actually mean anything.

Does the calculator rebalance my portfolio over time?

No. This is a buy-and-hold simulation. Your starting weights are only applied once, at the beginning; the calculator never sells one holding to buy more of another to bring the mix back in line. If one holding grows faster than the others, it naturally becomes a larger share of the portfolio over time.

What happens if my holdings have different amounts of price history?

The calculation automatically clips to the period where every selected holding has real data, and tells you the actual date range it used. If two holdings don't overlap at all, you'll get a clear error instead of a silently wrong result.

Can I make monthly, quarterly, or annual contributions?

Yes. Choose Deposit (or Withdrawal) under "Regular contributions" and set an amount and frequency alongside your initial investment, applied to the whole portfolio according to your holdings' weights.

What's the difference between "Reinvested" and "Taken as cash" dividends?

"Reinvested" assumes every dividend payment from every holding immediately buys more shares of that same fund, so future dividends are paid on a growing share count too, this is the standard way most long-term investors actually treat dividends. "Taken as cash" assumes dividends are paid out and set aside instead, so share counts, and the dividends themselves, stop compounding. Reinvesting almost always produces a higher ending balance over long periods.

Does the calculator include taxes or broker fees?

No. Capital gains tax, dividend tax, and your own broker's commissions, custody fees, or FX charges aren't modeled.

Is this financial advice?

No. This tool shows historical outcomes to help you understand how a given allocation has behaved. It isn't a recommendation to build any specific portfolio, and it isn't a substitute for advice from a licensed financial professional.