# Change Point Detection Explained: Dating a Regime Break

## SPX DAILY GEX LEVELS

Computed from daily-settled Cboe open interest. Dealer positioning is modeled, not observed. Nothing here is advice.

Open interest settlement: 2026-09-25.

- **Call wall, settled 2026-09-25. Computed from daily-settled Cboe open interest.** $7,800
- **Put wall, settled 2026-09-25. Computed from daily-settled Cboe open interest.** $7,500
- **Zero-gamma flip, settled 2026-09-25. Computed from daily-settled Cboe open interest.** $7,663
- **Vol trigger, settled 2026-09-25. Computed from daily-settled Cboe open interest.** $7,714
- **Net dealer gamma, settled 2026-09-25. Computed from daily-settled Cboe open interest.** $64.09B
- **Largest absolute gamma strike, settled 2026-09-25. Computed from daily-settled Cboe open interest.** $8,000

Source: SquawkFlow
URL: https://squawkflow.com/learn/change-point-detection-explained
Category: Market Structure
Published: 2026-09-22
Type: Explainer

> A change point is a date at which a series changed its average level. Here is how the search works, what penalty it runs under, and what it cannot tell you.

---

## A change point is a date, not an opinion

A change point is a date at which a statistical search concludes that a series
stopped fluctuating around one average level and started fluctuating around a
different one. That is the whole definition. It is a claim about the past
values of one named series, it carries a date, and it is reproducible by
anyone holding the same numbers.

Compare that with the sentence it replaces. "The regime flipped" appears in
options commentary every week. It usually has no date, no series, no
threshold, and no way to be wrong. Change point detection is the version of
that sentence you can check.

SquawkFlow publishes dated breaks on two daily series: SPX net gamma exposure,
shown on the [GEX page](/gex), and [DIX](/learn/dix-dark-index-explained), the
dark pool index. DIX is the one measured input on the [dark pool page](/dark-pool-flow), and it is the series searched there; the radar rows beside it on that page are modeled and are not part of this.
Every break on both surfaces carries its date and the penalty it was found
under.

## What the search actually does

Given a series of daily values, a change point search considers every possible
way of cutting the series into consecutive segments and scores each cutting.
The score has two parts. The first part rewards segments whose values sit
close to their own average, so a cut that separates a quiet stretch from a
loud one scores well. The second part charges a fixed fee for every cut, so
the search cannot buy a better fit by chopping the series into fragments.

The algorithm we use is PELT, short for Pruned Exact Linear Time, from Killick,
Fearnhead and Eckley (2012). PELT returns the exact best cutting under the fee
rather than a greedy approximation, which matters because a greedy search can
place a first cut it would not have chosen had it seen the rest of the series.
The implementation is the open source
[ruptures](https://centre-borelli.github.io/ruptures-docs/) library, BSD
licensed.

The cost function is least squares about a per-segment average. In plain terms:
a break, on our surfaces, means the typical level of the series moved. A series
that keeps the same average but becomes twice as jumpy is a real change in the
market and this particular search will not report it. That limit is published
alongside every result rather than left for you to discover.

## The penalty is the entire argument

Everything interesting about a change point result lives in the fee per cut,
which the statistics literature calls the penalty. Set it low and the search
finds a break every other week. Set it high and it reports that nothing has
ever happened. Neither answer is wrong, because a change point is not a fact
about the world. It is the output of a rule, and the rule is the penalty.

So we publish the penalty next to every break instead of hiding it. Ours is
the Bayesian information criterion for a change in average, which works out to
two times the natural logarithm of the number of observations, applied to the
series after it has been centred and divided by its own standard deviation.
That standardising step is what lets one rule govern a series measured in
billions of dollars and a series measured as a fraction between zero and one.

Two further rules bound what can be reported:

- A segment must run at least five observations, one trading week. A single
  loud session cannot open a segment, so a one day excursion never appears as
  a break.
- A series needs at least thirty daily observations before any search is
  published. Below that the penalty is being asked to arbitrate a question the
  data cannot settle, and the surface says so rather than showing a break.

One honest wrinkle. The standard deviation used to standardise the series is
computed over the whole window, and a window containing a level shift has a
larger standard deviation than the noise around either level. That makes the
effective penalty conservative. Our search reports fewer breaks than one
scaled by within-segment noise would. On a public surface that is the
direction of error worth having.

## What you see on the page

Each dated break on the GEX and dark pool pages carries four things: the date
the new segment begins, the direction, the average of the segment before it
and the average of the segment after it. Below the list sits the current
segment, stated as the date it has persisted since and the number of
observations inside it.

"Persisted since" is deliberate phrasing. It reports how long the latest
segment has already lasted. It makes no claim about tomorrow.

The window is published too, because a break found near the start or the end
of a window is bounded by that window. The DIX search runs on roughly one
trading year. The SPX net gamma search runs on the full daily archive, which
begins in late July 2026, so its earliest possible break is bounded by that
start date rather than by anything about the market.

## Four things a dated break does not mean

**It is not a forecast.** A dated break describes the past values of one
series. Nothing in the method estimates what the series does next, and no
copy on either page says it does.

**It is not a trading signal.** Knowing that SPX net gamma exposure has
averaged a different level since a particular date tells you about dealer
positioning history. What to do about that, if anything, is a separate
question that depends on your strategy, your horizon and your risk.

**It is not a claim about causes.** The search sees numbers and dates. It does
not know about the expiration, the data revision, the Federal Reserve meeting
or the index rebalance that may sit on the same date. When a break lands on a
monthly options expiration, treat the coincidence as something to investigate
rather than as an explanation the method supplied.

**It is not permanent.** A change point search is run over the whole window
every day. Adding new observations can move a previously reported break by a
session or two, or remove a marginal one, because PELT re-optimises the entire
cutting rather than appending to yesterday's answer. A break near the end of
the series is the least stable part of the result, which is exactly why every
break is dated rather than described as current.

## How this differs from the gamma flip

The [GEX flip price](/learn/gex-flip-price-explained) is a level. It answers
"at what index price does aggregate dealer gamma cross zero today", and spot
sitting above or below it is what the positive and negative gamma labels mean.
That is a cross-sectional question about the option chain as it stands right
now.

A dated break is a time-series question about one number's history. It answers
"on what date did the daily net gamma figure start averaging something
different". The two can disagree in useful ways. Spot can cross the flip on a
Tuesday without the daily net gamma series showing any break at all, because
one session near a boundary is not five sessions at a new level. Equally, the
daily series can break while the flip label never changes, which is the case
worth looking at: the size of the book moved even though its sign did not.

If you want the level, read the flip and the
[negative gamma](/learn/negative-gamma-explained) explainer. If you want the
history of the number, read the dated breaks. They are different questions and
neither one substitutes for the other.

## Reading one in practice

Start with the penalty. If it is not stated, the break is not evidence of
anything. Then read the two segment averages, because the size of the shift is
what makes a break worth caring about: a break between two averages that
differ by a rounding error passed the fee test on consistency, not on
magnitude. Then check the observation counts either side. A five observation
segment cleared the minimum and nothing more.

Finally, check the date against your own calendar of expirations, data changes
and macro events before attributing any meaning to it. The search supplies the
date. The reason, if there is one, is still your work.

---

## Citation

Source: SquawkFlow, https://squawkflow.com/learn/change-point-detection-explained
Retrieved: 2026-09-28 10:48 ET
Attribution: cite the page URL rather than a copied number. Levels are
recomputed every session, so a number without its date is wrong within a day.

SquawkFlow publishes market-structure data and education. Nothing here is
investment advice, a price target or a recommendation, and we have no order
execution.
