Spread z-score
The z-score turns "the spread is 0.08 above the fit" into "that is further than this pair usually strays" — the step that makes different pairs comparable.
Turning a distance into a comparison
The regression spread gives you a residual: the part of one asset's price that the other does not explain. Say it reads +0.08 in log units, about 8%.
Is that a lot?
There is no way to answer from the number alone. For a pair that normally wanders within ±2%, eight percent is a long way out. For a pair that routinely swings ±15%, it is an ordinary Tuesday. The residual is expressed in the pair's own units, and every pair has a different natural scale.
The z-score removes the scale:
z = (spread − mean of spread) / standard deviation of spread
Both the mean and the standard deviation are computed over a rolling window — 90 bars by default on this site. The result is in standard deviations, which is the same unit for every pair, and that is what makes a screener possible. Ranking a thousand pairs by residual would rank them by how volatile their spreads happen to be. Ranking by z-score ranks them by how unusual their current state is for themselves.
Reading the value
z = 0 — the spread is exactly at its rolling average. The pair is at its own norm; nothing about it is currently unusual.
|z| below 1 — inside one standard deviation. Roughly two thirds of observations fall here for a well-behaved distribution. This is the ordinary state.
|z| between 1 and 2 — outside the common range, not yet extreme. Worth a look, rarely worth acting on alone.
|z| above 2 — the tail. Under a normal distribution this is about 5% of observations; spreads have fatter tails than that in practice, so treat 5% as a floor rather than an estimate.
|z| above 3 — rare, and rare in two different ways that are easy to confuse. Either the spread genuinely moved a long way, or something changed about one of the legs and the rolling window has not caught up yet. A listing, an unlock, a depeg, a delisting announcement — all of them produce large z-scores that are describing an event, not a divergence that will close.
The sign
Positive z means the first asset is expensive relative to what the second implies. Negative z means it is cheap.
This is worth stating carefully, because it is easy to get backwards when β is negative. The z-score here is computed on the regression residual, not on the price ratio. For a pair with negative β, the residual and the ratio can move in opposite directions, and a screener that quietly ranks by one while charting the other will disagree with itself. Every z-score on this site — screener, chart, alerts, export — is computed from the regression residual, so the sign means the same thing everywhere.
What the z-score does not say
It is not a probability of reversion. A z-score of 2.5 says the spread is further out than usual. It says nothing about what happens next. Spreads that are far out can go further out, and if the relationship broke, they will.
It is not comparable across timeframes. A z-score computed on 90 daily bars and one computed on 90 hourly bars are different measurements of different things. The site stores the timeframe alongside the value, and alerts fire on the timeframe they were created on, because a threshold that is meaningful on daily bars is crossed constantly on hourly ones.
It inherits every weakness of the fit. If β is unstable or the correlation is weak, the residual is noise and the z-score is a precisely calculated measure of noise. The z-score is the last step in a chain, and it cannot repair what came before it.
The window is a choice, not a fact. A 90-bar window means "unusual compared to the last 90 bars". Shorten the window and moves look more extreme; lengthen it and they look tamer. Neither is more correct.
Where the number is used
The z-score is the ranking column in the screener, the second pane on every pair chart with ±1σ and ±2σ bands drawn on it, and the metric alerts can watch. A z-score alert fires when the threshold is crossed rather than every time the condition is still true — a spread sitting at 2.4 for three weeks should produce one notification, not thirty thousand.
For how quickly a spread historically travels back toward its mean once it has strayed, see half-life.
These pages describe how the site computes its metrics. They are not trading advice and not a recommendation to enter any position.