Observation Deck / Chronoticker

Guide

← Back to the tool

What this tool does

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.

The one idea worth understanding

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.

Growth rate — the strategy

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.

time-weighted · "CAGR"

Your return — the money

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?"

money-weighted · "IRR"

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.

Running one

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.

  1. Pick holdings and weights. They must total 100%. Drag a divider in the bar above the list to shift weight between two neighbouring holdings, or type the numbers directly. Even out splits them evenly, in whole percentage points that always total exactly 100.
  2. Set the money. A starting amount, a regular contribution, or both. Either can be zero.
  3. Choose a time range. Presets are measured back from the most recent day of data, so a "5 years" window stays five years long even if the data refresh stalls. Custom dates lets you pin an exact period.
  4. Decide the rest. Rebalancing, trading costs, annual fee, and whether to measure in nominal or inflation-adjusted dollars.
  5. Run it. Live, beside the Run button at the foot of the rail, is on by default: change any control and the results recalculate on their own. Turn it off if you would rather set several things up first and press Run once.

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.

Reading the results

The assumption chips

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 numbers

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.

Final value
What the portfolio is worth on the last day, after any costs and fees.
You put in
Every dollar you contributed, including the opening amount, and how many separate purchases that took.
Profit
Final value minus what you put in.
Your return
The money-weighted rate (IRR) — the annual rate that, applied to each contribution from the day it landed, produces the final value.
Growth rate
The time-weighted rate. The strategy's own return, immune to contribution timing.
vs the benchmark
Your growth rate minus the benchmark's, in percentage points per year, both time-weighted. The sub-line states what the benchmark itself did — this is the only place that number appears. It shows up only when a benchmark actually covers your window.
Worst fall
The deepest peak-to-trough drop, with the dates it happened. The number people ignore and shouldn't. A 30% growth rate with a 70% fall is brutal to actually live through.
Volatility
How much the daily value jumps around, annualised. Broad index funds run 15–20%; single tech stocks are often double that.
Sharpe
Return per unit of risk, measured above what cash paid at the time using real Treasury-bill rates. Roughly: under 0.5 is poor, around 1 is good, above 2 is rare. Earlier versions assumed cash paid 0%, which quietly inflated this.
Best / worst day
The single biggest up and down day, with dates. A gut-check on tail risk.
Paid in friction
Trading costs plus management fees, in dollars. Only appears when you have modelled some.

The growth chart

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.

Per holding, and the receipts

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.

"Was this window lucky?"

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.

"This menu is rigged in your favour"

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.

All at once vs. spread out

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.

Jump to a crisis

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 or real

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.

Costs and fees

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.

Where the data comes from

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.

What this deliberately does not model

Educational tool. Backtests describe the past and do not predict the future. Past performance does not guarantee future results. Nothing here is financial advice.