You describe a portfolio — which holdings, what weights, how much money, over what period — and Chronoticker replays it against real daily closing prices. It shows what that portfolio would have been worth, how rough the ride was, and how it compares to simply buying the index.
It is a history tool, not a forecasting tool. Everything it prints is a description of the past. The most useful thing it can teach you is not which allocation won — it is how much of "winning" was the allocation and how much was the start date.
If you add money over time, your portfolio has two different returns, and mixing them up is the single most common way a backtest lies to you.
How the allocation performed, per dollar, per year. Adding money does not change it, because depositing cash is not investment skill.
Use it to compare one allocation against another.
What your actual dollars earned, counting when each one arrived. Money invested early is exposed longer, so timing matters here by design.
Use it to answer "how did I do?"
When they disagree, that gap is information. If your return beats the growth rate, your contributions happened to land at good moments. If it trails, they landed at bad ones.
Chronoticker used to report only one number and label it CAGR, computed on the total dollar balance — so a $500 monthly deposit was counted as investment performance. On a ten-year S&P run that reported 33.20% a year where the truth was 15.01%, and it understated the worst drawdown by more than twenty percentage points. Both numbers are now computed separately and labelled.
The page opens on a set of preset cards. Clicking one loads that allocation and runs it straight away, which is the quickest way to see what the output looks like. The cards step aside after the first run — reload the page to get them back, or use the same presets in the control rail under Load.
Everything you can change lives in that rail down the left-hand side, in four panels: holdings, money, window, and frictions. Results appear beside it.
Either way, the address bar updates to a link that reproduces exactly this run — copy it, bookmark it, send it to someone. Copy link to this run, underneath the results, does the same thing.
The row of small labels under the date range states what the simulation is and is not doing — whether costs are modelled, whether Sharpe uses a real cash rate, whether taxes are ignored (they always are). Amber means "this is a simplification that flatters the result." They sit next to the numbers on purpose.
The headline figure at the top, and the three stats set beside it, are about your money: what it became, what you put in, and what that earned. The tiles further down under The strategy are about the allocation itself, and none of them move when you change how much you invested or when.
Your portfolio, plus the benchmark given exactly the same money on exactly the same dates, plus — once you are contributing rather than dropping in a lump — a stepped line showing what you actually paid in. Click any of them in the legend to take it off the chart.
The controls next to the Growth label change how you look at it. Log switches the value axis to logarithmic, which is the honest way to read a long window — on a linear axis a century of compounding flattens the first fifty years into a line along the floor, and a doubling in 1935 looks like nothing next to a doubling in 2020. Drawdown, on by default, shades the deepest peak-to-trough fall, so the worst-fall number in the tiles has a shape attached to it. Dragging across the chart zooms into that span, and Reset zoom appears while you are zoomed in.
Below the base rate, Per holding breaks the basket out one line at a time — start price, end price, price return, and what each holding was worth at the end. The colour dot matches that holding's band in the weight bar and its line on the chart, so the same colour means the same thing everywhere.
Price return is deliberately not a per-holding profit figure. Once you are rebalancing or contributing, how much money a holding actually made depends on when the money arrived, which is a portfolio-level question — the returns above answer it and a per-holding column cannot.
Every purchase expands into the ledger behind "You put in": every buy, its date, the gross amount, what the trade cost and what was left to invest. Download the numbers (CSV) exports the full daily series, and it exports whatever you are currently looking at — ask for today's dollars on screen and the file is in today's dollars too, with the column names saying so.
This is the part most backtesters do not have, and it matters more than anything above it.
A single backtest is one observation. Chronoticker replays your exact configuration starting from every other date the data allows and shows how often it actually beat the benchmark. Each bar is one window's margin against the benchmark: bars above the line are windows you won, bars below it are windows you lost, and the taller the bar the wider the margin. Your own window is outlined.
If your allocation beat the index in 9 of 10 windows, that is evidence. If it beat it in the one window you happened to choose, that is an anecdote. When there is not enough history to form an honest base rate, the tool says so rather than showing a confident percentage built on two overlapping windows.
If you use the megacap stocks, you will see this warning with a measured number attached. Those ten names are on the menu because they are famous now — which means they were selected using information from the end of the period you are testing. All ten beat the S&P 500 over the past decade. You cannot build a losing buy-and-hold portfolio out of them, and that says nothing whatsoever about your allocation skill.
The sector, bond, international and broad-market funds do not have this problem in anything like the same degree: they were picked to span the investable world rather than to be winners. Use them if you want a backtest that could have told you something.
The second tab at the top of the page answers a different question: you have a lump of money — invest it all today, or feed it in over the next six months to three years?
Selecting it swaps the Money panel for two fields: Total to invest, and Spread over, which sets how many equal monthly instalments the money is fed in as — 6, 12, 24 or 36.
Both sides start with the same total counted as wealth, so the drawdowns are directly comparable and the cash cushion is visible instead of hidden. Uninvested cash earns the actual Treasury-bill rate of the day, because assuming idle cash earns nothing puts a thumb on the scale for investing immediately.
The usual result: investing all at once wins on money, spreading out wins on risk. Markets rise more often than they fall, so cash on the sidelines usually misses gains — but a slower entry means a shallower worst-case fall. The win-rate strip underneath shows how often each one came out ahead across every start date, so you can see whether your window was typical or unusual.
Under Jump to in the window panel, seven buttons set the dates to a specific historical window and run it: the dot-com bust, 2008, the lost decade, the COVID crash, the 2022 bear market, 1973–74 stagflation, and the 1929–32 Depression.
Most holdings will not reach back that far — the funds mostly start in the 1990s or 2000s. A century of the market is the holding that does: a daily total-return index of the entire US stock market back to July 1926, rebuilt from the Fama/French research data. Selecting it and choosing the Depression window shows a −84% fall over roughly three years. That is what a bad decade looks like, and no ten-year backtest can show it to you.
Nominal is dollars as printed. Today's dollars restates everything in current purchasing power using the consumer price index. Over ten years the gap is a few percent a year; over the long windows the deep index makes possible, it is the difference between a good decade and a lost one. A portfolio that returned 8% a year through the 1970s lost money in real terms.
Both default to zero, which is unrealistic and clearly marked as such.
One subtlety worth knowing: costs on a purchase are paid by you and show up in your return and final value, but not in the strategy's growth rate — buying in is your decision, not the strategy's. Costs on a rebalance come out of the portfolio and do reduce the growth rate, because rebalancing is something the strategy chose to do. That is what makes a costed comparison of rebalancing schedules mean anything, and it is usually an unpleasant surprise.
If a refresh ever fails, results simply end at the last good day and the tool tells you which holding is behind and by how long.