Where the numbers come from
Every feed this site ingests — provider, series, first reading, refresh cadence and terms — computed from the same files the simulator loads, with the arithmetic that turns a close into a figure.
What this page is
Two of the eight axes in the rubric this site scores calculators against ask whether a tool names its price source — with a start date and an update cadence — and whether its arithmetic and its exclusions are written down. This page is that answer for this site.
Every date and count on it is computed when the site is built, from the same seed files the simulator loads. Nothing is typed in, and the page is rebuilt with every refresh, so what it says about a feed is what the feed contained on the day the page was made.
What it is not: the engine's source code, which is not published. What is public is every input (the feeds below), every rule (the knowledge base), and an output you can reproduce by hand (further down). The rubric page says plainly which claim you still have to take on trust — the date the rubric was frozen — and this page does not change that.
When the numbers update
The simulator's footer names the last day its Bitcoin series holds — as this page was built, 15 September 2026. That day is usually yesterday and sometimes the day before, and the gap is the provider's clock, not a fault. A day's close exists only once the UTC day has ended, and Yahoo Finance publishes that bar a few hours later. The refresh job runs at 06:17 and 10:17 UTC every day: the early run collects the bar when it is already posted, the later one catches the mornings it was not. A run that arrives before the bar publishes nothing new for that series, so a close is never guessed at or filled in from the running price. Until the next run lands, every result is marked at the last close the site holds, and a share link names which one.
The feeds
72 series from 4 providers, refreshed at 06:17 and 10:17 UTC every day by a job that publishes whatever it fetched and raises an alarm when a feed is late, rather than freezing the site over one bad night. Bitcoin data runs through 15 September 2026.
Daily cryptocurrency closes — Yahoo Finance
| Series | Feed id | Basis | First reading | Latest reading | Readings | Missing |
|---|---|---|---|---|---|---|
| Bitcoin | BTC-USD | price only | 17 September 2014 | 15 September 2026 | 4,382 | none |
| Ethereum | ETH-USD | price only | 9 November 2017 | 15 September 2026 | 3,233 | none |
| Solana | SOL-USD | price only | 10 April 2020 | 15 September 2026 | 2,350 | none |
| XRP | XRP-USD | price only | 9 November 2017 | 15 September 2026 | 3,233 | none |
Each reading is the day's closing price in US dollars on Yahoo's BTC-USD, ETH-USD, SOL-USD and XRP-USD feeds — a multi-exchange composite rather than one venue's print. Bitcoin is stored to the cent; the other three to four decimals, because Solana's first close was $0.9511 and XRP's $0.2175. The fetch asks for everything from April 2013 and takes what the feed returns, so each series begins on the first day Yahoo publishes for it. Nothing is forward-filled in the pipeline: a scheduled buy that lands on a day with no close executes at the next close, and the row export records both dates. A plan dated before a series begins starts on its first close; buys scheduled earlier are neither made nor counted as invested.
Weekly market bars — Yahoo Finance
| Series | Feed id | Basis | First reading | Latest reading | Readings | Missing |
|---|---|---|---|---|---|---|
| S&P 500 (total return) | ^SP500TR | total return | 3 January 2000 | 7 September 2026 | 1,393 | none |
| Nasdaq 100 (QQQ) | QQQ | total return | 3 January 2000 | 7 September 2026 | 1,393 | none |
| Dow Jones (DIA) | DIA | total return | 3 January 2000 | 7 September 2026 | 1,393 | none |
| Gold (continuous futures) | GC=F | price only, front-month futures | 28 August 2000 | 7 September 2026 | 1,359 | none |
| Silver (continuous futures) | SI=F | price only, front-month futures | 28 August 2000 | 7 September 2026 | 1,359 | none |
| Crude oil, WTI (continuous futures) | CL=F | price only, front-month futures | 21 August 2000 | 7 September 2026 | 1,360 | none |
| Total bond market (BND) | BND | total return | 9 April 2007 | 7 September 2026 | 1,014 | none |
| Apple | AAPL | total return | 3 January 2000 | 7 September 2026 | 1,393 | none |
| Microsoft | MSFT | total return | 3 January 2000 | 7 September 2026 | 1,393 | none |
| Alphabet (Google) | GOOGL | total return | 16 August 2004 | 7 September 2026 | 1,152 | none |
| Amazon | AMZN | total return | 3 January 2000 | 7 September 2026 | 1,393 | none |
| Nvidia | NVDA | total return | 3 January 2000 | 7 September 2026 | 1,393 | none |
| Meta (Facebook) | META | total return | 14 May 2012 | 7 September 2026 | 748 | none |
| Tesla | TSLA | total return | 28 June 2010 | 7 September 2026 | 846 | none |
One bar a week, stored to four decimals. Three rows are deliberately not the index you might expect. The S&P 500 is ^SP500TR, the same 500 companies with dividends reinvested: the price-only ^GSPC understates a real holding by about 23% over the window this site measures most often. The Dow is DIA, the Dow's own ETF, dividends reinvested, less a 0.16% expense ratio. The Nasdaq 100 is QQQ, and that is a substitution rather than an adjustment — no free total-return series exists for the Nasdaq Composite — which is why the row was renamed from "NASDAQ" on 26 August 2026 instead of being quietly re-pointed. Gold, silver and oil are Yahoo's continuous front-month futures tickers; the contracts themselves trade on COMEX and NYMEX. Bonds is Vanguard's total bond-market ETF and begins at its launch. Each series starts on its first weekly bar, which for a company listed after 2000 is the week of its listing. A scheduled buy that falls between bars executes at the next bar.
House prices — FRED, from the Federal Housing Finance Agency
| Series | Feed id | Basis | First reading | Latest reading | Readings | Missing |
|---|---|---|---|---|---|---|
| US house prices (national) | USSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
50 more series — every state, by FHFA series id
| Series | Feed id | Basis | First reading | Latest reading | Readings | Missing |
|---|---|---|---|---|---|---|
| Alabama house prices | ALSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Alaska house prices | AKSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Arizona house prices | AZSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Arkansas house prices | ARSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| California house prices | CASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Colorado house prices | COSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Connecticut house prices | CTSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Delaware house prices | DESTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Florida house prices | FLSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Georgia house prices | GASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Hawaii house prices | HISTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Idaho house prices | IDSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Illinois house prices | ILSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Indiana house prices | INSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Iowa house prices | IASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Kansas house prices | KSSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Kentucky house prices | KYSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Louisiana house prices | LASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Maine house prices | MESTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Maryland house prices | MDSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Massachusetts house prices | MASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Michigan house prices | MISTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Minnesota house prices | MNSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Mississippi house prices | MSSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Missouri house prices | MOSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Montana house prices | MTSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Nebraska house prices | NESTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Nevada house prices | NVSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| New Hampshire house prices | NHSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| New Jersey house prices | NJSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| New Mexico house prices | NMSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| New York house prices | NYSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| North Carolina house prices | NCSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| North Dakota house prices | NDSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Ohio house prices | OHSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Oklahoma house prices | OKSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Oregon house prices | ORSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Pennsylvania house prices | PASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Rhode Island house prices | RISTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| South Carolina house prices | SCSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| South Dakota house prices | SDSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Tennessee house prices | TNSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Texas house prices | TXSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Utah house prices | UTSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Vermont house prices | VTSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Virginia house prices | VASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Washington house prices | WASTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| West Virginia house prices | WVSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Wisconsin house prices | WISTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
| Wyoming house prices | WYSTHPI | price index | 1 January 2000 | 1 April 2026 | 106 | none |
The Federal Housing Finance Agency's All-Transactions House Price Index, one series per state plus the national one, quarterly, each an index (1980 Q1 = 100) rather than a price. The simulator buys fractional units of the index, so a housing row shows what the same dollars would have done tracking that state's prices — before leverage, rent, taxes, maintenance and transaction costs, which are most of a real property outcome. Suggested citation: U.S. Federal Housing Finance Agency, All-Transactions House Price Index for the United States [USSTHPI], retrieved from FRED, Federal Reserve Bank of St. Louis; the state series follow the same form with their own ids.
Commercial real estate — FRED, from the Federal Reserve Board
| Series | Feed id | Basis | First reading | Latest reading | Readings | Missing |
|---|---|---|---|---|---|---|
| Commercial real estate (Fed Z.1) | BOGZ1FL075035503Q | price index | 1 January 2000 | 1 April 2026 | 106 | none |
The Federal Reserve Board's Z.1 Financial Accounts series FL075035503, "Commercial Real Estate Price Index, Level", published quarterly and redistributed by FRED as BOGZ1FL075035503Q. It is a level, not an index anchored near 100: the seed runs from about 125,000 to 314,000, and the simulator buys fractional units of it like any other row. The Fed's series analyzer describes it as computed, since the first quarter of 1996, from CoStar's U.S. Composite Index excluding multifamily (value-weighted), and before that from appraisal-based price-per-square- foot series; it has no transactions component. Suggested citation: Board of Governors of the Federal Reserve System (US), Interest Rates and Price Indexes; Commercial Real Estate Price Index, Level [BOGZ1FL075035503Q], retrieved from FRED, Federal Reserve Bank of St. Louis.
Inflation — FRED, from the Bureau of Labor Statistics
| Series | Feed id | Basis | First reading | Latest reading | Readings | Missing |
|---|---|---|---|---|---|---|
| CPI-U (BLS) | CPIAUCSL | price index | 1 January 2000 | 1 August 2026 | 319 | none |
The Consumer Price Index for All Urban Consumers, all items, U.S. city average, seasonally adjusted (1982–84 = 100), published monthly by the Bureau of Labor Statistics and redistributed by FRED as CPIAUCSL. The engine interpolates linearly between monthly readings to draw a daily purchasing-power line; the core engine article describes the arithmetic. Suggested citation: U.S. Bureau of Labor Statistics, Consumer Price Index for All Urban Consumers: All Items in U.S. City Average [CPIAUCSL], retrieved from FRED, Federal Reserve Bank of St. Louis.
Market sentiment — alternative.me
| Series | Feed id | Basis | First reading | Latest reading | Readings | Missing |
|---|---|---|---|---|---|---|
| Crypto Fear & Greed Index | fng | index level | 1 February 2018 | 16 September 2026 | 3,146 | 4 days never published |
A daily 0–100 sentiment reading that alternative.me build from volatility (25%), market momentum and volume (25%), social media (15%), surveys (15%), Bitcoin dominance (10%) and search trends (10%). The whole history is re-fetched each night. It is not an input to any purchase rule: Smart DCA reads the Mayer Multiple, not this index. Four dates were never published by the feed and are listed under freshness below.
Live Bitcoin spot — CoinGecko
The only market-data request the site makes at read time. The pipeline never stores it, so it appears in no seed file and moves no published figure; if the request fails, the header falls back to the last daily close and says so.
No provider: two formulas and one derived signal
| Curve | Starts | Base | APY | Compounding |
|---|---|---|---|---|
| CD (3% Avg APY) | 1 January 2000 | 100 | 3% | weekly, (1 + APY)7 / 365.25 per step |
| 529 Plan (7% Avg APY) | 1 January 2000 | 100 | 7% | weekly, (1 + APY)7 / 365.25 per step |
A certificate of deposit at 3% APY and a 529 plan at 7% APY, each starting at 100 on 1 January 2000 and compounding weekly. They have no provider because they are arithmetic; the constants in the table are read from the app's own code by the build, so this section cannot describe a formula the app no longer runs.
Window 200 daily closes · below 0.8 reads as cheap · above 2.4 reads as rich — the engine's own constants, printed by the build.
The Mayer Multiple is the close divided by its own 200-day simple moving average, computed in the browser from the daily closes listed under Yahoo Finance. No vendor and no separate feed; it inherits the freshness of the series it is computed from.
From a close to a number
Every asset, from a bitcoin to a state house-price index, is bought in fractional units: the dollars scheduled that day divided by that day's reading. Holdings are the running sum of those fractions, and the value on any date is holdings multiplied by that date's reading. That is what puts a house and a bitcoin on one axis, and the fractional units article walks through it.
A plan has three phases — wait, buy, hold — and its schedule is built in UTC calendar days. When a scheduled buy lands on a day with no reading, the money is held and spent at the next reading; nothing is skipped, and the row export shows both the scheduled and the executed date. A plan dated before a series begins starts on the series' first reading, and buys scheduled earlier are neither made nor counted as invested. The core engine article has the full rules, including how the monthly schedule handles month lengths and how the CPI line is interpolated between monthly readings.
What the arithmetic leaves out, on purpose and everywhere: fees, spreads, slippage, custody, taxes, and for the housing rows the leverage, rent, maintenance and transaction costs that make up most of a real property outcome. Every figure on this site is gross of all of them. Rounding: Bitcoin closes are stored to the cent, every other series to four decimals, and a holding is displayed to a precision derived from its size so that a small position never rounds to zero.
Check a number yourself
The standard question the calculator comparison put to every tool, computed here by the same engine, on the same closes, when this page was built.
$50 every week from 1 January 2018 to 1 January 2021, into Bitcoin. Each purchase buys $50 ÷ that day's close of a bitcoin; the holding is the sum of those fractions, and its value on the end date is holding × the close on 1 January 2021.
| Scheduled | Executed | Close | Spent | Bought (BTC) | Held (BTC) |
|---|---|---|---|---|---|
| 1 January 2018 | 1 January 2018 | $13,657.20 | $50.00 | 0.00366107 | 0.00366107 |
| 8 January 2018 | 8 January 2018 | $15,170.10 | $50.00 | 0.00329596 | 0.00695703 |
| 15 January 2018 | 15 January 2018 | $13,819.80 | $50.00 | 0.00361800 | 0.01057503 |
The calculator comparison published the same plan as 157 buys, $7,850.00 in, 1.05667490 BTC and $31,038.93 on 27 August 2026. The build checks that the figures above still agree with it, and they do.
Computed by the engine at revision 783a4b8 (12 September 2026) over the Bitcoin closes loaded for this build.
To reproduce it from the Bitcoin closes: take every seventh day from 1 January 2018 to 1 January 2021 inclusive, divide $50 by the close on each of those days (or the next day that has one), add the fractions up, and multiply the total by the close on 1 January 2021. The simulator's row export lists all the purchases if you would rather check them than recompute them.
Freshness and gaps
The daily job re-downloads every feed in full and leaves out the period still in progress, because a running price is not a close: the UTC day for the daily feeds, and the trading week for the weekly ones, where each bar is dated by its Monday and kept from the Saturday after it. It writes what it received and then audits what it wrote: how far each feed trails today, whether any two readings sit further apart than the cadence allows, and whether a daily feed has grown a hole it did not have before. A late feed still publishes — withholding the whole update would turn one slow provider into a site-wide freeze — but it publishes with an alarm. The tolerances are calibrated from observed lag, which is why quarterly housing data may run most of a year behind before the job calls it stale.
Two kinds of missing day are told apart below, because they mean different things: dates the provider never published, which the job lists by date so a backfill is noticed, and recent days the provider has not published yet — Yahoo's cryptocurrency feed often serves today's provisional bar before it has finished the day before.
| Cadence | Feeds | Stale after | Widest gap allowed |
|---|---|---|---|
| daily | Yahoo Finance (4 series), alternative.me (1 series) | 3 days | 1 day |
| weekly | Yahoo Finance (14 series) | 21 days | 11 days |
| monthly | FRED (1 series) | 75 days | 75 days |
| quarterly | FRED (52 series) | 280 days | 130 days |
| File | Series | Data through | Bytes | Holes |
|---|---|---|---|---|
| Daily Bitcoin closes | 1 series | 15 September 2026 | 137,095 | none |
| Fear & Greed index | 1 series | 16 September 2026 | 81,778 | 4 days never published |
| Daily Ethereum, Solana and XRP closes | 3 series | 15 September 2026 | 274,652 | none |
| Weekly market bars, FRED housing, commercial real estate and CPI | 67 series | 1 April 2026 to 7 September 2026 (varies by series) | 714,518 | none |
- Crypto Fear & Greed Index — never published by the feed: 14 April 2018, 15 April 2018, 16 April 2018, 26 October 2024 (the job's note: “alternative.me never published these”)
Counts on this page carry their unit: readings are rows in a file; a span is calendar days from first to last reading inclusive; a missing day is a calendar day inside a daily series' span with no reading.
Terms and attribution
Each provider's terms were read first-hand on 2 September 2026. Where a condition attaches to the use of the data, the site meets it where the data is displayed, not only here.
Changes to the sources
Dated from the repository's history. A source that changes is renamed or retired rather than quietly re-pointed.
- — FRED credits beside the chart for housing, commercial real estate and CPI-U, shown while that data is drawn; index levels shown as levels rather than as dollar prices.
- — XRP daily closes added.
- — S&P 500 and Dow Jones moved from price-only indices to total-return series (
^SP500TR,DIA); the Nasdaq Composite row replaced by the Nasdaq 100 (QQQ) and renamed, because the change is a different index, not an adjustment. - — Ethereum and Solana daily closes added from the same Yahoo Finance rig as Bitcoin.
- — The MVRV Z-score overlay and its CoinMetrics community-data feed retired: the feed had been stale for 94 days, and its license (CC BY-NC 4.0) does not permit use in a paid product. Smart DCA now reads the Mayer Multiple, computed from data the site already holds.
- — Fear & Greed index added as a chart overlay; the two synthetic fixed-yield curves added.