DCA Investment Simulator
See how a recurring investment plan would have played out historically.
InvestGraph replays a recurring investment plan against real historical prices. Choose a stock or ETF, a date range, an optional lump sum, and how much you would have added each week, month, or quarter. The simulator buys at each contribution date's closing price, tracks dividends, and shows what the plan would have been worth along the way, with an animated chart you can export as a video. It is a way to see how dollar-cost averaging behaved in the past, not a forecast.
Not investment advice. This is a simulation of past market data. Past performance is not indicative of future results.
Simulation inputs
Results
- Final value
- —
- Total invested
- —
- Total return
- —
- CAGR
- —
- Cumulative dividends
- —
- Final share count
Transactions
| Date | Type | Amount | Price | Shares |
|---|
Animated chart
Export video
Exporting renders and encodes entirely on your own device — nothing is uploaded anywhere. It may take a while, especially on older phones or laptops.
Advanced: frame rate & duration
Understanding the results
Here is exactly what each number in the results panel means and how it is calculated.
- Total invested
- The sum of your initial investment and every recurring contribution that was executed inside the date range. Dividends are never counted here, even when they are reinvested, so this is only money you put in.
- Final value
- What the position was worth on the last trading day in the range: shares held × that day's closing price, plus any dividends kept as cash (when reinvestment is off). Cash is held as-is and earns no interest.
- Total return
- Final value minus total invested, shown as an amount and as a percentage: (final value − total invested) ÷ total invested × 100.
- CAGR
- Compound annual growth rate: (final value ÷ total invested)^(1 ÷ years) − 1, where years = days between the start and end dates ÷ 365.25. This simplified formula treats all of your money as if it had been invested on the start date. In a DCA plan, later contributions were invested for less time, so it tends to understate the size of the plan's true annualized return, whether that return is a gain or a loss. It is shown only when the range spans at least one year.
- Cumulative dividends
- All dividend cash the position earned: on each ex-dividend date, the shares held before that day × the dividend per share. It is counted whether the dividends were reinvested or kept as cash.
- Final share count
- The number of shares held at the end, including fractional shares bought by contributions and reinvested dividends.
- Transactions
- Every purchase the simulation made (the initial buy, each recurring contribution, and each dividend reinvestment) with its date, amount, the closing price used, and the shares bought.
Assumptions behind the simulation
- The initial investment is made on the start date, and recurring contributions begin one interval later. A date that falls on a weekend or market holiday rolls forward to the next trading day; contributions that would land after the end date are skipped.
- Every purchase uses that trading day's closing price as reported by the data source (not adjusted for dividends), and fractional shares are allowed.
- Dividends are credited on the ex-dividend date based on the shares held before that day. With reinvestment on, they buy more shares at that day's close; with it off, they are held as cash.
- The currency label is cosmetic: it only changes the text shown next to amounts. No exchange-rate conversion is done, and prices are in whatever currency the security trades in.
- Brokerage fees, taxes, dividend withholding, bid-ask spreads, and slippage are not modeled, so real-world results would usually be somewhat lower.
Frequently asked questions
Where does the price data come from?
Daily closing prices and dividends are retrieved from Yahoo Finance through the open-source yfinance library. The data can be delayed, revised, or occasionally wrong, so treat results as approximate. Data sources
Why does CAGR show N/A?
An annualized rate is only shown when the start and end dates are at least one year apart. Annualizing a shorter period can turn a few weeks of noise into a misleadingly large or small yearly figure.
Are fees, taxes, or currency conversion included?
No. The simulation assumes no fees, taxes, spreads, or withholding, and it never converts currencies. The currency label you enter is only a display label.
Why isn't my first recurring contribution on the start date?
The initial investment is made on the start date (or the next trading day). Recurring contributions start one interval later, so the two don't double up on day one. If you set the initial investment to 0, your first purchase happens one interval after the start date.
Is my data stored or sent anywhere?
There are no accounts. Your simulation inputs are sent to our server only to run the calculation, and video exports are rendered entirely in your browser; nothing is uploaded. Privacy Policy
Can I use the results to decide what to buy?
The simulator shows what happened in one historical period under simplified assumptions. It is not investment advice, and past results do not predict future ones. Common backtesting mistakes