Free — no account required

When Did Your Metric Actually Shift? Find The Break Dates

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.

24,000+ analyses run
Encrypted & deleted in 7 days
PDF & citation included

Free analyses run on up to 10,000 rows. Larger files are randomly sampled to that size — sign up to analyze your full dataset.

📊
-
Rows
-
Columns
-
Numeric

Running changepoint detection analysis...

Searching the series for level shifts...

Your report is ready

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 file
Sample Output

Every report includes interactive charts, tables, and AI insights

Upload your data to get your own report

View all case studies See all free tools

How it works

The 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

E-commerceOperationsFinanceMarketingManufacturingHealthcare

What data do you need?

One row per period with the date and the metric. For example, daily active users around an unknown change:

observation_date (date) daily_active_users (numeric)
2023-01-01 99.42
2023-01-02 99.31
2023-01-03 104.8

Minimum 20 rows · Best with 60-2,000 evenly spaced periods

What's in the report?

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 Series With Its Fitted Level

The observed series with the fitted step level — each riser is an accepted break and its height is the size of that shift.

📋

Detected Level Shifts

Every break dated, with the level before and after, the magnitude in units and percent, and its permutation p-value.

📋

The Levels Between Breaks

The levels between the breaks, with their date ranges, lengths, averages and within-level spread.

📋

Method & Limits

The search, the criterion, the penalty, the permutation test, and the limits — including that the method never explains a break.

🤖

AI Insights

Plain-English interpretation — what the numbers mean, what's significant, and what to do next.

The Question This Answers

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.

Questions?

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.

Your data has more stories to tell

Run any analysis on your own data — validated R analyses, interactive reports, AI insights, and PDF export.

Try Free — No Credit Card
Powered by MCP Analytics