· 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
Jul 6, 2026
6,484 (230.9 KB)
Silver
commodities
Aug 30, 2000
Jul 6, 2026
6,486 (226.0 KB)
ADA
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (107.9 KB)
ALGO
crypto
Jun 21, 2019
Jul 6, 2026
2,573 (87.8 KB)
APT
crypto
Oct 19, 2022
Jul 6, 2026
1,357 (46.5 KB)
ARB
crypto
Mar 23, 2023
Jul 6, 2026
1,202 (41.0 KB)
ATOM
crypto
Mar 14, 2019
Jul 6, 2026
2,672 (91.9 KB)
AVAX
crypto
Jul 13, 2020
Jul 6, 2026
2,116 (73.9 KB)
BCH
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (114.2 KB)
BNB
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (112.6 KB)
BTC
crypto
Sep 17, 2014
Jul 6, 2026
4,311 (161.1 KB)
DOGE
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (105.0 KB)
DOT
crypto
Aug 20, 2020
Jul 6, 2026
2,147 (73.8 KB)
ETC
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (109.9 KB)
ETH
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (115.9 KB)
FIL
crypto
Dec 13, 2017
Jul 6, 2026
3,128 (107.6 KB)
HBAR
crypto
Sep 17, 2019
Jul 6, 2026
2,485 (84.9 KB)
ICP
crypto
May 10, 2021
Jul 6, 2026
1,884 (64.9 KB)
INJ
crypto
Oct 21, 2020
Jul 6, 2026
2,085 (72.0 KB)
LINK
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (109.2 KB)
LTC
crypto
Sep 17, 2014
Jul 6, 2026
4,311 (151.2 KB)
MATIC
crypto
Apr 28, 2019
Mar 24, 2025
2,158 (73.6 KB)
NEAR
crypto
Oct 14, 2020
Jul 6, 2026
2,092 (71.5 KB)
OP
crypto
Mar 14, 2022
Jul 6, 2026
1,576 (53.2 KB)
SOL
crypto
Apr 10, 2020
Jul 6, 2026
2,279 (80.5 KB)
SUI
crypto
May 3, 2023
Jul 6, 2026
1,161 (39.6 KB)
TIA
crypto
Oct 31, 2023
Mar 12, 2025
499 (17.2 KB)
TON
crypto
Aug 27, 2021
Jul 6, 2026
1,755 (59.9 KB)
TRX
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (107.9 KB)
UNI
crypto
Sep 18, 2020
Jul 6, 2026
2,118 (72.8 KB)
XLM
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (107.8 KB)
XRP
crypto
Nov 9, 2017
Jul 6, 2026
3,162 (107.8 KB)
AAPL
stocks
Dec 12, 1980
Jul 2, 2026
11,480 (396.5 KB)
ABBV
stocks
Jan 2, 2013
Jul 2, 2026
3,395 (120.2 KB)
AMD
stocks
Mar 17, 1980
Jul 2, 2026
11,668 (403.4 KB)
AMZN
stocks
May 15, 1997
Jul 2, 2026
7,328 (254.6 KB)
AVGO
stocks
Aug 6, 2009
Jul 2, 2026
4,252 (148.2 KB)
BAC
stocks
Feb 21, 1973
Jul 2, 2026
13,454 (465.0 KB)
BRK-B
stocks
May 9, 1996
Jul 2, 2026
7,585 (268.1 KB)
COST
stocks
Jul 9, 1986
Jul 2, 2026
10,073 (353.2 KB)
CSCO
stocks
Feb 16, 1990
Jul 2, 2026
9,159 (318.6 KB)
DIS
stocks
Jan 2, 1970
Jul 2, 2026
14,246 (495.1 KB)
GOOGL
stocks
Aug 19, 2004
Jul 2, 2026
5,502 (193.5 KB)
HD
stocks
Sep 22, 1981
Jul 2, 2026
11,285 (394.1 KB)
JNJ
stocks
Jan 2, 1970
Jul 2, 2026
14,246 (495.1 KB)
JPM
stocks
Mar 17, 1980
Jul 2, 2026
11,668 (406.4 KB)
KO
stocks
Jan 2, 1970
Jul 2, 2026
14,246 (492.7 KB)
MA
stocks
May 25, 2006
Jul 2, 2026
5,057 (179.4 KB)
MCD
stocks
Jan 2, 1970
Jul 2, 2026
14,246 (495.2 KB)
META
stocks
May 18, 2012
Jul 2, 2026
3,550 (127.0 KB)
MSFT
stocks
Mar 13, 1986
Jul 2, 2026
10,154 (355.0 KB)
NFLX
stocks
May 23, 2002
Jul 2, 2026
6,066 (209.4 KB)
NVDA
stocks
Jan 22, 1999
Jul 2, 2026
6,903 (237.3 KB)
PEP
stocks
Jun 1, 1972
Jul 2, 2026
13,634 (473.9 KB)
PG
stocks
Jan 2, 1970
Jul 2, 2026
14,246 (494.5 KB)
QQQ
stocks
Mar 10, 1999
Jul 2, 2026
6,871 (243.5 KB)
SPY
stocks
Jan 29, 1993
Jul 2, 2026
8,413 (298.7 KB)
TSLA
stocks
Jun 29, 2010
Jul 2, 2026
4,027 (141.8 KB)
TSM
stocks
Oct 9, 1997
Jul 2, 2026
7,226 (250.6 KB)
V
stocks
Mar 19, 2008
Jul 2, 2026
4,601 (163.5 KB)
WMT
stocks
Aug 25, 1972
Jul 2, 2026
13,574 (469.2 KB)
XOM
stocks
Jan 2, 1970
Jul 2, 2026
14,246 (493.2 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.