Backtesting Guide
A backtest takes one exact plan, a starting amount, a contribution schedule, a date range, and replays it against real historical prices to show what that plan would have produced. It is not a forecast. A single headline return like "up 400% since 2020" usually hides more than it reveals about the path taken to get there. This guide explains how the monthly backtest model actually works, the difference between dollar cost averaging and a lump sum, six mistakes that quietly distort a backtest, and one worked example run identically across four asset classes: crypto, Magnificent 7 stocks, metals, and the S&P 500.
What backtesting actually means, and what a single number does not prove
A backtest takes a fixed contribution schedule and a starting amount, then replays them against a security's actual historical prices, month by month. The output shows what that specific plan would have produced over that specific window, nothing more. It answers one narrow question: what would this exact plan have returned over this exact period? It does not predict what any plan will return going forward. And it is not the same exercise as testing a trading rule whose entry and exit points were chosen with the benefit of hindsight, a related but distinct practice usually called curve fitting.
This distinction matters because a bare headline claim like "Bitcoin is up roughly 395% since January 2020" compresses an entire multi-year, highly volatile price path into a single number. Extend that same coin's own price history by exactly one more year to include 2022, and the picture changes sharply: Bitcoin fell approximately 64% during calendar year 2022 alone. Neither number is wrong. Both are accurate descriptions of the same real price series. The only difference is which two dates were chosen to measure between. That is exactly why a backtest needs to show the full path, not just the two endpoints.
This site runs four backtest tools built on the same underlying mechanic: the Crypto Investment Calculator, the Magnificent 7 Stocks Calculator, the Metals Investment Calculator, and the S&P 500 backtest on the homepage. Each converts a security's monthly closing prices into monthly returns, applies those returns to a running balance that also receives your recurring contribution, and aggregates the result into a yearly breakdown table and a stacked growth chart. That shared mechanic is what "backtest" means specifically on this site.
Once the historical price series ends, every one of the four tools switches to a user-supplied assumed annual return for any remaining years in the selected window. That assumed portion is a guess you entered, not a measured historical result. Keeping the two separate, visually and mentally, is one of the most useful habits a backtest reader can build.
One exact plan, not a general claim: A backtest measures a specific starting amount, contribution size, contribution frequency, and start and end date. Change any one of those four inputs and the result can shift by an order of magnitude. That is why two people quoting the "same" backtest can arrive at very different numbers.
Historical, not predictive: The result describes what already happened to a real price series under one specific plan. It says nothing about what that same asset will do over the next equivalent period, however long the historical window used.
Different from curve fitting: A backtest with a fixed, pre-defined plan (fixed contribution, fixed schedule) is different from testing a trading rule whose parameters were tuned after seeing how the data behaved. Regulators specifically flag the second practice, sometimes called hypothetical or back-tested performance, because it can quietly borrow information from the future to make a strategy look better than it would have looked in real time.
How a monthly backtest actually computes your result
Each of the four calculators steps through the selected date range one calendar month at a time. In every month, that month's contribution is added to the running balance first. Only then is that month's market return applied to the enlarged balance. A contribution therefore participates in that same month's gain or loss. It is not held aside until the following period.
Contributions can be entered at seven different frequencies: daily, weekly, biweekly, semimonthly, monthly, quarterly, or annual. Before the simulation runs, every frequency is converted to an equivalent monthly amount so the compounding stays on one consistent timeline. A $50 weekly contribution, for example, becomes an effective $216.67 a month for calculation purposes: $50 times 52 weeks, divided by 12 months. That is why switching the frequency dropdown never changes your annual contribution total, only how it is spread across the year.
Source data completeness varies slightly by asset. See the Data Guide below for the full picture of where each series comes from and how often it refreshes.
The monthly balances are then rolled up into calendar year totals: contributions added that year, growth earned that year, and the balance at year end. That yearly table, and the stacked chart that splits starting amount, cumulative contributions, and cumulative growth, uses the same output format across the crypto, Magnificent 7, metals, and S&P 500 backtests. That shared format is exactly what makes results from the four tools directly comparable to each other.
Contribution timing: Contributions are added before that month's return is applied, so new money can participate in a sharp move the very month it lands, for better or worse.
Frequency normalization: Every contribution frequency is converted to an equivalent monthly amount first. $50 a week becomes approximately $216.67 a month, keeping every schedule on the same monthly compounding timeline.
Lump sum vs dollar cost averaging, and what happens once the data runs out
Dollar cost averaging means investing a fixed amount at regular intervals rather than committing the full amount all at once. It buys more units when the price is lower and fewer when it is higher. All four backtest tools on this site model dollar cost averaging by design: a starting amount plus a recurring contribution on the schedule you choose, rather than a single lump-sum entry on one date.
A lump sum comparison shows why the entry date matters so much for a single deposit. Putting money into Bitcoin in January 2020 and holding without adding anything further through December 2021 would have produced a gain of roughly 395%. Holding that exact same lump sum through calendar year 2022 instead of selling at the end of 2021 would have cut the position by roughly 64%. A recurring contribution plan spreads that entry-date risk across many purchase dates instead of concentrating it on one. That does not guarantee a better result, only a different distribution of possible outcomes.
Every one of the four calculators also includes an assumed annual return you can set for years beyond the last available data point. That figure is converted into an effective monthly rate before being applied, using the same formula across all four tools: a 5% annual assumption becomes approximately 0.41% per month, compounded from that point forward. Because this portion of the projection uses a number you chose rather than a number the market produced, read it as a scenario, not as an extension of the historical record.
Window length changes the picture too. A one-year window that happens to land on a sharp downturn looks completely different from a ten-year window that includes that same downturn alongside years of recovery on either side. The S&P 500, for example, fell approximately 44.8% from December 2007 to December 2008 during the financial crisis. A longer window does not eliminate that kind of volatility; it simply blends more of it together into one final number.
Dollar cost averaging: A fixed amount invested on a regular schedule regardless of price, which is what the recurring contribution field models across every calculator on this site.
Lump sum: A single deposit on one date, which concentrates all of the entry-date risk into that one month rather than spreading it across dozens of purchase dates.
Assumed return after the last data year: A user-supplied annual percentage, converted to roughly 0.41% per month at a 5% assumption, applied only once real historical data for the selected asset runs out.
Worked example: the same $1,000 plus $200 a month across four asset classes
Setting up one identical plan across four calculators
Start with $1,000 and add $200 every month from January 2015 through December 2024, a 10 year window covering 120 monthly contributions. Total contributions come to $24,000, for a combined cost basis of $25,000 no matter which asset the plan is run against. The starting amount, the contribution, and the exact dates are identical across all four calculators, so only each asset's own price history explains the difference in the ending balance.
How the four assets played out over the identical 120 months
Bitcoin, run through the Crypto Investment Calculator, turned the $25,000 cost basis into approximately $1,986,955, of which roughly $1,961,955 came from price growth rather than contributions.
Apple stock, run through the Magnificent 7 Stocks Calculator with dividend reinvestment left off, turned the same plan into approximately $106,742, with growth of roughly $81,742.
Gold, run through the Metals Investment Calculator, turned the same plan into approximately $44,227, with growth of roughly $19,227.
The S&P 500, run through the index backtest built into the homepage, turned the same plan into approximately $49,601, with growth of roughly $24,601.
What the spread between these four numbers actually shows
The ending balances span more than 44 times between the smallest result, gold, and the largest, Bitcoin, using the exact same starting amount, contribution, and 120 month window. That spread is not proof that one asset is simply the better plan. Bitcoin's own path through this decade included a fall of roughly 74% during calendar year 2018 and roughly 64% during calendar year 2022, both of which had to be held through, not sold through, to reach the final number above. Gold's single worst calendar year in the same ten-year window barely moved at all by comparison. That calm is the tradeoff a lower ceiling buys.
Six mistakes that quietly break a backtest
Backtests are precise about the numbers they compute and easy to misread about what those numbers actually mean. These six mistakes account for most of the gap between a technically correct backtest and a conclusion that does not hold up.
Cherry-picked start and end dates: Quoting Bitcoin's return from January 2020 through December 2021 alone shows a gain of roughly 395%. Extending that exact same price series just twelve more months to include calendar year 2022 turns it into a loss of roughly 64% for that single additional year. The dates chosen, not the asset, produced most of the difference between those two claims.
Survivorship bias in broader lists: A "top performing coins" or "top performing stocks of the decade" list built only from assets that are still trading today silently drops anything that was delisted or shut down along the way. That commonly inflates a category's apparent historical return by an estimated 1 to 4 percentage points a year, according to broad academic studies of equity samples. None of the four calculators on this site face this issue directly, since each backtests one named, currently trading asset rather than a historical universe of constituents, but it is the central reason a "best performers" ranking deserves extra scrutiny.
Ignoring fees, spreads, and taxes: A flat $5 fee on a $100 monthly contribution reduces the amount actually invested to $95 that month. Over 20 years of monthly contributions that is $1,200 in principal that never entered the market, before counting the opportunity cost of that capital never compounding at all.
Extrapolating one strong or weak year: A single calendar year of outsized gains or losses is not a reliable annual growth rate to project forward. The S&P 500 fell approximately 44.8% in calendar year 2008 alone. Treating that one year as the expected long-term annual return, in either direction, produces a wildly unrealistic multi-decade projection.
Blending real history with the assumed-return projection: Once a backtest reaches the end of available price data, the remaining years run on a user-supplied assumed return rather than an actual measured one. A final chart bar that blends 8 real historical years with 2 assumed years at a chosen 5% rate can look like one continuous historical result unless the boundary between the two stays explicit.
Skipping dividends, staking yield, or storage costs: The Magnificent 7 Stocks Calculator's dividend toggle adds roughly $2,000 to $4,000 to a 20-year, $1,000 plus $100 a month Apple plan when switched on. Proof-of-stake coins like ETH can add another 3% to 6% a year in staking yield that none of these calculators track by default. Physical metals carry the opposite cost: storage and insurance commonly run 0.5% to 1% a year, which these futures-based backtests also exclude.
What actually drives your backtest result
Four inputs explain almost all of the variation between one backtest result and another: the asset's own volatility, the length of the window tested, the contribution schedule and timing, and whether optional income like dividends or a projected assumed return is switched on.
Volatility sets the ceiling and the floor. Bitcoin's annualized price volatility typically runs in the 50% to 100% range, compared with roughly 15% to 20% for the S&P 500. That gap is the single biggest reason the worked example above produced a 44-times spread between gold and Bitcoin from an identical $25,000 cost basis. Higher volatility raises the best-case ceiling and lowers the worst-case floor at the same time; it does not only work in one direction.
Window length changes how much of that volatility gets averaged together. Apple's own price alone rose approximately 649.5% from January 2015 to December 2024 on a price-only basis, one tidy-looking decade-long number that hides individual years of double-digit declines inside it. A one or two year slice of the same series can look dramatically better or worse than the full ten-year figure, depending on exactly which years fall inside the slice.
Contribution schedule and frequency matter less than the underlying asset but still shift the result. Because contributions are added before that month's return is applied, a contribution landing right before a strong month participates fully in that gain, while one landing right before a weak month absorbs that loss immediately. Spreading contributions across more months, rather than fewer larger ones, reduces how much any single month's timing can swing the outcome.
Finally, optional toggles like dividend reinvestment on Magnificent 7 stocks, or the assumed return applied after real data ends on any of the four tools, can materially change the final number without changing anything about the underlying asset's own historical price path. Checking which toggles are switched on is often the fastest way to explain why two backtests of the "same" asset produced two different final balances.
Sources
The definitions of backtested and hypothetical performance, and of dollar cost averaging, used throughout this guide follow the official investor education material published by the US Securities and Exchange Commission.
Which backtesting calculator fits your question
The four backtest tools on this site share one mechanic but answer different questions. Picking the right starting point usually comes down to which asset class the question is actually about.
Use the Crypto Investment Calculator for a single named coin such as Bitcoin or Ethereum when the question centers on high volatility and a comparatively short trading history. Most coins on this tool only have reliable monthly data going back to somewhere between 2014 and 2020, depending on the coin.
Use the Magnificent 7 Stocks Calculator when the question is about one specific large-cap technology company rather than a diversified basket. Toggle dividend reinvestment on for Apple or Microsoft if the goal is closer to a true total-return comparison than a price-only one.
Use the Metals Investment Calculator to add a hard-asset comparison point. Precious metals like gold and silver behave differently from equities during inflation and currency stress, while industrial metals like copper and aluminum track manufacturing demand more closely.
Use the S&P 500 backtest built into the homepage as the diversified-index baseline against any of the other three. Then switch to Classic or Goal mode on that same page once you want to move from historical backtesting into a forward-looking projection with your own assumed return.