Portfolio LabKnowledgeSign inCreate account

Macro dashboard and regime analysis: methodology

In depth14 min read · updated 27 October 2026 · 12 sources

The Macro page shows the business cycle, inflation, interest rates and the labor market for the US, the euro area and Germany, and divides the past into regimes: recession or not, high or low inflation, rate hikes or rate cuts. The regime analysis then shows how your portfolios performed in each state. This methodology explains the data preparation, rules and metrics as the code implements them.

Indicators by region

For each of the three regions, Portfolio Lab loads the same basic set: 11 indicators for the euro area and Germany, and 12 for the US, where the official recession dating is added. The values come from the statistics of central banks and statistical offices; the page shares the money market rate with the rest of the app.

CategoryEuro area and GermanyUS
InflationConsumer prices (HICP) and core inflation excluding energy and food, each versus the same month a year earlierConsumer prices (CPI) and core CPI, versus the same month a year earlier
Interest ratesECB deposit rate, money market rate (€STR, before that EONIA, before that the overnight rate), 10-year government bond yieldFed funds rate, 3-month T-bills, 10-year Treasuries
Yield curve10-year yield minus money market rate in percentage pointssame
GrowthReal GDP versus the previous quarter and the previous year, industrial production versus the previous yearsame (GDP versus the previous quarter not annualized)
Labor marketUnemployment rateUnemployment rate
SentimentEconomic sentiment indicator (ESI), long-term average 100Consumer sentiment

At the top of the page are eight cards with the latest value, the data date and the value about twelve months earlier, with charts for each category below. The inflation chart has a reference line at 2%, the medium-term target of the central banks.

Preparing the series

Each indicator has a preferred source and fallback sources. Daily values are turned into monthly values: for market rates the monthly average, for the ECB deposit rate the last rate in the month (months without a change inherit the last rate). If a series is available as an index, the code calculates the change versus the previous year (12 months or 4 quarters) or the previous quarter. A current month built from daily values only counts once it is over.

Change y/y = (Value_t / Value_t−12 − 1) × 100
Value_t
index level in month t, such as consumer prices or industrial production
t − 12
the same month a year earlier; for quarterly series t − 4

The code combines several sources in order of priority: the first series with data stays unchanged, and each further one only adds months before it (a longer history) or after it (if the preferred source is no longer updated). Fallback sources are only queried as long as no up-to-date series is available. Up to date means that the last value is at most 150 days old for monthly data and 270 days for quarterly data. Sources that only extend the history are always fetched. If the last value is older, “Data status and sources” shows a notice. Fetches are cached for 12 hours; on network errors the last state applies, marked as “outdated”.

Six regimes

A regime is a label for each month. The Macro page determines six kinds of regime using fixed, simple rules instead of an estimated model. Statistical methods such as the regime-switching model of Hamilton (1989) estimate phases from the data itself. For price series, Portfolio Lab runs such a hidden Markov model on the Regime page (Regime methodology). Fixed rules are coarser, but they are transparent and have no parameters that could be chosen after the fact to fit the data.

RegimeRuleStates
RecessionUS: official dating (0/1); euro area and Germany: at least two consecutive quarters of falling real GDP, all months of these quartersRecession, no recession
Business cycle clockBusiness cycle indicator, smoothed over three months: above or below the neutral value × risen or fallen versus three months earlierRecovery, expansion, slowdown, downturn
InflationInflation versus the previous year; boundary values count toward the upper bandbelow 0%, 0–2%, 2–4%, above 4%
Rate phasesMonthly average money market rate versus six months earlier, threshold ±0.25 percentage pointsRate hikes, sideways, rate cuts
Yield curve10y minus money market: below 0 inverted, below 0.5 flat, otherwise normalinverted, flat, normal
Growth and inflationDirection of the smoothed business cycle clock over three months × direction of inflation over six monthsGoldilocks, reflation, stagflation, cooling

The business cycle indicator is economic sentiment in the euro area and Germany, with a neutral value of 100, and industrial production versus the previous year in the US, with a neutral value of 0%. The clock runs in a circle: below neutral and rising is recovery, above neutral and rising expansion, above neutral and falling slowdown, below neutral and falling downturn. The idea corresponds to the well-known “Investment Clock”; Portfolio Lab implements it with just this one indicator.

In the combination of growth and inflation, rising growth with inflation that is not rising is called Goldilocks, both rising reflation, weaker growth with rising inflation stagflation, and both falling cooling. Unchanged inflation counts as not rising.

There is a reason for treating the yield curve as a regime: an inverted curve (short-term rates above long-term rates) preceded most recessions in the US, as Estrella and Hardouvelis (1991) and Estrella and Mishkin (1998) showed. The basics are covered in the article Yield curve.

Regime analysis of the portfolios

The regime analysis takes the portfolios from the grid, normalizes the weights to 100% and calculates monthly returns in the base currency, rebalanced monthly. The current month is left out. It then aligns each regime with the months of the return series and summarizes each state: number of months, share of time, return p.a., volatility p.a. (standard deviation × √12), share of positive months, and the average and worst month. The return p.a. is the geometric mean of the months in the regime, annualized to twelve months:

Return p.a. = exp(12 · mean(ln(1 + r_m))) − 1
r_m
monthly returns of the portfolio in the months with this state, even if they are not consecutive

If a state covers fewer than 24 months, a notice advises you to read the values there with caution. That threshold is rather generous: with 24 months and 15% volatility, the standard error of the annualized return is still around 10.6 percentage points (15% ÷ √2). That expected returns really do vary with the business cycle is shown, for example, by Fama and French (1989); but whether a portfolio did better in a regime says little about whether it will do so again next time.

Lag and revisions

All regimes are determined in hindsight, using the data published today, including later revisions. Technically, a recession in the euro area is only established once the second weak quarter has been published, up to eight months after it began. Anyone who wants to test a strategy that reacts to regimes must therefore work with what was known at the time. Croushore and Stark (2001) use real-time data to show how strongly results depend on such revisions.

The Lag setting (0 to 24 months) shifts each regime later by that many months: with 3 months, the label for January only applies to the return in April. As rules of thumb, the page states that inflation and interest rates are known after one to two months, sentiment values immediately, technical recessions up to about eight months later and the official US dating often 6 to 18 months later. The lag does not capture revisions themselves.

Limitations

  • Few changes: since the introduction of the euro, the euro area has had only a few recessions. Any statement about “portfolios in recessions” rests on very few episodes.
  • Fixed thresholds such as 0.25 percentage points, or 0.5 percentage points for the yield curve, are set, not estimated. Small changes move months between states.
  • Smoothing costs time: because of the three-month average and the comparison over three months, the business cycle clock only reacts to turning points with a delay.
  • Data of different lengths: indicators that start later cut off the regime analysis; the “Data status and sources” table shows From and To for each indicator.
  • No forecast: the regimes describe the past; the page makes no recommendation on how to position a portfolio for the next regime.

Market expectations: what the market is pricing in

The Market expectations tab shows what bond, inflation and options markets are pricing in today: the rate path, inflation expectations, the probability of a recession and the volatility priced into the stock market. Where no freely available market prices exist, the code uses a survey and labels it as such. Background and studies are covered in the article Market expectations.

Sources by region

CategoryEuro area and GermanyUS
Rate pathinstantaneous forward rates of the ECB yield curve for AAA-rated government bonds (Svensson model, daily) in 3, 6 and 9 months and in 1, 1.5, 2, 3 and 5 yearsforward rates from constant-maturity Treasury yields for 1, 3 and 6 months and 1, 2, 3 and 5 years
Policy rateECB deposit ratemidpoint of the Fed's target range; in the history chart the effective fed funds rate
InflationECB Survey of Professional Forecasters (survey, not a market price)breakeven inflation for 5 and 10 years, 5-year forward inflation 5 years ahead
Recession–probit on the 10-year yield minus the 3-month T-bill, recessions as dated by the NBER
Stock market–implied volatility of the S&P 500: VIX (30 days), VIX 3-month (93 days), VIX 6-month (186 days)

Germany uses the same series as the euro area because monetary policy is the same. For a recession model and the priced-in stock market volatility, the euro area lacks freely available data or a sufficiently long history; for these, the page refers to the US region. The ECB estimates its curve from government bonds with 3 months to 30 years of residual maturity, excluding floating-rate and inflation-linked bonds (ECB, yield curve methodology 2026).

Rate path and priced-in change

The ECB publishes instantaneous forward rates directly; the code reads them off at the eight points. For the US it calculates them itself: the constant-maturity yields are treated, as an approximation, as zero-coupon rates on a semi-annual basis, converted into continuously compounded rates and turned into a forward rate for each segment between two adjacent maturities. The first segment starts today; its forward rate equals the one-month yield.

r = 2 · ln(1 + y / 2) f = (r₂ · t₂ − r₁ · t₁) / (t₂ − t₁), shown as e^f − 1 priced-in change = forward rate in about one year − policy rate; rate moves = change / 0.25
y
constant-maturity yield (semi-annual basis) as a decimal
r₁, r₂
continuously compounded rates for adjacent maturities t₁ < t₂ in years
f
continuously compounded forward rate between t₁ and t₂; e^f − 1 is the annual rate
forward rate in about one year
ECB: instantaneous forward rate in 1 year; US: forward rate in the 6 to 12 month segment

In the euro area, an instantaneous forward rate in one year of 2.20% with a deposit rate of 2.50% gives (2.20 − 2.50) / 0.25 = −1.2 rate moves (illustrative figures). Beyond 0.2 moves up or down, the tile names the direction (hikes or cuts), otherwise “little change”. The chart shows the forward rates over the years from today for three points in time: today (last day with data), 3 months ago (91 days earlier) and a year ago (365 days earlier), each using the last value up to that day; in the US, each forward rate is plotted at the middle of its segment. The History below shows, weekly (last value up to Friday), the forward rate in about one year against the policy rate: in the euro area since September 2004 against the deposit rate, in the US against the effective fed funds rate. If the forward-rate line is above the policy rate, the market is pricing in hikes; if it is below, cuts.

Inflation expectations

For the US, the page shows breakeven inflation for 5 and 10 years and the 5-year forward inflation 5 years ahead, each with the latest value and the value a year earlier, plus the weekly history. For the euro area and Germany there are no freely available market prices for inflation expectations (inflation swaps). The code therefore uses the ECB's Survey of Professional Forecasters: the long-term expectation of each round as a history and, from the latest round, the point forecasts for the year of the round, the two following years and the longer term, each as the mean of the respondents. The survey has been conducted four times a year since 1999 (ECB, Survey of Professional Forecasters 2026); it is not a market price.

Recession probability

The model follows the New York Fed (Estrella and Trubin 2006): the spread is the 10-year Treasury yield minus the yield of the 3-month T-bill, both as monthly averages. T-bills are quoted on a discount basis; the code converts the discount rate into the bond-equivalent yield. A probit model translates the spread into the probability that the economy will be in a recession, as dated by the NBER, twelve months later.

Bond-equivalent yield = 365 · d / (360 − 91 · d) P(recession in month t + 12) = Φ(α + β · spread_t)
d
discount rate of the 3-month T-bill as a decimal
Φ
cumulative distribution function of the standard normal distribution
spread_t
10 years minus 3 months in month t, in percentage points
α, β
estimated by maximum likelihood; β is negative: the more inverted the curve, the higher the probability

In 2006 the New York Fed published fixed values, α = −0.6045 and β = −0.7374, estimated from the years 1959 to 2005 (Estrella and Trubin 2006). Portfolio Lab, by contrast, re-estimates α and β on every fetch, using all months since January 1959 for which the recession indicator twelve months later is already available. The estimation uses Fisher scoring (Newton steps with the expected information matrix), starts at α = β = 0 and stops as soon as no step is larger than 10⁻¹⁰ (at most 100 steps); with fewer than 120 months the code does not run it. Below the chart are α, β, the number of months and the estimation period. The line shows the probability for the month it refers to, from 1960 onwards; gray areas mark the recessions.

Stock market: implied volatility

From the VIX, VIX 3-month and VIX 6-month, the code uses σ = index level / 100 and T = 30, 93 or 186 days / 365 to calculate the ±1σ range and the risk-neutral probabilities of a decline of at least 10% or 20% and of a rise of at least 10%, assuming a lognormal distribution without drift:

Range ±1σ = e^(±σ√T) − 1 P(S_T / S_0 ≤ 1 − k) = Φ((ln(1 − k) + σ²T / 2) / (σ√T)) P(S_T / S_0 ≥ 1 + k) = 1 − Φ((ln(1 + k) + σ²T / 2) / (σ√T))
σ
implied volatility per year
T
time to maturity in years
k
decline or rise: 0.10 or 0.20

Fetching and caching

Interest rates, inflation and recession data come through the caches of the Macro page: they are valid for 12 hours, and on network errors the last state applies. For the euro area rate path the code only loads the last 400 days, and for the history of the forward rate in one year it loads the data since September 2004; the latest round of the survey has its own entry. The tab shares the VIX indices with the Volatility page, whose cache is valid for three hours. Each region delivers whatever can be fetched; the page lists missing parts at the top under “part(s) without data”, and an error message only appears when nothing at all can be fetched.

Limitations of market expectations

  • Premia rather than pure expectations: forward rates contain term and liquidity premia, and breakevens contain an inflation risk premium and a liquidity premium (Gürkaynak et al. 2010). The priced-in change is therefore only approximately the expected number of rate moves.
  • T-bills are not the fed funds rate: short-term Treasury yields are often above or below the overnight rate; fed funds futures would be more precise, but they are not freely available. Treating constant-maturity yields as zero-coupon rates is an approximation, and the forward rate (annual rate) and the policy rate follow different rate conventions.
  • Survey instead of market price in the euro area: the survey contains no risk premium, but it only appears four times a year and shows opinions, not prices at which anyone trades.
  • Probit fitted in hindsight: the parameters come from the same history they explain. The inverted yield curve from October 2022 to December 2024 signaled a recession that, according to the NBER, has not arrived to this day (J.P. Morgan Asset Management 2025; NBER 2026). The most recent months of the recession indicator are also provisional, because the NBER only sets turning points well after the fact.
  • Risk-neutral is not actual: the probabilities from the VIX contain the premium paid for protection and are usually above the actual frequency (Carr and Wu 2009). The lognormal distribution also does not capture the skew of option prices: deep out-of-the-money puts are more expensive than they would be under it.

Frequently asked questions

What is a technical recession?

Two consecutive quarters of falling real GDP versus the previous quarter. Portfolio Lab uses this rule for the euro area and Germany and counts all months of these quarters as recession; for the US, the official dating applies, which also takes the labor market and income into account.

Why do the regimes differ from the headlines?

The rules are mechanical and use revised data. A recession declared at the time can disappear after revisions, and vice versa. In addition, rate phases are based on the money market rate, not the policy rate.

What lag should I set?

For a descriptive analysis, 0. For a strategy that reacts to a regime, at least the time until publication: one to two months for inflation and interest rates, considerably more for recessions.

How is the return p.a. calculated for each regime?

As the geometric mean of all monthly returns in the regime, annualized to twelve months. The months do not have to be consecutive; the “Share of time” column shows how often the state occurred.

What do Goldilocks and stagflation mean?

Goldilocks means rising growth with inflation that is not rising; stagflation means weaker growth with rising inflation. Only the direction over three or six months is measured, not the level.

How does Portfolio Lab calculate the priced-in rate moves?

As the forward rate in about one year minus the policy rate, divided by 0.25: in the euro area, the instantaneous forward rate of the ECB yield curve in one year against the deposit rate; in the US, the forward rate for 6 to 12 months from Treasury yields against the midpoint of the target range. Term premia are included.

Literature

  1. Carr, Peter; Wu, Liuren (2009): Variance Risk Premiums. Review of Financial Studies 22 (3), pp. 1311–1341. doi:10.1093/rfs/hhn038
  2. Croushore, Dean; Stark, Tom (2001): A real-time data set for macroeconomists. Journal of Econometrics 105 (1), pp. 111–130. doi:10.1016/S0304-4076(01)00072-0
  3. Estrella, Arturo; Hardouvelis, Gikas A. (1991): The Term Structure as a Predictor of Real Economic Activity. The Journal of Finance 46 (2), pp. 555–576. doi:10.1111/j.1540-6261.1991.tb02674.x
  4. Estrella, Arturo; Mishkin, Frederic S. (1998): Predicting U.S. Recessions: Financial Variables as Leading Indicators. Review of Economics and Statistics 80 (1), pp. 45–61. doi:10.1162/003465398557320
  5. Estrella, Arturo; Trubin, Mary R. (2006): The Yield Curve as a Leading Indicator: Some Practical Issues. Current Issues in Economics and Finance (Federal Reserve Bank of New York) 12 (5). Source
  6. Europäische Zentralbank (2026): ECB yield curve methodology (Technical Notes). EZB, ohne Datum; abgerufen am 27.10.2026. Source
  7. Europäische Zentralbank (2026): Background on the survey of professional forecasters. EZB; abgerufen am 27.10.2026. Source
  8. Fama, Eugene F.; French, Kenneth R. (1989): Business conditions and expected returns on stocks and bonds. Journal of Financial Economics 25 (1), pp. 23–49. doi:10.1016/0304-405X(89)90095-0
  9. Gürkaynak, Refet S.; Sack, Brian; Wright, Jonathan H. (2010): The TIPS Yield Curve and Inflation Compensation. American Economic Journal: Macroeconomics 2 (1), pp. 70–92. doi:10.1257/mac.2.1.70
  10. Hamilton, James D. (1989): A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle. Econometrica 57 (2), pp. 357–384. doi:10.2307/1912559
  11. J.P. Morgan Asset Management (2025): Was the yield curve inversion wrong in predicting a US recession? (On the Minds of Investors). J.P. Morgan Asset Management, ohne Datum (2025); abgerufen am 27.10.2026. Source
  12. National Bureau of Economic Research (2026): US Business Cycle Expansions and Contractions. NBER, Business Cycle Dating Committee; Daten zuletzt geändert am 14.3.2023, abgerufen am 27.10.2026. Source

Full bibliography

This page describes how Portfolio Lab calculates; past results are not a forecast. All terms in the glossary.