# Anomalies and change points

> How MeasureScale flags unusual days in your search traffic and finds the dates when a lasting shift in traffic began.

An **anomaly** is a single day whose traffic is far from normal for that weekday. A **change point** is a date where the traffic level shifts and stays at the new level. MeasureScale can find both. Both read the daily total of your Google Search Console property. They do not read GA4 data.

## How to read the answer

- An anomaly is one unusual day. A change point is the first day of a lasting new level.
- A spike or drop on a public holiday or a seasonal peak can be normal for your site. Check the calendar first.
- A change that lines up with a Google update is a clue, not proof.
- If no day gets a score, the window is too short. Ask for a window longer than 14 days.
- Next, ask your assistant to list recent Google updates and match them to the change points.

## What it answers

- Which days had an unusual spike or drop in clicks or impressions?
- How far from normal was each of those days?
- When did a lasting rise or fall in search traffic begin?
- Did that change happen close to a Google algorithm update?

## Inputs: the daily series

Both methods analyze one daily series of the property's clicks or impressions. You can ask for either one. Clicks is the default.

- **Two windows.** MeasureScale reads the requested window and the window of the same length before it. The earlier window is the **baseline**. With no dates, the requested window is the last 28 settled days, so MeasureScale reads 56 days.
- **Reported dates.** Results report only days and change points inside the requested window.
- **Short lookback.** If the baseline window would start before the earliest date your plan allows, the series is the requested window alone.
- **Days with no row.** Search Console sends no row for a day without traffic. A missing day inside the returned data therefore counts as 0.
- **Days before the data.** Days before the first returned day are not part of the series. They are not filled with zeros.
- **Data that ends early.** If the data ends before the last day of the window, the analysis does not run. Zeros at the end would read as a collapse that the data does not show.

A **settled day** is a day whose data Google has finished processing. [Data windows and freshness](/concepts/data-windows/) explains the windows in detail.

When the analysis cannot run, the result says so and states the cause. The result also says which days had data and how many missing days counted as 0.

## Anomaly detection

### How it works

- MeasureScale compares each day with a typical day for the same weekday.
- The typical day comes from recent weeks of the same weekday. The default is 8 weeks. You can ask for 4 to 12.
- Days already flagged do not enter later baselines. One large spike therefore cannot hide a later anomaly.
- MeasureScale flags a day when its value is far outside the normal range for that weekday.

The **z-score** measures how far a day is from its baseline, in units of typical noise.

A day needs at least 4 earlier unflagged values on its weekday before it gets a score. That is 4 weeks of history. With the default 28-day window, the baseline window supplies those 4 weeks. A requested window of 14 days or fewer cannot score any day.

### Sensitivity and severity

You can ask for low, medium or high sensitivity. Medium is the default.

| Sensitivity | Threshold (absolute z-score) |
|---|---|
| Low | 3.0 |
| Medium (default) | 2.5 |
| High | 2.0 |

| Absolute z-score | Severity |
|---|---|
| 5 or more | Critical |
| 3.5 or more | High |
| Below 3.5 | Moderate |

A positive z-score is a spike. A negative z-score is a drop.

## Change-point detection

### How it works

- MeasureScale splits the series into **segments**. A segment is a run of consecutive days with one level.
- It finds the split that best explains the series with the fewest change points.
- A penalty stops it from treating ordinary day-to-day noise as a change.
- Each segment is at least 7 days long by default. You can ask for a shorter or longer segment.

Each change point reports the average level before and after it. It also reports the percent change between them.

### Matching algorithm updates

Each change point is matched to the nearest algorithm update within 7 days, before or after. The method has no built-in list of updates. It matches only the updates your assistant passes to it. MeasureScale can list updates from Google's public Search Status Dashboard, so your assistant can pass them in.

A match shows that two dates are close. It does not show that the update caused the change.

## Limits

- **Change points need data.** The series needs at least twice the shortest segment length. With the default, that is 14 days. A shorter series returns no change points.
- **Level shifts only.** Change-point detection finds changes in level, not changes in slope.
- **Weekly pattern only.** The anomaly baseline models the weekday pattern. A public holiday or a seasonal peak can appear as an anomaly.
- **Count metrics.** The noise model assumes the metric is a count. Clicks and impressions are counts.
- **Search Console only.** Both methods read Search Console data. They do not read GA4 data.
