Upload your experiment log with the variant, the outcome and the date each observation arrived. Get an always-valid confidence sequence, the stop-or-keep-running verdict, the boundary crossing and when it happened — plus how many times the ordinary p-value would have told you to stop too early. Free.
Free analyses run on up to 10,000 rows. Larger files are randomly sampled to that size — sign up to analyze your full dataset.
Walking the monitoring path...
Sent to — the always-valid confidence sequence over time, the stop-or-continue decision with the boundary crossing, the fixed-horizon comparison counted on your own data, the power cost of the guarantee, R code, and AI insights.
Analyze another fileRows are ordered by arrival and the two arms' means are recomputed after every single observation. At each of those points the analysis evaluates a mixture sequential probability ratio test: with V the sampling variance of the effect estimate and a N(0, tau^2) mixture over the true effect, the mixture likelihood ratio against the null is Lambda = sqrt(V/(V+tau^2)) exp(delta^2 tau^2 / (2 V (V+tau^2))). Ville's inequality bounds the probability that Lambda ever reaches 1/alpha at alpha, which is what makes monitoring after every observation safe. Inverting the same boundary in the effect gives a closed-form confidence sequence, effect +/- sqrt(2 V (V+tau^2)/tau^2 log(sqrt((V+tau^2)/V)/alpha)), that covers the true effect at every sample size simultaneously. The always-valid p-value is the running minimum of 1/Lambda. Alongside it, an ordinary Welch two-sample t-test is computed on the same cumulative data at the same points, so the report can count how often the fixed-horizon test would have declared significance where the always-valid boundary did not. Futility is declared when the confidence sequence lies entirely inside tau, the effect the boundary is tuned to find; when the interval is wider than tau no boundary is reachable and the analysis reports that instead of a null result. All of it is implemented directly from the normal mixture in base R — no group-sequential package is involved.
Use it when the experiment is being watched while it runs, when you want the option to stop early on either a winner or futility, or when you need to know whether a flat-looking result is genuinely flat or merely underpowered.
Not when you can genuinely commit to one analysis at a sample size fixed in advance — the fixed-horizon test is more efficient and you should use it. Not for more than two arms in one file, not for repeated measures of the same person, and not as cover for a comparison chosen after the results were visible.
Built for: Experimentation, growth and product teams who watch tests while they run and need to know when stopping is defensible
Typical data source: An experiment export with one row per user: the variant, the outcome, and the date or sequence the observation arrived
One row per visitor: the variant seen, whether they converted, and when they arrived. The arrival column can be a date, a timestamp, or a plain sequence number:
Minimum 30 rows · Best with 1,000-10,000 rows across exactly 2 arms
Standard-library analysis: can I stop this experiment early? Upload an ordered experiment log — the variant each row saw, what happened, and the date or sequence the observation arrived — and get inference that stays valid under continuous monitoring. The analysis re-tests after every single observation using a mixture sequential probability ratio test, and returns the always-valid confidence sequence over time, the current decision (stop for a winner, stop for futility, keep running, or not enough data for any boundary to be reachable), the boundary that was crossed and when, and the cumulative effect charted with both boundaries drawn over it. The naive fixed-horizon p-value is computed alongside at the same points, so the report can show — from your own data, not from an assertion — how many times it would have crossed 0.05 while the always-valid boundary did not. The report also states what the guarantee costs in power, in this experiment's own numbers.
The cumulative effect with the always-valid boundary outside it and the ordinary fixed-horizon boundary inside — the whole monitoring history in one picture.
The fixed-horizon p-value wandering across 0.05 against the always-valid p-value, which only moves down. The gap between them is the peeking problem, drawn from your data.
Every number the stop-or-continue verdict rests on, including the smallest effect this test was set up to find.
How many times each test would have told you to stop, counted over identical analysis points.
What the right to peek costs: how much wider the always-valid interval is, and how much more data it needs to match today's fixed-horizon precision.
The same monitoring path re-run at half and double the boundary's tuning constant — whether the verdict is the data's or the constant's.
The mixture likelihood ratio, Ville's inequality, the closed-form confidence sequence, and a straight account of what the guarantee does not cover.
Plain-English interpretation — what the numbers mean, what's significant, and what to do next.
We look at the results every morning. Can we stop today?
Map the variant, the outcome and the date each observation arrived. The analysis re-tests after every single observation and reports an always-valid confidence sequence — an interval that covers the true effect at every sample size at once — so a boundary crossing is a legitimate stop no matter how many times you looked.
See our FAQ for details on pricing, data privacy, and how the analysis works. Every report includes a Methodology section showing the statistical test, assumptions checked, and diagnostics run.
Run any analysis on your own data — validated R analyses, interactive reports, AI insights, and PDF export.
Try Free — No Credit CardTell us what went wrong, in your own words. We capture the page you're on automatically, so no need to describe where you are.