the cold open

What would it have told you, and on which day?

Every analytics tool can describe your last quarter. Only one can tell you what you would have known during it. Run the same investigator with the clock moved back, one sweep at a time, and every finding comes back stamped with the day it would first have reached you.

An analytics backtest replays your own event history through the same detection logic that runs today, with the clock moved back one step at a time, and reports each finding dated by when it would first have been surfaced along with the detection lag in days. smolanalytics does this with smolanalytics backtest or GET /v1/backtest. It is possible because every report is a pure function of the raw event log — no pre-aggregated rollups, no sampling — so any question can be recomputed as of any past date. Each sweep sees only events that had already happened, and deploy markers are filtered to the sweep's own date, so a finding can never cite a release that had not shipped yet.

Here it is, running on the demo right now

live replay · 31 sweeps · 2026-05-202026-08-18
what it would have told you
computed just now off the demo's real history by /v1/backtest — not a screenshot
  1. 1 julopen rose 34% on 2026-06-27
    ~480 people/mo4d to become conclusivecause not narrowed
  2. 1 julsignup fell 28% on 2026-06-27
    ~300 people/mo4d to become conclusive
    92% of the loss is US.
  3. 4 julcheckout fell 33% on 2026-06-30
    ~60 people/mo4d to become conclusive
    67% of the loss is macOS.
  4. 10 julcheckout rose 67% on 2026-07-06
    ~120 people/mo4d to become conclusivecause not narrowed
  5. 13 julopen rose 28% on 2026-07-04
    ~555 people/mo9d to become conclusivecause not narrowed
  6. 16 julopen rose 29% on 2026-07-06
    ~600 people/mo10d to become conclusivecause not narrowed
4 of these could not be narrowed to a ship or a segment — the demo records no deploys. wire yours up and that line becomes which ship did it.
16 more in the same replay, in the order they'd have arrived. nothing here is picked — it's the first 6.

run it on your own quarter: smolanalytics backtest · sweeps every 3 days here, daily on your machine

Why this is the only demo in analytics that cannot come back empty

Not because the tool is clever. Because of a measured prior about how software actually gets built.

01

Most shipped work does not move the metric it was built to move.

Microsoft's published measurement across thousands of controlled experiments found roughly a third of tested ideas improve their target metric; Google and Netflix have put it closer to one in ten. Pendo's telemetry across 615 subscriptions found 80% of features are rarely or never used. A replay over any real product's last quarter will find something, because the base rate guarantees it.
02

The gap that sells it is not the finding. It's the date.

A dashboard says “here is your product”. A replay says “on 14 June this would have told you checkout was broken” — and you know exactly when you actually noticed. That second date is the one nobody else can produce, and it is the honest measure of what the tool is worth to you specifically.
03

The detection lag is printed, even though it flatters nobody.

Findings need enough data to become conclusive, so most arrive a few days after the change itself. We print that number rather than hide it, because “we'd have told you the same day” is usually false and a sceptical reader checks the least believable claim first. Four days late still beats the six weeks it usually takes someone to notice on their own.
04

Nothing is cherry-picked, and the same finding is reported once.

Findings render in the order they would have arrived, and the total is stated. A regression visible on forty consecutive daily sweeps is one thing you would have been told about once, not forty — deduplicated on the metric and the change day, keeping the earliest sweep that saw it.
05

It cannot read forward, and that is tested in both directions.

Each sweep receives only events strictly before its own date; deploys and experiments are filtered the same way. Testing only that a future ship is never named would pass just as well if attribution were broken outright — so the control case is tested too: a ship that landed on the change day must be named. Writing that control is how we found that ship attribution had never fired for anyone, because a threshold measured in fractions had been passed a whole number.

Run it on your own quarter

cli
smolanalytics backtest
smolanalytics backtest --days 180 --step 2

Sweeps daily by default. Ends with the only question that matters: for each line, did you know, did you not know, or is it wrong?

http
GET /v1/backtest?days=90&step=1

Same code path, same defaults. Memoized for an hour, because it is an expensive exact answer rather than a cheap approximate one.

Questions

What is an analytics backtest?

Running your analytics against history you have already lived through, to see what it would have surfaced and on which day. smolanalytics re-runs the same investigator that runs today, once per step across a window, with the clock moved back each time — so each sweep sees only the events that had happened by that date. Every finding comes back stamped with the day it would first have been reported and the detection lag: how long the data took to become conclusive after the change itself.

How is this different from just looking at a chart of the last 90 days?

A chart shows you the past with today's knowledge. A backtest shows you what you would have KNOWN at the time, which is a claim about a specific day you remember. "On 14 June this would have told you checkout was broken, and you found out on 2 July" is checkable against your own memory. "Checkout dipped in June" is not a claim about anything.

Can it see the future while replaying?

No, and this is the part that decides whether the whole artefact is worth anything. Each sweep is handed only the events that occurred strictly before its own date, deploy markers are filtered the same way, and experiments that had not started yet are dropped. A finding dated before the change it describes, or a June regression attributed to a July release, would make every lag number a fabrication — so both are tested, in both directions: the future ship must not be named, and the ship that landed on the drop must be.

Why can smolanalytics replay history when other analytics tools cannot?

Because every report here is a pure function of the raw event log. There are no pre-aggregated rollup tables and no sampling, so any question can be recomputed as of any past date. Tools built on rollups cannot recompute a past day's answer independently — they can only read the rollups that already exist, which were written with whatever definitions were in force at the time.

Will the replay find something on my product?

Almost certainly, and that is not a boast about the tool. Microsoft's published measurement across thousands of controlled experiments found roughly a third of tested ideas improve the metric they were built to improve; Google and Netflix have reported closer to one in ten. Pendo's telemetry across 615 subscriptions found 80% of features are rarely or never used. Any real product's last quarter contains waste. The replay's job is to date it.

Does it report nothing if nothing happened?

Yes, and it says what it looked at. An empty replay reads "across the whole window there was no step change big enough to be worth telling you about", followed by the list of metrics it swept — so an honest empty is distinguishable from a broken run. A backtest that manufactures findings to look impressive is worth less than one that comes back empty, because the first thing a sceptic does is check a line.

How do I run it on my own data?

smolanalytics backtest, from the CLI, over whatever history you already have. It takes --days (default 90) and --step (default 1, meaning it re-checks daily) and prints each finding with the date it would have arrived. Over HTTP it is GET /v1/backtest?days=90&step=1. Both are the same code path as the live investigation, not a separate reporting mode built for demos.

keep reading