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, and DIX, the dark pool index. DIX is the one measured input on the dark pool page, 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 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 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 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.