· Data & methodology

What's under the hood.

Every backtest on this site uses real historical prices. This page documents where the data comes from, how often it's refreshed, and the assumptions that go into every calculation.

Data sources

Historical prices

Yahoo Finance

All historical price files are populated by pnpm seed which calls the public Yahoo Finance chart endpoints. Equities and ETFs use adjusted-close prices (split- and dividend-adjusted). Crypto uses USD-denominated daily close. Commodities use the continuous front-month futures contract via the =F suffix (GC=F for gold, SI=F for silver).

Live prices on calculator pages

CoinLore + Yahoo

The current-price displays on calculator pages call CoinLore for crypto and the Yahoo Finance quote endpoint for equities and commodities. Responses are cached at the edge for 60–300 seconds. If either provider returns an error, the page falls back to the most recent close in the historical dataset.

How prices are processed

  • Adjusted close
    Equity and ETF series use split- and dividend-adjusted close prices. This means a long-window backtest implicitly reinvests dividends; the headline return is total return, not price return.
  • Trading-day fill
    Each scheduled buy looks up the price at the next available trading day on or after the scheduled date. Weekends and US market holidays roll forward to the next session.
  • Crypto continuous coverage
    Crypto markets trade 24/7. Yahoo's daily series has one row per UTC day; we treat each row as that day's close in USD.
  • No spread, no fees, no taxes
    All calculators assume zero commission, zero spread, and no taxes. Real venues charge 0–1% per trade and may incur withholding or capital-gains tax. Real returns will be slightly lower.
  • Fractional units
    Buys are allowed to acquire fractional shares or coins. If your venue does not support fractional units, real-world buys would round down each period.

Refresh cadence

Historical JSON files are regenerated periodically via pnpm seed and a fresh site is deployed. Each calculator's sitemap lastModified entry tracks the newer of the page source and the underlying data files, so search engines see realistic freshness signals rather than synthetic built-just-now timestamps.

The live price endpoints (/api/prices/crypto, /api/prices/equity) are cached at the edge for short windows (60 seconds for equities, 300 seconds for crypto). Stale-while-revalidate keeps responses snappy under load. Both routes are disallowed in robots.txt because they serve raw JSON for the calculator UI and have no value as indexable pages.

Asset coverage

Symbol
Category
First date
Last date
Rows
Gold
commodities
Aug 30, 2000
May 18, 2026
6,452 (229.7 KB)
Silver
commodities
Aug 30, 2000
May 18, 2026
6,454 (224.9 KB)
ADA
crypto
Nov 9, 2017
May 18, 2026
3,113 (106.2 KB)
ALGO
crypto
Jun 21, 2019
May 18, 2026
2,524 (86.1 KB)
APT
crypto
Oct 19, 2022
May 18, 2026
1,308 (44.8 KB)
ARB
crypto
Mar 23, 2023
May 18, 2026
1,153 (39.3 KB)
ATOM
crypto
Mar 14, 2019
May 18, 2026
2,623 (90.3 KB)
AVAX
crypto
Jul 13, 2020
May 18, 2026
2,067 (72.3 KB)
BCH
crypto
Nov 9, 2017
May 18, 2026
3,113 (112.4 KB)
BNB
crypto
Nov 9, 2017
May 18, 2026
3,113 (110.9 KB)
BTC
crypto
Sep 17, 2014
May 18, 2026
4,262 (159.3 KB)
DOGE
crypto
Nov 9, 2017
May 18, 2026
3,113 (103.3 KB)
DOT
crypto
Aug 20, 2020
May 18, 2026
2,098 (72.1 KB)
ETC
crypto
Nov 9, 2017
May 18, 2026
3,113 (108.2 KB)
ETH
crypto
Nov 9, 2017
May 18, 2026
3,113 (114.1 KB)
FIL
crypto
Dec 13, 2017
May 18, 2026
3,079 (105.9 KB)
HBAR
crypto
Sep 17, 2019
May 18, 2026
2,436 (83.2 KB)
ICP
crypto
May 10, 2021
May 18, 2026
1,835 (63.2 KB)
INJ
crypto
Oct 21, 2020
May 18, 2026
2,036 (70.3 KB)
LINK
crypto
Nov 9, 2017
May 18, 2026
3,113 (107.6 KB)
LTC
crypto
Sep 17, 2014
May 18, 2026
4,262 (149.4 KB)
MATIC
crypto
Apr 28, 2019
Mar 24, 2025
2,158 (73.6 KB)
NEAR
crypto
Oct 14, 2020
May 18, 2026
2,043 (69.8 KB)
OP
crypto
Mar 14, 2022
May 18, 2026
1,527 (51.5 KB)
SOL
crypto
Apr 10, 2020
May 18, 2026
2,230 (78.8 KB)
SUI
crypto
May 3, 2023
May 18, 2026
1,112 (38.0 KB)
TIA
crypto
Oct 31, 2023
Mar 12, 2025
499 (17.2 KB)
TON
crypto
Aug 27, 2021
May 18, 2026
1,726 (58.9 KB)
TRX
crypto
Nov 9, 2017
May 18, 2026
3,113 (106.2 KB)
UNI
crypto
Sep 18, 2020
May 18, 2026
2,069 (71.2 KB)
XLM
crypto
Nov 9, 2017
May 18, 2026
3,113 (106.2 KB)
XRP
crypto
Nov 9, 2017
May 18, 2026
3,113 (106.1 KB)
AAPL
stocks
Dec 12, 1980
May 15, 2026
11,448 (395.3 KB)
ABBV
stocks
Jan 2, 2013
May 15, 2026
3,363 (119.0 KB)
AMD
stocks
Mar 17, 1980
May 15, 2026
11,636 (402.2 KB)
AMZN
stocks
May 15, 1997
May 15, 2026
7,296 (253.4 KB)
AVGO
stocks
Aug 6, 2009
May 15, 2026
4,220 (147.0 KB)
BAC
stocks
Feb 21, 1973
May 15, 2026
13,422 (463.8 KB)
BRK-B
stocks
May 9, 1996
May 15, 2026
7,553 (266.9 KB)
COST
stocks
Jul 9, 1986
May 15, 2026
10,041 (352.0 KB)
CSCO
stocks
Feb 16, 1990
May 15, 2026
9,127 (317.4 KB)
DIS
stocks
Jan 2, 1970
May 15, 2026
14,214 (494.0 KB)
GOOGL
stocks
Aug 19, 2004
May 15, 2026
5,470 (192.3 KB)
HD
stocks
Sep 22, 1981
May 15, 2026
11,253 (393.0 KB)
JNJ
stocks
Jan 2, 1970
May 15, 2026
14,214 (494.0 KB)
JPM
stocks
Mar 17, 1980
May 15, 2026
11,636 (405.2 KB)
KO
stocks
Jan 2, 1970
May 15, 2026
14,214 (491.5 KB)
MA
stocks
May 25, 2006
May 15, 2026
5,025 (178.2 KB)
MCD
stocks
Jan 2, 1970
May 15, 2026
14,214 (494.0 KB)
META
stocks
May 18, 2012
May 15, 2026
3,518 (125.9 KB)
MSFT
stocks
Mar 13, 1986
May 15, 2026
10,122 (353.9 KB)
NFLX
stocks
May 23, 2002
May 15, 2026
6,034 (208.3 KB)
NVDA
stocks
Jan 22, 1999
May 15, 2026
6,871 (236.2 KB)
PEP
stocks
Jun 1, 1972
May 15, 2026
13,602 (472.8 KB)
PG
stocks
Jan 2, 1970
May 15, 2026
14,214 (493.3 KB)
QQQ
stocks
Mar 10, 1999
May 15, 2026
6,839 (242.3 KB)
SPY
stocks
Jan 29, 1993
May 15, 2026
8,381 (297.5 KB)
TSLA
stocks
Jun 29, 2010
May 15, 2026
3,995 (140.6 KB)
TSM
stocks
Oct 9, 1997
May 15, 2026
7,194 (249.5 KB)
V
stocks
Mar 19, 2008
May 15, 2026
4,569 (162.3 KB)
WMT
stocks
Aug 25, 1972
May 15, 2026
13,542 (468.1 KB)
XOM
stocks
Jan 2, 1970
May 15, 2026
14,214 (492.0 KB)

Known limitations

  • !Past performance is not a predictor of future returns. A backtest tells you what would have happened under the chosen rules; it does not promise the same outcome going forward.
  • !Survivorship bias affects every asset list on this site. The assets supported are ones that survived to today. Many failed projects, delisted stocks, and dead coins are not represented.
  • !Forecast modes apply a constant growth rate and cannot model drawdowns, regime changes, or correlation between assets. Treat forecasts as planning illustrations, not predictions.
  • !All amounts are in nominal USD. To translate into real (inflation-adjusted) dollars, deflate the result by your assumed inflation rate.
  • !Yahoo Finance occasionally backfills or corrects historical data. A new seed run may slightly change a long-window backtest result.
Want to dig deeper? Read The Method for the strategy side, or the disclaimer for what this site is and isn't.