By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.
Portfolio analytics

Z-Scores and Rate Regimes

A framework for classifying the interest rate environment.

There are many ways to describe where interest rates are. You can look at the absolute level, the direction of recent moves, the shape of the curve. Each of these has its uses. But when the goal is to classify the rate environment in a systematic, comparable way, one that holds across different historical periods, a rolling Z-score approach offers something the others don't: a normalized measure of how unusual the current yield is relative to recent history.

This post explains how that classification works, where it produces counterintuitive results, and what it is actually useful for in practice.

The Mechanics: Rolling Means and Z-Scores

For any given point in time, we compute a 5-year rolling mean of the 10-year Treasury yield, the average yield over the preceding 60 months. We then calculate a Z-score: how many standard deviations the current yield sits above or below that rolling mean.

Formally: Z = (current yield − 5-year rolling mean) / 5-year rolling standard deviation

The Z-score is not telling you whether rates are high or low in any absolute sense. It is telling you how unusual the current yield is relative to the recent past. A yield of 5% can produce a Z-score of +0.2 (unremarkable) or +2.8 (historically extreme), depending entirely on what the prior five years looked like.

From there, we classify regimes using threshold bands. A Z-score above a positive threshold — typically around +0.5 to +1.0 — flags a "rising" regime. Below a negative threshold, "falling." Everything in between, "stable." The exact cutoffs can be calibrated; the intuition holds regardless.

Why "Rising" Doesn't Always Mean What You Think

Suppose rates rose sharply between 2022 and 2023, then plateaued. If you're looking at the chart in late 2023, rates are still high. But the 5-year rolling mean has been rising throughout, catching up with where yields now sit. As a result, the Z-score might have already retreated from +2.5 to +0.6. The model might still label the period "rising," but only barely, and directionally, the signal has changed significantly.

This is a known feature of any mean-reversion-based statistical framework, not a bug. The Z-score is not designed to tell you whether rates are going up or down in the next quarter. It is designed to tell you where the current level sits relative to the medium-term trend. When the rolling mean catches up to a rate spike, the Z-score compresses, even if rates haven't fallen.

The implication: "rising regime" as a label describes the recent distributional history, not a forecast. An allocator reading a +0.6 Z-score in a "rising" regime should treat that very differently from a +2.2. The label is coarse; the number is where the signal lives.

What This Is Actually Useful For

Rate regime classification is most useful for context-setting and risk framing, not for generating alpha on its own.

Consider a fixed income PM managing duration. Knowing that the current yield sits 1.8 standard deviations above its 5-year mean tells you something meaningful: you are not in a normal rate environment, and mean reversion, if history is any guide, tends to pull yields back over medium-term horizons. That is relevant for positioning along the curve, for thinking about whether to extend or shorten duration, and for stress-testing what happens if rates revert by 50 or 100 basis points.

For a multi-asset allocator, regime classification provides a structured way to think about equity-bond correlations. Historically, that correlation has been regime-dependent. In rising rate environments, particularly where Z-scores are elevated, it has tended to be positive, which weakens the traditional bond hedge. A regime flag is a prompt to revisit those assumptions explicitly rather than rely on long-run averages.

Sector rotation is another application. Within fixed income, credit spreads and duration positioning respond differently across regimes. Stable or falling environments with low Z-scores have historically been more hospitable to longer-duration investment grade; rising regimes with elevated Z-scores tend to favor floating-rate instruments or shorter maturities.

None of this is deterministic. The Z-score framework is a lens, not a model. It doesn't tell you what will happen; it tells you where you are and what has typically followed from similar configurations in the past.

A Word on the Limits

Z-scores computed on a 5-year window have a particular weakness: the window itself shifts. If the prior five years included an unusually low-rate period, as was the case between 2017 and 2021, then even a normalized yield in 2022 will produce an extremely elevated Z-score, not because rates are historically extreme by longer-run measures, but because the reference window is artificially compressed. The 2022–2023 hiking cycle is exactly this case.

This is not a reason to abandon the framework. The 5-year window is a deliberate choice: long enough to smooth out noise, short enough to reflect the rate environment that current portfolio vintages actually experienced. But it should be one input among several, not a standalone signal.

Join our mailing list for exclusive content and industry updates.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
About the author
Janko Sikošek
linkedin logo

Janko Sikošek is a Quantitative Analyst with a strong background in finance and analytics. He currently applies his expertise in quantitative research to enhance investment strategies. Janko's academic credentials include a Bachelor's degree in Economics from the Faculty of Economics in Belgrade, alongside extensive experience in various internships within finance and sales. His skill set is complemented by a strong interest in economics, trading, and strategy.

More Blog Posts
Read all Blog Posts
->