How it works
RegimeR monitors macroeconomic conditions and classifies when the environment has changed — not what to invest in. When a regime shift is detected, your team reviews positioning. Fixed thresholds on observable indicators, no machine learning, no discretionary overlays.
Five regimes
Contraction
Credit stress is elevated and broadening. Yield curve inversion, widening credit spreads, and deteriorating growth momentum converge. This is the regime the system is built to detect early — historically the source of the largest capital destruction.
Stagflation
Inflation persists alongside economic contraction — the textbook definition. Growth indicators are below trend while prices are rising. Traditional balanced portfolios are particularly vulnerable because both equity and bond legs can decline simultaneously.
Inflationary
Inflation is elevated but the economy is still expanding. Commodity prices, supply chain pressure, or demand-pull dynamics are driving prices higher without the growth deterioration that defines stagflation. Different positioning is required — growth-linked assets can still perform while inflation hedges are needed.
Transition
Mixed signals — neither clearly expansionary nor contractionary. Multiple indicators sit near regime boundaries. The system monitors binding signals that could trigger a shift in either direction.
Expansion
Growth is broad-based, inflation is contained, credit conditions are loose. The system monitors for late-cycle signals that would indicate regime deterioration.
Five questions, not one label
Most regime models output a single classification. RegimeR answers five questions simultaneously — the questions every portfolio manager asks but most systems leave unanswered.
Question 1
What regime are we in?
Primary classification across five regimes — Expansion, Transition, Inflationary, Stagflation, Contraction — using multiple independent macroeconomic indicators per region.
11 sub-types refine the classification with context on whythe regime is what it is. Sub-types structurally cannot override the parent — a designed-in safety constraint, not a configuration option.
Question 2
How stable is it?
The stability score measures distance to the nearest regime boundary. Two regions in Expansion are not the same trade if one is at 85/100 stability and the other is at 21/100. The constraint solver computes actual distance to each boundary — not a heuristic, not a guess.
Question 3
Where is it heading?
Transition pressure and direction tell you where the regime is going, not just where it is. One region in Transition with 100% pressure toward Stagflation is a completely different signal than another with 50% pressure toward Expansion. Same parent regime, opposite implications.
Question 4
Does the market know yet?
The divergence monitor detects when economic stress is building but credit markets have not responded. In backtested measurement: 27.5% positive predictive value (2.2x lift), 7.7-month average lead time, and correctly inactive during all four COVID episodes. Roughly three of four alerts are false alarms — it is an attention signal, not a trading trigger.
Question 5
How is rate policy reaching households?
Housing is the primary monetary policy transmission channel alongside credit and exchange rates. The housing stress layer measures six categories of stress — price momentum, affordability, household debt burden, lending activity, loan quality, and market conditions — weighted to each region’s mortgage market structure.
A variable-rate market like Australia transmits rate changes to household cash flows within weeks. A 30-year fixed market like the United States insulates existing borrowers for decades. The same rate hike produces fundamentally different housing stress in different markets, and the weights reflect this. Elevated housing stress historically precedes regime transitions by 6–18 months.
What the combination produces
The value is not any single layer — it is the matrix of states they create together.
Traditional model
“State 2, probability 0.73”
State 2 of what? Stable or deteriorating? Is the market already positioned? No answers.
RegimeR
“Transition. Stability 13/100. 100% toward Stagflation. Credit markets have not noticed yet.”
Specific. Quantified. Timestamped. With explicit corroboration bounds and a prospective record.
What updates when
Speed and stability trade against each other. The regime call is the slow, stable, audit-graded layer — the one written into the prospective record and the one a compliance review will read in two years. The faster layers sit alongside it for managers who need to watch conditions move in between.
Monthly — the regime call
Regime, sub-type, basket
Published as the last completed month closes. A regime change requires two consecutive months of confirmation before it is adopted — the persistence rule that prevents whipsaw on noisy single-month moves. The cost is up to a month of lag at a real turning point. That cost is the point: a label that holds up under review is worth more than a label that flips.
Every monthly call is appended to a cryptographically chained log and hashed with an RFC 3161 timestamp. The record cannot be edited after the fact.
Daily — the underlying signals
Signal values, stability, transition pressure
Every constituent signal — credit stress, yield-curve shape, supply-chain pressure, commodity momentum, sub-type inputs — refreshes daily and is exposed on the dashboard and via the API. So do the stability score, distance to each adjacent regime boundary, and transition pressure. A manager watching credit spreads tighten can see it tighten today, even while the regime label remains where it was.
This is the layer that answers “is the environment shifting?” without committing to “is the regime shifting?” The two questions have different update cadences on purpose.
Immediate — threshold and integrity alerts
Key-level crossings, data integrity
When a structural signal crosses a level that matters to regime logic — supply-chain pressure, yield curve inversion, full-inversion thresholds — the alert is immediate. Same for data-integrity faults: missing regions, stale caches, classifier output that fails sanity checks. These do not move the regime label by themselves; they tell you the underlying picture has changed materially since the last monthly close.
Separately tracked — the early-warning detector
Stress patterns ahead of the parent trigger
A change-point detector that flags stress patterns building ahead of the parent classifier’s compound-rule trigger. Mean lead time 3.7 months, precision 46%, recall 41%. Explicitly not a regime change — precision is too low to act on alone — but a flag worth watching when it fires. Surfaced separately on every region page so it cannot be confused with the parent call.
The system is sold as the disciplined monthly call with a faster observational layer underneath. Real-time regime classification is not a goal — it would require giving up the discipline that makes the call worth quoting.
Walk-forward design
At each timestep T, only data available at T-1 is used. Thresholds are calibrated on historical data using walk-forward methodology. The system never sees the future, and every classification decision can be reproduced from the data that existed at the time.
This is not a backtest optimised to maximise Sharpe. The system was developed in 2026 and backtested against 28 years of historical data (1998–2024). A formal parameter lock — verified by an independent RFC 3161 timestamp, cryptographic proof that the parameters existed in their stated form before any prospective results were recorded — will be applied when the current re-testing program concludes and the prospective validation window opens. Earlier lock attempts in 2026 were voided by our own governance review and we disclose that history rather than restate it. If the signal degrades in real time, we will publish that result.
What validation proves — and what it doesn’t
Where validation actually stands. Our original permutation tests shuffled individual months and produced strong significance figures. Our own follow-up work showed that method overstates significance for trending market data: when we re-tested with block-based permutations that preserve market trends, the regime boundaries were not statistically distinguishable from chance placements. We have withdrawn the original claims and are re-testing under a pre-registered, block-aware protocol. Supporting evidence that survives so far includes sub-type discrimination on observed drawdowns (p = 0.003, Cohen’s d = 0.58 on daily-frequency data) — but the headline question, does classification skill exceed chance on real data, is honestly open. That is what the re-testing program and the prospective record exist to answer.
Specification search. The regime definitions (yield curve, credit spreads, inflation, leading indicators) are standard macro constructs, not data-mined combinations. Walk-forward thresholds are computed from past data at each timestep, mitigating threshold fitting. But the choice of which indicators to include is a design decision that occurred within the historical sample. We cannot eliminate all multiple-comparisons risk.
Structural novelty. The 16 backtested episodes include credit cascades, exogenous shocks, and inflation regimes. A crisis driven by a mechanism not represented in the historical sample — AI systemic risk, a novel sovereign debt configuration — may not be captured by the current signal set. Historical testing operates within the historical distribution; it cannot speak to out-of-distribution events.
Survivorship. Many quantitative strategies clear high statistical bars. You see only the ones that passed. This is an industry-wide limitation, not unique to RegimeR.
Statistical validation earns the right to be taken seriously. Live performance through an actual crisis is what earns an allocation. Live signal generation began April 2026 and every call is recorded before outcomes are known; the formal prospective window, with locked parameters, opens when the re-testing program concludes. Results will be published quarterly, including failures — as this page demonstrates.
Rule-based classification, auditable allocation
Machine learning approach
- Thousands of learned parameters
- Performance degrades when distribution shifts
- Decisions cannot be traced to specific inputs
- Requires retraining on new data
- Cannot be explained to a board of trustees
RegimeR approach
- Regime classification uses fixed threshold rules — no learned parameters
- Theory-first basket weights, not return-optimised fits
- Every classification traces to a named economic indicator
- Parameters locked before the prospective window opens
- Fully auditable for regulatory reporting (Solvency II compatibility mapping available in due diligence materials)
Fragility analysis
Regime classification answers what state the economy is in. Fragility analysis answers the question that matters more: what would change it, and how close are we?
The system computes the distance from current conditions to every adjacent regime boundary. For each boundary, it identifies the binding signals — the specific indicators that are closest to triggering a transition. A portfolio manager who already has an internal macro view can see exactly where their assumptions are most vulnerable.
Example: US in C_TRANSITION
Nearest boundary: A_STAGFLATION (distance: 4.5)
Binding signals: 2 indicators identified
B_COLLAPSE distance: 8.2
D_GOLDILOCKS distance: 6.1
This tells you: stagflation is the nearest risk, the system identifies which specific indicators are binding at each boundary, and collapse is further away. The authenticated API response includes the binding signal names. No other macro regime product provides this level of boundary transparency.
Programmatic Access
RegimeR exposes regime classifications, signal data, fragility scores, and divergence monitoring through a REST API. Current regime, boundary distances, binding signals, and early warning states are available as structured JSON for integration with existing portfolio and risk systems.
GET /api/v1/regime/US
{
"regime": "C_TRANSITION",
"corroboration": 0.75,
"subtype": "C3",
"signals": {
"supply_chain_pressure": 0.50,
"credit_stress": 1.20,
"growth_momentum": 50.0,
"yield_curve_spread": 0.40,
"energy_stress_level": "ELEVATED",
"labour_condition": "NORMAL",
"trade_stress": "MODERATE"
},
"fragility": {
"stability_score": 35,
"nearest_regime": "A_STAGFLATION",
"distance": 4.5,
"binding_signals": ["...", "..."],
"all_distances": {
"B_COLLAPSE": { "distance": 8.2, "binding": ["..."] },
"A_STAGFLATION": { "distance": 4.5, "binding": ["...", "..."] },
"D_GOLDILOCKS": { "distance": 6.1, "binding": ["...", "..."] }
}
},
"divergence": {
"active": false,
"n_signals_stressed": 1,
"market_calm": true,
"historical_ppv": 0.275
},
"timestamp": "2026-01-15T08:00:00Z"
}