SweetValueLab
Write for us

Portfolio Backtest

Any basket of stocks or ETFs on up to twenty years of daily prices and real dividends, against the S&P 500 or any ticker. No sign-up.

HoldingsWeight · share
100%
Over the last
Starting with
Adding every month
Compare with

Up to 10 holdings and 20 years. Weights are relative. The comparison line gets the same money on the same days.

Running the backtest…

The weekly

The week's 13F filings, insider trades and earnings, plus new research on the site. One email a week, no account.

How this backtest works

Daily bars, not monthly

The portfolio is marked to market every trading day, so drawdowns and volatility reflect what actually happened between month-ends — 252 observations a year instead of 12.

Split-adjusted prices, cash dividends

Prices are split-adjusted closes; each dividend is applied as cash on its ex-date at the matching split-adjusted per-share amount. Dividend-adjusted (“total return”) prices are never used, so income is counted exactly once.

Reinvestment at the close

With reinvestment on, each dividend buys fractional shares at that day's close. With it off, the cash sits idle and earns nothing — the honest floor for the comparison.

Buy and hold, or rebalanced each January

By default the weights set the opening trade and then drift, which is what a buy-and-hold holder experienced. With rebalancing on, both accounts are reset to the target weights at the close of each year's first trading day. No taxes, no commissions.

Money added every month

A monthly amount buys more of the basket at the target weights at the close of each month's first trading day, after that day's dividends. With money coming in, two returns answer two questions: the basket's own (CAGR, drawdown and volatility, time-weighted so a deposit never hides a fall) and the return on your money (the internal rate of the actual cash flows, which depends on when you paid in).

The comparison line

The S&P 500 (SPY, dividends reinvested) unless you pick another ticker, given exactly the same money on the same days. When a younger fund makes the basket start later, the comparison is run again from that day, so both cover the same years.

Where the data comes from

Prices and dividend history come from Financial Modeling Prep's end-of-day feed. Nothing on this page is produced by a language model — the same inputs always give the same numbers. See About for the full source list.

The window is the overlap

If one holding is younger than the others, the test starts where all of them have prices — and says so, rather than quietly testing different lengths of history.

Cuts you actually took

A year counts as a cut only if both the annual total per share and the average payment fell. That keeps the real ones and drops the artifacts — a monthly payer with 13 ex-dates in one calendar year, or a BDC paying more in total across extra supplementals.

Questions

Do I need an account to backtest a portfolio?

No. Nothing here is gated, and results live in the URL — copy the link to share a run.

Which tickers work?

US-listed stocks, ETFs and REITs. If a symbol has no dividend history, it still backtests — it just contributes price return only.

Why does my start date move?

The test needs every holding to have prices. Add a fund that launched in 2020 and the window starts in 2020, with a note saying so.

Can the portfolio be rebalanced?

Yes. With two or more holdings, set "Rebalance to these weights" to Each January: the basket is reset to its target weights at the close of each year's first trading day. Left at Never, the weights set the first purchase and then drift, as they would for someone who bought once and held.

What is the comparison line?

The S&P 500 through SPY, with its dividends reinvested, given exactly the same money on the same days as your basket. Type another ticker in "Compare with", or choose None. To compare two funds, put one in the basket and the other in "Compare with".

Can I add money every month?

Yes. Put an amount in "Adding every month": it buys more of the basket at your weights on the first trading day of each month, and the comparison line gets the same. The result then shows two returns: the basket's own, which deposits do not move, and the return on your money, which depends on when each dollar went in.

Are taxes and fees included?

No. Returns are gross: no withholding on dividends, no commissions, no fund fees beyond those already inside an ETF's price.

How far back can I go?

Twenty years. If a holding is younger than the window, the test starts where its prices start and tells you the date it used.