Regime Classifier: Methodology

Regime Classifier — Methodology

SomerQuant Methodology · Last updated 2026-05-08 · Version 2.0

The regime classifier labels the current US equity-market regime as one of three discrete states: Bull, Sideways, or Bear. The output is a model confidence over the three states; the highest-confidence state becomes the published regime tag, accompanied by a confidence number. The model is descriptive, not predictive: it tells you the most probable label for what the market has been doing over the recent observation window, not what it will do next.

1. What it does

The regime classifier is a probabilistic model that assumes the observed series — broad-market pricing data sampled over the recent observation window — is generated by a hidden state that the observer cannot see directly, and that this hidden state evolves through time according to fixed regime persistence probabilities. Given enough observations, the regime-fitting procedure recovers an estimate of the hidden state at each point in the past and, by extension, the most probable state for the most recent observation.
For our purposes the hidden state is the market regime. We assume that at each weekly time step the market is in exactly one of three regimes, and that each regime has its own characteristic distribution of returns and volatility. The model does not know in advance what these distributions look like; the training procedure (described in section 4) infers them from the data alongside the regime persistence framework.
Two clarifications about what the regime classifier is doing here, since the word “model” is overloaded:

  • The output is a retrospective probabilistic state estimate. The model says, given everything observed up to today, that the most likely current regime is, e.g., Bull with 89% model confidence. This is a labeling of the present, not a forecast.
  • The state labels (Bull / Sideways / Bear) are post-hoc human labels applied to the three latent states the model identifies. The model itself just produces “state 1, state 2, state 3.” We sort those by mean return and assign the human-readable names after fitting.
Today’s reading (illustrative): regime: Bull, model confidence ~89%. Description, not prediction.

2. The 3 states

The three states emerging from the fit are characterized as follows. Numbers shown are typical fitted parameters when the model is trained on a long historical window of broad-market pricing data; the actual fitted parameters refresh on every retraining and are logged in the changelog.

2.1 Bull state

Bull Positive drift in returns, low realized-volatility cluster.

  • Mean return: positive (typically positive single-digit percent on a weekly basis).
  • Realized volatility: low.
  • Persistence: high. Once entered, the Bull state tends to remain for many weeks at a time.

2.2 Sideways state

Sideways Near-zero drift in returns, moderate realized-volatility cluster.

  • Mean return: near zero.
  • Realized volatility: moderate.
  • Persistence: moderate. Sideways often serves as a transition channel between Bull and Bear, but can also persist for extended choppy periods.

2.3 Bear state

Bear Negative drift in returns, high realized-volatility cluster.

  • Mean return: negative.
  • Realized volatility: high.
  • Persistence: variable. Brief Bear regimes (1–3 weeks) reflect transient stress; sustained Bear regimes (8+ weeks) reflect structural drawdowns.

2.4 Sorting the labels

After every fit, the three latent states the algorithm has identified are sorted by their fitted mean return. The state with the highest mean return is labeled Bull. The state with the lowest mean return is labeled Bear. The remaining state is labeled Sideways. This sorting step is necessary because the underlying fit is unidentified up to label permutation: the same data fit twice can produce the same three distributions in a different numerical order, and we want consistent human-readable labels across retrainings.

3. Inputs

The model is trained on broad-market pricing data observed over a long historical window, sampled at a weekly cadence.
Two design choices in the input pipeline are worth noting.
Why weekly, not daily. Daily returns are noisier than the regime structure we are trying to identify. A regime classifier trained on daily returns tends to over-fit, producing many false transitions per month. Weekly sampling smooths intraday-to-overnight noise and aligns the model’s natural time scale with how regimes typically evolve in practice (over weeks, not over hours).
Why a long lookback. A longer history lets the fit absorb a reasonable mix of regimes and reduces sensitivity to any single recent episode. The exact lookback window is deliberately not published; what is disclosed is the conceptual choice (long, not short) and the rationale.

4. Training procedure

The model is trained with standard regime-fitting techniques that iteratively refine state distributions and the regime persistence framework until convergence. Training uses multiple starting points to reduce the chance of converging on a local optimum.
Convergence. Each fitting run is iterated until successive iterations stop materially changing the fit, or until a fixed iteration cap is reached, whichever is first.

5. Model confidence

Once the model is trained, the per-week model confidence of each state is computed across the historical observation window. This produces, for each weekly observation in the training window, a 3-vector of model confidences that sum to 1 (e.g., [0.89, 0.10, 0.01] = 89% Bull, 10% Sideways, 1% Bear).
The reported “regime confidence” is the maximum element of this 3-vector for the most recent observation. A confidence of 89% in the Bull state means the model assigns 89% weight to the Bull state for the current week and 11% combined to the other two states. A confidence below ~60% on any single state should be read as “the model is meaningfully uncertain” and read as a hint that a regime transition may be in progress.

6. Regime persistence

The regime persistence framework encodes the probability of moving from each state at week t to each state at week t+1. Typical fitted values when training on a long historical window of broad-market pricing data are shown below. These are illustrative; the actual fitted values from each retraining are logged in the changelog.

From \ To Bull Sideways Bear
Bull ~0.95 ~0.04 ~0.01
Sideways ~0.10 ~0.85 ~0.05
Bear ~0.05 ~0.20 ~0.75

The pattern to read in this table is regime persistence. Each row sums to 1; the diagonal is the probability of staying. A Bull-state week is followed by another Bull-state week roughly 95% of the time. A Sideways-state week is followed by another Sideways-state week roughly 85% of the time. A Bear-state week is the least persistent of the three at roughly 75%, partly because Bear regimes in the post-2020 sample are short and end via a transition through Sideways rather than directly back to Bull.
The off-diagonal entries describe the typical transition pathways. Bull does not jump directly to Bear with meaningful probability; the model passes through Sideways first. Bear has its highest off-diagonal in the Sideways column, consistent with a recovery channel rather than a snap-back rally.

7. What it catches

The regime classifier is well-suited to a specific kind of pattern: slow regime drifts where the distribution of returns is shifting over a multi-week window even as individual price moves stay within a normal day-to-day range. Because the model integrates over recent history, it picks up sustained changes in the mean and variance of returns before any single week’s return alone is alarming.
Concretely, three pattern types it catches well:

  • Sentiment shifts that show up in volatility before they show up in price. If the realized-volatility component starts climbing while returns remain mildly positive, the model confidence begins migrating from Bull to Sideways before the trend itself breaks.
  • Breadth decay phases. When a market continues to advance on narrowing leadership, the realized-volatility distribution often broadens even as the headline tape looks fine. The classifier captures this as widening per-week variance, which lowers the Bull confidence even before any regime label changes.
  • Confidence decay before reversals. A common pattern observed in retrospect is that the Bull confidence drifts from ~95% down to ~70% over several weeks before a Bull→Sideways flip is published. The published label changes only when the Sideways confidence overtakes Bull, but the confidence number itself tells a story for several weeks ahead.

The classifier also encodes a useful prior: regimes are persistent. Because the diagonal of the regime persistence framework is high, the model confidence does not whip back and forth on a single noisy week. This matches the empirical observation that genuine regime changes are rare and that single-week reversals usually mean-revert.

8. What it misses

The framework has structural blind spots. Anyone reading the regime tag should know what they are.

  • Sudden shocks. Geopolitical surprises, central-bank surprises, single-name earnings cliffs that ripple to the index — if these occur and resolve inside a single week, the weekly cadence absorbs them as one observation. The model registers the shock but does not flip its label until the post-shock distribution stabilizes.
  • Regime breaks shorter than one week. Mid-week intraday volatility events that mean-revert by Friday close are invisible to a weekly observation series.
  • Structural shifts in the underlying distribution. The probabilistic distribution assumption presumes that each state’s returns are drawn from a fixed shape. A model trained on a rolling long historical window picks up a new distribution gradually but does not adapt to a structural break instantaneously.
  • Cross-asset confirmations. The classifier uses only equity-market observables. Credit spreads, FX, and commodities can move first and signal a regime change before the equity-only model has enough data to flip. The companion MPI framework is designed to incorporate those cross-asset signals.

9. Update cadence

The model is recomputed daily at 16:30 ET on US trading days (Mon-Fri excluding NYSE holidays). Each refresh advances the most recent observation by one trading day, recomputes realized volatility, and re-runs inference through the full training window. A full retraining of the model parameters runs weekly on Sunday evenings; intra-week refreshes use the most recent fitted parameters and only update the model confidence given new observations.
This cadence matches the natural time scale of the model. Weekly retraining lets the parameter estimates absorb new structure as the rolling long historical window advances; daily updates let the published regime label respond to within-week movements without waiting for the next Sunday retraining.

10. Calibration history

The regime classifier has been calibrated against historical periods with known regime labels. We use NBER expansion and recession dating as the canonical “ground truth” for macro regimes, and use observable equity drawdown periods (peak-to-trough >15% on SPY) as the canonical “ground truth” for equity stress regimes. The classification accuracy on these labeled periods is the primary calibration metric.
Sample wins:

  • March 2020 Bear. The classifier transitioned from Bull to Bear inside two weeks of the COVID drawdown, with Bear confidence climbing rapidly as realized volatility spiked. The label held through April and reverted to Sideways through May before re-entering Bull.
  • 2022 sustained drawdown. The classifier held a Bear or Sideways label for most of 2022, correctly identifying the persistent stress phase rather than calling each rally as a regime flip.
  • April 2026 regime flip. The classifier caught the recent regime transition with the model confidence decaying steadily over the preceding two weeks before the flip itself.

Sample misses:

  • August 2024 yen-carry stress. The transient single-week volatility spike was absorbed into the Sideways state without a Bear flip. Whether this was a miss or a correct call is debatable; in retrospect the resolution was fast enough that a Bear label would have been a false alarm. We log it as a borderline case.
  • January 2025 whipsaw. The Bull→Bear→Bull whipsaw was published as Bull→Sideways→Bull. The middle Bear state in the realized regime was too brief for the weekly cadence to fully resolve into a Bear label.

Calibration accuracy is recomputed each month and added to the changelog at Regime Classifier Changelog. As with MPI, we do not publish a single headline accuracy number, because the meaning of “correct” depends on the question being asked of the model.

Regime Detection is inherently lagging

By design, the regime classifier identifies a regime AFTER it’s established, not before. The model needs sufficient observations to update its model confidence. Expect 1-2 weeks of lag at fast regime changes.

Documented examples of this lag:

  • Aug 2024 yen-carry unwind: regime confidence stayed Bull through Aug 5 even as VIX spiked. Caught the shift Aug 12 — 1-week lag.
  • Jan 2025 whipsaw: 3 regime flips in 14 days as the model chased fast-changing volatility regime; classic regime classifier failure mode.
  • Mar 2024 mid-month drawdown: Bull regime held through 5% drop; model lagged confirmation by 8 days.

Read the regime classification as “the market has been in this regime”, not “the market is about to enter this regime”. Pair it with the more responsive MPI sub-indicators for forward-looking texture.

Hidden state stability

A common concern: do the 3 hidden states (Bull / Sideways / Bear) remain stable over time, or do they drift?

Our approach: we retrain the regime classifier on a rolling long historical window of broad-market pricing data, refit each Sunday. State labels are sorted post-fit by mean return (highest = Bull, lowest = Bear). When state characteristics drift materially (e.g., post-2020 volatility regime), we flag in the changelog.

Caveat: The probabilistic distribution assumption breaks during fat-tail events (Mar 2020, Aug 2024). State means and variances mid-event don’t reliably capture the underlying distribution. Read regime classifications during stress periods with extra skepticism.

11. Limitations

  • Probabilistic distribution assumption breaks during fat-tail events. Real returns have heavier tails than a clean parametric distribution, and during stress events the heaviness is the whole story. The model accommodates fat tails partially by absorbing them into the Bear state’s wide variance, but a single multi-sigma move is still an under-modeled event.
  • Lookback bias. A long historical training window means that the model is implicitly calibrated to the regime mix of that history. If the next several years differ structurally from the last (e.g., a fundamentally different inflation or rate regime), the fitted state distributions will adjust slowly rather than instantly.
  • Post-hoc state labels. Bull / Sideways / Bear are not observable categories the model knows about. They are human labels applied after sorting the fitted states by mean return. If two of the three fitted states have very similar mean returns — an unusual outcome but possible — the sorting step can label-flip across retrainings even though the underlying fit is similar.
  • Equity-only inputs. The model ignores credit, FX, rates, and commodity context. It is designed to be a pure equity-regime classifier and is read in conjunction with cross-asset frameworks like MPI rather than in isolation.
  • Initialization sensitivity. Even with multiple starting points, iterative regime fitting is not guaranteed to find the global optimum on every fit. The multi-start protocol substantially reduces but does not eliminate the risk of a locally-optimal fit.
  • Discrete labels obscure continuous information. The regime label is a hard call from a soft model confidence. A reader who wants the full picture should look at the model confidences themselves, not only the label.

12. Versioning

This document describes regime classifier schema version 2.0, the version live on 2026-05-08. Schema bumps are triggered by changes to the number of states, the input series, the cadence, or the training algorithm. Internal parameter changes (lookback length, number of fitting restarts, convergence tolerance) are logged but do not bump the schema. Every change is recorded with a date, the change, and the rationale at Regime Classifier Changelog.

Last updated: 2026-05-08 · Version: 2.0 · Changelog: Regime Classifier Changelog