ds@mcpanalytics.aiEmail your data and your question and get an answer about your own data, with the method shown.Email your data and question. Get an answer.

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.

We email you the report link.

Free up to 10,000 rows. Encrypted in transit.

📊
-
Rows
-
Columns
-
Numeric

Running changepoint detection analysis...

Searching the series for level shifts...

✓

Sent to . Inside: 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.

Sample report

Open the full sample →

View all case studies → See all free tools →
Why an analysis, not a chat answer

Ask twice, get two answers? Watch how we fix that.

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 reading of the results 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 pricing, privacy and how the analysis works.

How to cite this tool

MCP Analytics. Changepoint Detection. Free tool. https://mcpanalytics.ai/free/standard_changepoint. Accessed [date you used it].

Your data has more stories to tell

Run it on your data

Sign up to save datasets and schedule runs

Powered by MCP Analytics

Your turn

Bring your own data and the question you actually need answered.

MCP AnalyticsData science by email Send us your data and your question, and we will reply. ds@mcpanalytics.ai