Stocks vs ETFs calculator
Put your amount, years, both returns, both fees and your stock count in: $10,000.00 over 20 years is $63,698.99 in 10 stocks and $66,908.99 in the ETF. The fee drag, not the return, is the decision.
★ COMPARISONS · STOCKS VS ETFS · 2026
On the defaults — $10,000.00 over 20 years, stocks at 10.20% gross minus 0.50% trading costs, the ETF at 10.00% gross minus 0.03% expenses — the ETF reaches $66,908.99 and the stock portfolio $63,698.99: the ETF wins by $3,210.00. This one is the STOCKS-vs-ETFS comparison — two ways of owning STOCKS, a 10-stock portfolio against a 500-stock ETF, same money, same market, the fee drag and the diversification gap — the stocks-vs-bonds page is the STOCKS-vs-BONDS comparison — stocks against bonds at 10.2% vs 4.6%, and the 2008 fall — not stocks against ETFs; and the target-date-fund-vs-three-fund-portfolio page is a FUND-vs-FUND comparison — two kinds of fund, not stocks against an ETF.
Put your amount, years, both returns, both fees and your stock count in: $10,000.00 over 20 years is $63,698.99 in 10 stocks and $66,908.99 in the ETF. The fee drag, not the return, is the decision.
It means that, over 20 years, the same $10,000.00 grows to $66,908.99 in the ETF and to $63,698.99 in the 10-stock portfolio — a $3,210.00 gap, on identical gross returns of about 10% a year. The gap is not the return: the stock portfolio actually aims higher, 10.20% gross against the ETF's 10.00%. The gap is the fee drag. The stock portfolio pays 0.50% a year in trading costs — commissions, spreads, turnover — which takes $6,065.09 off the $69,764.08 it would have reached for free. The ETF pays 0.03% — $3 a year per $10,000.00 — which takes only $366.01 off its $67,275.00. The net returns are 9.70% against 9.97%, and 0.27 points a year, compounded for 20 years, is $3,210.00.
The fee drag grows with time, not with the fee. At 10 years the gap is only $628.11; at 30 years it is $12,304.27 — the same 0.47-point fee difference, compounding for a decade longer. A 0.50% trading cost sounds small against a 10.2% return, but over 20 years it takes $6,065.09 off a $10,000.00 investment — about 8.7% of the gross value. Raise the trading costs to 1.00% a year and the gap jumps to $8,771.97; raise the ETF expense to 0.10% and it shrinks to $2,363.33. The fee is the lever, and time is the multiplier.
The stock portfolio has to earn its fee back. Your 10 stocks start 0.47 points a year behind the ETF, so they need a gross return of 10.47% a year just to tie — and at 12% gross they win by $21,296.85 over 20 years. That is the whole stock-picking question in one number: can you beat the market by half a point a year, every year, for 20 years? Over the past 15 years the S&P 500 beat about 90% of managed large-cap funds, which is the honest base rate for the attempt. If the answer is no, the ETF wins by default — and if the answer is yes, the calculator says exactly how much the win is worth.
Ten stocks is a concentration bet, not a market bet. One bad pick in a 10-stock portfolio is 10% of the money; one bad pick in the 500-stock ETF is 0.2%. In a 2008-style year the market fell 37% — the site's own stocks-vs-bonds page works that year out — and a 10-stock portfolio can fall further than the market if one of its ten is the one that falls hardest. The model does not price that risk: both sides compound at a smooth yearly rate, with no down years at all. The ETF's case is not just the fee — it is that the fee buys 500 stocks of diversification, and the stock portfolio's case has to be worth giving that up.
On the defaults: $10,000 over 20 years, stocks at 10.2% gross minus 0.50% trading costs, the ETF at 10.0% gross minus 0.03% expenses.
And the other way: the stock portfolio needs 10.47% a year gross to tie the ETF, the ETF expense would have to rise to 0.30% a year to tie the stocks, and the ETF passes $50,000 in 17 years.
The defaults are $10,000 invested once, 20 years, a 10-stock portfolio at 10.2% gross a year minus 0.50% trading costs, and a 500-stock ETF at 10.0% gross a year minus a 0.03% expense ratio. The stock gross return of 10.2% is the site's own figure — the stocks-vs-bonds page turns $10,000 into $69,764 in 20 years at 10.2% — and the ETF gross return of 10.0% is the S&P 500 long-run average of about 10% a year since 1957 (Fidelity: 20-year average 11%, 30-year 10.4% through December 2025). The 0.03% ETF expense is VOO's published ratio — $3 a year per $10,000 invested. The 0.50% stock trading-cost drag is the model's own illustrative assumption — commissions, spreads and turnover on a portfolio that trades — not a measured average, and the page says so. The model compounds once a year at a smooth rate: no down years, no dividends taken out, no tax, no extra contributions, and no rebalancing. The past decade ran far above the long-run average — VOO averaged 15.4% a year over the 10 years to August 2026 — and the next decade may not repeat it. The reverses are checked at 0.01 points either side, because a 0.01-point change in a yearly return moves a 20-year future value by about $130 and shows the tie clearly. The holdings count does not change the future value in this model — it is shown because one bad pick is 10% of a 10-stock portfolio and 0.2% of the ETF, and that is the diversification gap the fee buys.
These notes repeat in every explainer section because this page is built to be read start to finish: the fee drag grows with time, not with the fee; the stock portfolio has to earn its fee back; and ten stocks is a concentration bet, not a market bet.
| Output | Formula | What it means |
|---|---|---|
| Stock net return | stock gross return − trading costs | 9.70% — 10.20% − 0.50%. |
| ETF net return | ETF gross return − expense ratio | 9.97% — 10.00% − 0.03%. |
| Stock future value | amount × (1 + stock net)^years | $63,698.99 — $10,000.00 × 1.0970^20. |
| ETF future value | amount × (1 + ETF net)^years | $66,908.99 — $10,000.00 × 1.0997^20. |
| Stock fee drag | stock gross value − stock net value | $6,065.09 — $69,764.08 − $63,698.99. |
| ETF fee drag | ETF gross value − ETF net value | $366.01 — $67,275.00 − $66,908.99. |
| Difference | ETF value − stock value | $3,210.00 — $66,908.99 − $63,698.99. |
| Reverse: Stock return that ties the ETF over 20 years | step | 10.47% a year: Stocks $66,908.99 over 20 years (9.97% net) — ETF $66,908.99 (9.97% net). An exact tie — both reach the same value over 20 years. |
| Reverse: ETF expense ratio that ties the stock portfolio | step | 0.30% a year: Stocks $63,698.99 over 20 years (9.70% net) — ETF $63,698.99 (9.70% net). An exact tie — both reach the same value over 20 years. |
| Reverse: Years for the ETF to pass $50,000 | step | 17 years: After 17 years the ETF is worth $50,310.87 — past $50,000. |
| 10 years instead of 20 | same model | Stocks $25,238.66 over 10 years (9.70% net) — ETF $25,866.77 (9.97% net). The ETF wins by $628.11. |
| 30 years instead of 20 | same model | Stocks $160,767.71 over 30 years (9.70% net) — ETF $173,071.98 (9.97% net). The ETF wins by $12,304.27. |
| Stock return 12% instead of 10.2% | same model | Stocks $88,205.84 over 20 years (11.50% net) — ETF $66,908.99 (9.97% net). The stock portfolio wins by $21,296.85. |
| ETF return 8% instead of 10% | same model | Stocks $63,698.99 over 20 years (9.70% net) — ETF $46,351.31 (7.97% net). The stock portfolio wins by $17,347.68. |
| Stock trading costs 1.00% instead of 0.50% | same model | Stocks $58,137.02 over 20 years (9.20% net) — ETF $66,908.99 (9.97% net). The ETF wins by $8,771.97. |
| ETF expense 0.10% instead of 0.03% | same model | Stocks $63,698.99 over 20 years (9.70% net) — ETF $66,062.32 (9.90% net). The ETF wins by $2,363.33. |
| $50,000 instead of $10,000 | same model | Stocks $318,494.95 over 20 years (9.70% net) — ETF $334,544.97 (9.97% net). The ETF wins by $16,050.02. |
| $1,000 instead of $10,000 | same model | Stocks $6,369.90 over 20 years (9.70% net) — ETF $6,690.90 (9.97% net). The ETF wins by $321.00. |
| 0 years | same model | Stocks $10,000.00 over 0 years (9.70% net) — ETF $10,000.00 (9.97% net). An exact tie — both reach the same value over 0 years. |
| $0 starting amount | same model | Stocks $0.00 over 20 years (9.70% net) — ETF $0.00 (9.97% net). An exact tie — both reach the same value over 20 years. |
| 0% stock trading costs | same model | Stocks $69,764.08 over 20 years (10.20% net) — ETF $66,908.99 (9.97% net). The stock portfolio wins by $2,855.09. |
| ETF expense ratio 1.00% | same model | Stocks $63,698.99 over 20 years (9.70% net) — ETF $56,044.11 (9.00% net). The stock portfolio wins by $7,654.88. |
Figures are the model's own future values on the numbers you type, computed from unrounded values: each net return is the gross return minus the annual fee, each future value is the amount times one plus the net return to the power of the years, the fee drag is the gross future value minus the net future value, and the difference is the ETF value minus the stock value. The displayed figures are rounded to 2dp. The returns are illustrative assumptions, not forecasts: the S&P 500 has averaged about 10% a year over many decades, the past 10 years averaged 15.4% for VOO, and any single 20-year period can land well above or below the average. The model compounds once a year at a smooth rate — it has no down years, no sequence-of-returns risk, no dividends taken out, no tax, no extra contributions and no rebalancing. The 0.50% stock trading-cost drag is the model's illustrative assumption, not a measured average. The ETF expense of 0.03% is VOO's published ratio as of October 2026; other ETFs charge more. The holdings count does not change the future value — it is shown to frame the diversification gap. This page is a calculation tool, not financial advice, and not an investment recommendation.
$10,000 over 20 years: a 10-stock portfolio at 10.2% gross minus 0.50% trading costs reaches $63,698.99, and a 500-stock ETF at 10.0% gross minus 0.03% expenses reaches $66,908.99 — the ETF wins by $3,210.00. Returns: S&P 500 long-run average about 10% a year (Fidelity); VOO expense ratio 0.03% (Vanguard). Source: Bright Side Kit, brightoolbox.com.
On the defaults, the ETF — $66,908.99 against $63,698.99 over 20 years, a $3,210.00 win. The stocks aim higher (10.2% gross) but pay 0.50% a year in trading costs against the ETF's 0.03%.
$366.01 on $10,000 at 0.03% a year. The same $10,000 in a 10-stock portfolio paying 0.50% a year in trading costs loses $6,065.09 to fees.
10.47% a year gross, to tie the ETF over 20 years. At 12% gross the stocks win by $21,296.85.
The ETF holds about 500. One bad pick is 10% of a 10-stock portfolio and 0.2% of the ETF — that is the diversification gap the 0.03% fee buys.
17 years at the 9.97% net return. After 16 years it is worth about $45,750 — still short of $50,000.
No — the ETF wins by $628.11 over 10 years and by $12,304.27 over 30 years. The fee drag grows with time, so the longer the horizon, the bigger the ETF's win.
The ETF still wins, by $2,363.33. The expense would have to rise to 0.30% a year to tie the stock portfolio.
No — they are illustrative assumptions, not forecasts. The S&P 500 has averaged about 10% a year over many decades, but the past decade averaged 15.4% and any 20-year period can land well above or below the average.