Today's S&P 500 companies and major index funds, in US dollars.

$1 to $1,000,000,000, put in once, on the start date.

If markets were closed that day, the nearest trading day is used, and the answer says so.

How the money goes in
More options: an end date, a monthly amount

Leave it empty for the latest close.

Added for every 1st of a month after the start date, on the trading day nearest that 1st, up to $10,000,000. Leave it empty for none.

Pick a stock or fund (or use your own price file), enter an amount and a start date, then press Calculate.

What the result means

Value
What the money put in was worth at the end date's close.
Total return
The final value divided by the money put in, minus one, as a percentage.
Yearly return
For one sum put in once, the steady yearly rate that turns it into the final value (the compound annual growth rate). For amounts put in on several dates, the money-weighted rate (the internal rate of return), which counts each amount only from the day it went in. Shown only when the money was invested for a year or more.
Worst fall
In the lump-sum answer for a listed stock or fund: the deepest drop in its price from a closing high to a later close. In the other answers: the deepest drop in the holding's value from a high to a later low.
Back to the pre-fall high
The time from the low of the worst fall to the first close back at the high before it, or "not yet".
Left uninvested
Money set aside for buying the dip that wasn't used by the end date: no fall came, or the next buy would have gone over the most to invest.

What changes the result

The dates. The same stock gives different results from different start and end days, because the prices in between differ.

How the money goes in. A lump sum is invested for the whole period from the first day. Equal amounts on a schedule buy at many different prices. Buying the dip waits for falls, so money can sit unused, and the result depends on when the falls came.

The dip settings. A lower fall percentage triggers buys more often; a larger amount per dip (in All three, a larger share per buy) uses the money in fewer buys.

Dividends. Listed stocks and funds count them as reinvested. Your own file is used as it is.

Lump Sum vs Dollar-Cost Averaging

Lump sum puts the whole amount in on the start date (the nearest trading day) and leaves it invested until the end date.

Dollar-cost averaging puts a set amount in on each date of a weekly, monthly or quarterly schedule, each bought on the trading day nearest that date. In All three, the same total is split into equal amounts instead, one for each date, so every way puts in the same money. Money waiting for its date earns nothing here. It is also called a SIP (India), a Sparplan (Germany), a PAC (Italy), a versement programmé (France) or tsumitate (Japan).

Buying the dip holds the money as cash. Each time the close is the chosen percentage below the highest close so far, a set amount buys in (in All three, a set share of the total), and the high is tracked again from that day, so one long slide counts once. Buys stop when the next one would go over the most to invest. Falls that don't come leave cash unused; more falls than the money allows means later ones are skipped.

What is and isn't included

Past prices only: daily closing prices adjusted for stock splits, with dividends reinvested, for today's S&P 500 companies and major index funds. Companies that have left the index aren't covered. Your own file is used as it is.

Not included: taxes, trading fees, fund fees beyond those already in a fund's price, and currency conversion. Money waiting to be invested earns nothing. The figures show what happened over past dates; they don't predict future results and don't say what to buy.

About this calculation

What it calculates
For one stock, fund or price file and the dates chosen: the value of the money put in at the end date, the total return, the yearly return, the worst fall and, for the lump-sum answer, the time back to the pre-fall high. For dollar-cost averaging and buying the dip, also each purchase and any money left unused, and a Sharpe ratio.
Inputs
A listed stock or fund, or a price file; a start date; how the money goes in; the amount: once for a lump sum, per week, month or quarter for dollar-cost averaging, per dip with the most to invest for buying the dip, or one total for all three. Optional: an end date; a monthly amount added to a lump sum (listed stocks and funds); the schedule (dollar-cost averaging); the fall (buying the dip); the share of the total per dip buy (all three); the rate for the Sharpe ratio.
Prices
Daily closing prices adjusted for stock splits and dividends, so each dividend counts as if it bought more of the same stock. A price file's prices as given.
Dates
The start and end dates move to the nearest trading day (the earlier one when two are equally near). A lump sum buys at the start day's close. Dollar-cost averaging buys on the trading day nearest each scheduled date from the start date to the end date. Buying the dip checks every close from the start date. A monthly amount buys for each 1st of a month after the start date and on or before the end date, on the trading day nearest that 1st.
Yearly return
The compound annual growth rate for one sum: (final value ÷ amount)1 ÷ years − 1, with years counted as days ÷ 365. The internal rate of return for amounts put in on several dates.
Sharpe ratio
(Yearly return − the rate you set) ÷ the yearly volatility of the holding's daily returns, with money added on a day left out of that day's return.
Rounding
Calculated at full precision and rounded only for display: whole dollars (cents for an amount per purchase), whole-percent total returns (one decimal under 1%), one decimal for yearly returns and falls.
Exclusions
Taxes, fees, currency conversion and companies no longer in the index.
Freshness
Prices update after each trading day.
Reproduce
Copy link reopens the same inputs. A price file isn't part of the link.

Common questions

Do the figures include dividends?

Yes, for listed stocks and funds: prices are adjusted for stock splits, with dividends reinvested, as if each dividend bought more of the same stock. A price file you use is taken as it is, so if its prices aren't adjusted for dividends, the result leaves them out.

What if the start date isn't a trading day?

The nearest trading day is used, the earlier one when two are equally near, and the answer says which day it was.

How is dollar-cost averaging set up here?

You pick the amount per buy and the schedule (weekly, monthly or quarterly, and the day). That amount buys on the trading day nearest each date from the start date to the end date. In All three, the total is split into equal parts instead, one for each date, so all three ways put in the same money.

What counts as a dip, and when does it start again?

A close that is the chosen percentage below the highest close so far. After each buy, the high is tracked again from that day, so a single long slide down counts as one dip, not several, even if the price keeps falling before it turns back up.

Why are the yearly returns measured differently?

One sum put in once has one start date, so its yearly return is the compound annual growth rate. Amounts put in on many dates were invested for different lengths of time, so their yearly return is the money-weighted rate (the internal rate of return), which counts each amount only from the day it went in. The two are not the same measure.

Can I use my own price data?

Yes: choose "Use my own price file (CSV) instead" under the stock box. The file needs exactly two columns, Date and Price, in that order; extra columns are rejected rather than ignored. It is read and checked in your browser; only its dates and prices are sent to SmartFin's server to calculate the answer, and they aren't stored.