Upload a CSV with a date and a metric and get every structural break the data supports: the date of each shift, the level before and after, the size in units and percent, and a significance test — plus an honest 'no shift found' when there isn't one. 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.
Searching the series for level shifts...
Sent to — the series charted with its fitted step level, every break dated with the levels before and after, magnitudes and permutation p-values, the segment table, R code, and AI insights.
Analyze another fileThe series is ordered by date, rows sharing a date are averaged into one point, and binary segmentation then searches it for level shifts. Every admissible split is scored with the Gaussian change-in-mean likelihood ratio — a segment of length m with residual sum of squares RSS costs m x log(RSS / m), and a candidate scores the whole-segment cost minus the two piece costs — computed directly over cumulative sums in base R. The best-scoring split is accepted only if it beats a modified-BIC penalty of 3 x log(n), which replaces the plain BIC form because the maximum statistic over every candidate location clears 2 x log(n) on pure noise too often; each accepted split is then searched again, up to a stated maximum number of breaks and never closer than the minimum segment length to a boundary. Each accepted break gets a permutation p-value from 499 reshuffles of its surrounding window, compared against the largest statistic anywhere in that window so the p-value is conservative. Residual lag-1 autocorrelation and a smooth-trend comparison are both computed and reported as cautions when they fire.
Use it when you have a metric measured over time and want to know whether — and exactly when — its level stepped up or down, without having to nominate the date yourself.
Not when you already know the date something happened and want its effect measured (use the interrupted time series tool, which also estimates the change in trend), not for forecasting where the series is heading, not for recurring seasonal ups and downs (use the seasonality tool), and not as evidence that any particular event caused a break — it locates shifts, it does not explain them.
Built for: Analysts, operations and finance teams who need to date a change in a metric rather than assume it
Typical data source: Any spreadsheet or CSV with a date column and a numeric metric recorded per day, week or month
One row per period with the date and the metric. For example, daily active users around an unknown change:
Minimum 20 rows · Best with 60-2,000 evenly spaced periods
Standard-library analysis: when did my metric shift? Detect structural breaks and level changes in a time series with dates and magnitudes. Map a date column and a numeric series and get every point at which the average level moved: the date of each break, the mean level before and after, the size and direction of the move in units and percent, a permutation p-value per break, and the series charted with the fitted step level so each break is visible as a riser. Binary segmentation with a Gaussian change-in-mean likelihood ratio decides how many breaks the data supports, guarded by a minimum segment length, a modified-BIC penalty and a stated maximum number of changepoints — and when nothing clears the penalty the report says so and shows the candidate it rejected.
The observed series with the fitted step level — each riser is an accepted break and its height is the size of that shift.
Every break dated, with the level before and after, the magnitude in units and percent, and its permutation p-value.
The levels between the breaks, with their date ranges, lengths, averages and within-level spread.
The search, the criterion, the penalty, the permutation test, and the limits — including that the method never explains a break.
Plain-English interpretation — what the numbers mean, what's significant, and what to do next.
When exactly did this metric shift?
Map your date and metric columns. The search finds the dates at which the average level moved, reports the level before and after each one with the size of the move in units and percent, and charts the series with the fitted step so every break is visible.
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.