Toutes les fiches de recherche
Pour l'instant, les fiches sont en anglais et en espagnol : vous lisez ici le texte anglais.
What it shows: a catalog of recognised recession signals for the euro area and for the US, each with its record against the recessions in its own data, and a combined signal from the ones the person chooses. History: block B5 of the redesign (docs/plan-rediseno.md); catalog and choice, session E of the plan of corrections of 22 October 2026 (docs/plan-correcciones-2.md); four more signals, CSV and data by area, the same day; human names, a wider repertoire, automatic choice and a combined signal with each signal's long history, also the same day; out-of-sample validation and pending warnings, on 23 October, asked for by Marek. It replaces the yield curve alone (curva-de-tipos.md).
How each signal is shown
First a human name ("Unemployment rises fast") and, in brackets, the technical name ("Sahm rule"). Below, a sentence on what it means and why it warns, and an example with a real date: not written by hand, it comes from its data (example in src/panel.ts). It is its last warning that was right, with the month the recession began; if it was never right, its last warning, as a false alarm or, if less than 24 months old, as an open warning. So the example is always true with the data the page has. In the five languages.
Catalog of signals
The thresholds are the ones the literature, or each signal's own source, gives. They are not tuned to this data: tuning them would make the record look better than it is. When neither the literature nor the source gives a threshold, the simplest reading is used (lower than a year before, or below its average), and the page's sheet says so under "Threshold from". Each signal has this section; the page opens it under "Details", links here and offers its data as CSV.
Rates at 10 years and at 3 months
- Name on the page: "Long-term interest falls below short-term" (yield curve, 10 years − 3 months).
- What it measures: how much more 10-year government debt pays than 3-month debt. Below 0 the yield curve is inverted: the short term pays more than the long term.
- Formula: each day with both rates, the 10-year rate minus the 3-month rate; the average of those days in the month, in percentage points, to two decimals. It signals in a month where it is below 0.
- Area and source: euro area, the ECB's AAA curve (
YC, seriesB.U2.EUR.4F.G_N_A.SV_C_YM.SR_10Yand…SR_3M), from September 2004. US, the Federal Reserve's Treasury constant-maturity yields (H.15,RIFLGFCY10_N.BandRIFLGFCM03_N.B), from September 1981. - Threshold: Estrella, A. and Mishkin, F. S. (1996). "The Yield Curve as a Predictor of U.S. Recessions". Current Issues in Economics and Finance, 2(7). Federal Reserve Bank of New York. Verified in the text (22 October 2026): p. 1 defines the spread "between the interest rates on the ten-year Treasury note and the three-month Treasury bill"; the table on p. 2 ("Estimated Recession Probabilities for Probit Model Using the Yield Curve Spread") gives a 25 % probability of recession four quarters ahead with a spread of 0.02 points and 30 % with −0.17. The paper sets no threshold; 0 (the inversion) is the usual reading, and in its table it means a probability of about one in four.
- Record: euro area, 0 of 3 recessions signalled, 1 false alarm. US, 4 of 4, 1 false alarm and 2 pending warnings, median lead of 12 months.
Rates at 10 years and at 2 years
- Name on the page: "Interest at 10 years falls below interest at 2 years" (yield curve, 10 years − 2 years).
- What it measures: the same with the 2-year term.
- Formula: as above, with the 2-year rate instead of the 3-month rate. It signals below 0.
- Area and source: euro area, the ECB's AAA curve (
…SR_10Yand…SR_2Y), from September 2004. US, H.15 (RIFLGFCY10_N.BandRIFLGFCY02_N.B), from June 1976. - Threshold: common market use (the inversion, below 0); there is no single reference paper. The page says "Neither the literature nor the source gives one".
- Record: euro area, 0 of 3, 1 false alarm. US, 5 of 6, 2 false alarms, median lead of 17 months.
Sahm rule
- Name on the page: "Unemployment rises fast" (Sahm rule).
- What it measures: whether unemployment rises fast from its recent low.
- Formula: the average unemployment rate of the last 3 months minus the lowest of those 3-month averages in the 12 months before, in points, to two decimals. It signals from 0.5 points.
- Area and source: euro area, Eurostat (
une_rt_m,EA21, seasonally adjusted), unemployment from January 2000 and the rule from March 2001. US, the Bureau of Labor Statistics (BLS,LNS14000000), unemployment from January 1948 and the rule from March 1949. - Threshold: Sahm, C. (2019). "Direct Stimulus Payments to Individuals". In H. Boushey, R. Nunn and J. Shambaugh (eds.), Recession Ready: Fiscal Policies to Stabilize the American Economy. The Hamilton Project and Washington Center for Equitable Growth.
- Record: euro area, 2 of 3, 1 false alarm, median 4 months late. US, 11 of 11, 2 false alarms and 1 pending, median 2 months late.
German debt at 10 years and at 6 months (approximation)
- Name on the page: "In Germany, long-term interest falls below short-term" (German yield curve, 10 years − 6 months).
- What it measures: Germany's yield curve, standing in for the euro area's, which at the ECB only exists from 2004. It is an approximation: German federal debt is not the euro AAA curve, and before 1999 there was the mark, not the euro. The page marks it so in the catalog and in its CSV.
- Formula: the monthly yield of German federal debt at 10 years minus that at 6 months, in points, to two decimals. It signals below 0. Six months because it is the shortest term of the same curve; the 3-month interbank rate (Euribor) needs a paid licence for commercial use (EMMI).
- Area and source: euro area (against the CEPR-EABCN recessions). Deutsche Bundesbank, term structure of interest rates on listed Federal securities, Svensson method (
BBSIS, seriesM.I.ZST.ZI.EUR.S1311.B.A604.R10XX.R.A.A._Z._Z.Aand…R005X…), from September 1972. - Licence: the ESCB statistics reuse policy: free, also commercial, quoting the source ("Source: Deutsche Bundesbank") and without modifying the data (checked on 22 October 2026 on bundesbank.de, "Terms of use regarding the reuse of ESCB statistics"). The gap between two terms is worked out here, and says so.
- Threshold: the inversion (below 0), as in Estrella and Mishkin (1996). Estrella, A. and Mishkin, F. S. (1997). "The predictive power of the term structure of interest rates in Europe and the United States: Implications for the European Central Bank". European Economic Review, 41(7), 1375–1401. Only partly verified (22 October 2026): the reference, on RePEc and on the NBER's page, which gives it as the published version of NBER Working Paper 5279 (1995), whose abstract says the spread has "significant predictive power for both real activity and inflation" in Europe and the US. Not verified: how it defines the German spread, and on which page: the NBER PDF is a scan with no readable text, and the published article is behind a paywall.
- Record: 4 of 6 recessions signalled, 3 false alarms, median lead of 20 months.
Economic sentiment
- Name on the page: "Firms and consumers see the economy worse than usual" (Economic Sentiment Indicator, European Commission).
- What it measures: monthly surveys of firms (industry, services, retail, construction) and consumers.
- Formula: the published value. The Commission weighs the balances of the answers and scales the result to a long-term mean of 100 and a standard deviation of 10. It signals below 100.
- Area and source: euro area (
EA21), European Commission (DG ECFIN), via Eurostat (ei_bssi_m_r2,BS-ESI-I, seasonally adjusted), from January 1980. - Licence: CC BY 4.0 (Eurostat's copyright notice and the Commission's reuse policy, Decision 2011/833/EU).
- Threshold: European Commission, DG ECFIN (2023). The Joint Harmonised EU Programme of Business and Consumer Surveys: User Guide (updated January 2023), p. 22 of the PDF: "Values greater than 100 indicate an above-average economic sentiment, whereas values below 100 indicate a below-average position". The source gives no recession threshold; below 100 is the only one it defines.
- Record: 5 of 5, 9 false alarms, median lead of 0 months.
OECD leading indicator
- Name on the page: "Indicators that move early fall below their trend" (OECD composite leading indicator).
- What it measures: the OECD's composite leading indicator (CLI): series that tend to turn before the economy, combined by the OECD.
- Formula: the published value, amplitude adjusted, with the long-term trend at 100. It signals below 100.
- Area and source: US, OECD (
DF_CLI,USA.M.LI...AA...H), from January 1955. There is no euro area version: the OECD no longer publishes a euro aggregate; the closest, "major four European countries" (G4E), includes the United Kingdom. - Licence: the OECD's terms for data, checked for this dataset (see "Data", below): free use, also commercial, citing. The CLI is an OECD index; its components are not redistributed.
- Threshold: OECD (2020). Interpreting OECD Composite Leading Indicators (CLIs), October 2020, p. 1 (verified on 22 October 2026): "A CLI reading above (below) 100 is always an indication that anticipates levels of GDP above (below) trend".
- Record: 10 of 10, 9 false alarms, median lead of 6 months.
Consumer confidence
- Name on the page: "Consumers are gloomier than usual" (consumer confidence, European Commission).
- What it measures: the balance of households' answers about their situation and the economy's, in the Commission's surveys.
- Formula: the published balance less its average since January 1985 (the first month with data), in points. It signals below 0: worse than its average.
- Area and source: euro area (
EA21), European Commission (DG ECFIN), via Eurostat (ei_bssi_m_r2,BS-CSMCI-BAL, seasonally adjusted), from January 1985. - Licence: CC BY 4.0, like economic sentiment.
- Threshold: none in the literature or the source: the Commission does not scale this balance to 100. The simplest reading is used, below its average, not tuned. The average moves a little with each year of data.
- Record: 3 of 4, 5 false alarms, median lead of 5 months.
Real M1
- Name on the page: "Less money at hand, after inflation" (real M1).
- What it measures: cash and current accounts (M1), after inflation.
- Formula: (1 + annual growth of M1) / (1 + annual inflation) − 1, in %, to two decimals. It signals below 0.
- Area and source: euro area. The ECB's M1 (
BSI.M.U2.Y.V.M10.X.I.U2.2300.Z01.A, annual growth, from 1981) and Eurostat's HICP inflation (prc_hicp_minr,EA21,TOTAL, from December 2000; the ECB's older series stopped in December 2025). From December 2000. - Licence: ESCB (ECB) and CC BY 4.0 (Eurostat); the real growth is worked out by Horalis, and says so.
- Threshold: Musso, A. (2019). "The predictive power of real M1 for real economic activity in the euro area". ECB, Economic Bulletin, 3/2019, box 4. Verified on the box's web page (22 October 2026; it has no pages): annual real M1 growth "went well into negative territory for prolonged periods just before (or in coincidence with) all historical euro area recessions, as dated by the CEPR". Below 0.
- Record: 2 of 3, 3 false alarms and 1 pending, median lead of 3.5 months.
Bank lending to firms
- Name on the page: "Banks lend less to firms" (bank loans to firms, ECB).
- What it measures: how much banks' loans to non-financial firms in the euro area grow over a year.
- Formula: the published annual growth of adjusted loans (
BSI.M.U2.Y.U.A20T.A.I.U2.2240.Z01.A), in %. It signals below 0. - Area and source: euro area, ECB, from January 2004.
- Licence: the ESCB reuse policy.
- Threshold: none in the literature or the source; below 0 (lending shrinks) is the simplest reading. Credit tends to react late: it confirms more than it anticipates.
- Record: 1 of 3, 1 false alarm, a lead of 24 months.
Industrial production
- Name on the page: "Factories produce less" (industrial production, Leamer's rule).
- What it measures: how much what factories, mines and power plants produce has fallen in 6 months.
- Formula: 100 times the natural log of the index over its value 6 months before, to two decimals (close to the change in %). It signals below −3.
- Area and source: US, Federal Reserve, G.17 (total index
B50001, seasonally adjusted,ip_sa.txt), from January 1919 (the signal from July 1919); to judge it, the NBER recessions before 1948 are added. Euro area, Eurostat (sts_inpr_m,EA21,B-D, seasonally and calendar adjusted, 2021 = 100), from January 1991. - Licence: US, public domain; Eurostat, CC BY 4.0.
- Threshold: Leamer, E. E. (2008). "What's a Recession, Anyway?". NBER Working Paper 14221, p. 14: "The industrial production threshold log(ip/ip(-6)) < -0.03 picks up the ten official recessions plus three more in the 1950s". Calibrated for the US; the euro area uses the same, untuned, and says so.
- Record: US, 17 of 18, 4 false alarms, median 3 months late. Euro area, 4 of 4, 3 false alarms and 1 pending, median 3 months late.
Building permits
- Name on the page: "Fewer homes are approved for building" (building permits).
- What it measures: how many homes get a building permit, against a year before.
- Formula: the change in % from the same month a year before. It signals below 0.
- Area and source: US, Census Bureau (Building Permits Survey, new private housing units authorized, total, seasonally adjusted annual rate,
permits_cust.xlsx), from 1960 (the signal from 1961). Euro area, Eurostat (sts_cobp_m,BPRM_DW, dwellings in residential buildings except residences for communities,EA21, seasonally adjusted), from 2005 (the signal from 2006). - Licence: US, public domain; Eurostat, CC BY 4.0.
- Threshold: none in the literature or the source. It is a component of The Conference Board's leading index for the US, which recognises it as a leading indicator without a threshold of its own. Below 0 (fewer than a year before) is the simplest reading.
- Record: US, 8 of 8, 25 false alarms and 6 pending, median lead of 18 months. Euro area, 3 of 3, 8 false alarms and 2 pending, 18 months.
Unemployment benefit claims
- Name on the page: "More people claim unemployment benefit" (initial jobless claims).
- What it measures: how many people claim the benefit for the first time, against a year before.
- Formula: the monthly sum of all states' weekly initial claims (not seasonally adjusted; the annual change removes the season), change in % from the same month a year before. Whole months only. It signals from 0.
- Area and source: US, Department of Labor (ETA 539,
ar539.csv), from June 1984 (the signal from 1985). - Licence: public domain.
- Threshold: none in the literature on an annual basis. The St. Louis Fed quotes business economists' rule of thumb (400,000 weekly claims), which does not hold with a growing population. More than a year before is the simplest reading. It is a component of The Conference Board's leading index.
- Record: 4 of 4, 56 false alarms and 5 pending, median lead of 22 months: it warns of everything, also of what does not come.
Pending: hours worked in manufacturing (US)
Weekly hours in manufacturing (BLS, CES3000000007, from 1939) are a component of The Conference Board's index. The script already asks for them, but on 22 October 2026 the BLS API had used up its daily keyless quota, and FRED does not answer from this network. They come in with the next download, with their catalog entry and words ("Adding a signal").
Combined signal
- What it measures: how much of the weight of the chosen signals is signalling at once.
- Formula: each chosen signal's weight is its record in that area before the cutoff (right warnings / warnings settled before 2000; 0.5, a neutral weight, if it has none settled before, like those that start later). Each month, the sum of the weights of the chosen signals that are on, divided by the sum of the weights of those that have data that month. It signals from half (0.5). So each signal counts from its first month and the combined signal keeps the long history: with the German curve, from 1972. With a single one, it is that signal.
- Change of 22 October 2026: before, only the months every chosen signal covered counted, and the euro area's combined signal started in 2001.
- Reference: Horalis's rule (21 October 2026, asked for by Marek; choice and coverage, 22 October 2026).
Choosing the signals
- Each area lists all its signals, each with a box. The page draws the chart, the record and the combined signal with the ticked ones only, at once, in the browser. The choice is neither saved nor sent.
- By default the 3 best of each area by their record before 2000 are ticked (
DEFAULT_COUNTandCUTOFFinsrc/catalog.ts). The score (scoreinsrc/signals.ts) is the harmonic mean of two parts: the recessions it warned of (signalled / recessions) and the warnings that were right (hits / settled warnings). A signal that warned of none before 2000, or has no data before it, is never ticked on its own; the person can tick it. - The explanation is one click away, under "Why these are ticked": each signal with its score before 2000, out of 100, from best to worst, and which are ticked.
- Warning: choosing signals, and weighing them, by their record fits them to that same history (selection bias). That is why the first choice sees nothing after 2000, and the page shows separately how it did after (see "Out of sample"). Signals the person ticks by looking at the whole record are still in sample.
Out of sample
- Cutoff: January 2000. The first choice, the score and the weights use only what was known then: each series is cut before 2000 before it is worked out (so consumer confidence, measured against its average, does not see the average of the years after), and only the warnings and recessions before count, with the "pending" rule as of December 1999.
- Beside the combined signal, the page gives two figures: before 2000 (in sample: the years the choice and weights come from) and from 2000 (out of sample: data the choice never saw). One line explains it: "The first choice and the weights use data before 2000 only. The record after it is the honest test". Each period judges its own warnings and its own recessions; a 1999 warning that hit the 2001 recession counts as pending in sample.
- If every chosen signal starts after 2000, there is only the figure after.
- There are few recessions out of sample (three in each area: 2008, 2011 and 2020 in the euro area; 2001, 2008 and 2020 in the US). The figure is honest, but moves a lot with one hit more or less.
Not available
Recognised signals whose data is not open. They appear in the catalog, with no box, with the reason: "paid data" or "its licence does not allow sharing". Where it says "not checked here", the reason is what the source says of itself, without its terms read line by line today.
| Area | Signal | Reason | Checked |
|---|---|---|---|
| Euro area | PMI (HCOB and S&P Global) | paid | not checked here: S&P Global sells them as a product |
| Euro area | ifo business climate (Germany) | paid | not checked here |
| Euro area | ZEW expectations (Germany) | paid | not checked here |
| Euro area and US | The Conference Board's Leading Economic Index | paid | not checked here: published for members and subscribers |
| Euro area and US | Credit spread (ICE BofA, Moody's) | proprietary licence | on FRED they carry their owners' copyright (checked in an earlier session, not today) |
| US | ISM Manufacturing PMI | paid | not checked here |
| US | The Conference Board's Consumer Confidence | paid | not checked here |
| US | University of Michigan consumer sentiment | licence | verified on 22 October 2026 in its "Agreement on Copyright and Limitations on Use": CC BY-NC-ND only for research or internal use, "without the ability to redistribute the data"; redistributing it on a website needs a licence |
| US | Chicago Fed National Activity Index (CFNAI-MA3; its own threshold, −0.70, is citable) | licence | verified on 22 October 2026: its legal notices ask for written permission for "republication or distribution" |
| US | S&P 500 | licence | S&P Dow Jones Indices licenses it |
Each signal's data
- The page does not carry the data inside, to stay under 50 KB compressed. When an area's choice changes, it downloads that area's data from Horalis (
data/ea.json,data/us.json), once, and redraws. Without JavaScript, the page shows the default choice. - The charts are drawn with fewer points (Ramer–Douglas–Peucker, a tolerance of one unit): they look the same and weigh half.
- In the CSV, the warning column says on the first month of each warning whether it was a hit, a false alarm or is pending.
- Each signal downloads as CSV from its sheet, in the page's language (
data/ea-bund.es.csv, for example). First, in lines starting with#: the signal (human and technical name), its rule, formula and threshold, the source and its licence, the recessions and their source, the download day, the link to its section of this sheet and its record. Then one row a month with headers in that language (in English,month,value,signalling,recession,warning). Numbers keep a decimal point and the columns a comma, so any program reads them; the sources' names and licences stay as their publishers write them.
Adding a signal
The catalog is in projects/recession-signals/src/catalog.ts. Adding a signal needs no change to the page, its script or the styles:
- Its series: in
scripts/signals.ts, the download from its original publisher and its source (name,url,licence) in its area. Run it again and it lands insrc/data/signals.json. - Its catalog entry:
id, the series it comes from, the transform if any (value: Sahm rule, 6-month change, annual change, distance from the average), the rule ({ below: n }or{ from: n }), where the threshold comes from (reference, ornullfor the simplest reading), the drawing behind its "?", its source and the anchor of its section here;approximation: trueif the data is another area's. - Its words in each language (
indicators: human name, technical name, rule, formula and what it means; and, for a new source,sourceNames; the TypeScript type asks for them) and its section in this sheet, with source, checked licence, cited threshold and record.
The record, the dated example, the score, the default choice, the chart, the combined signal and its CSV in five languages follow on their own. A test (test/panel.test.ts, "takes a new signal…") adds an example signal with only its series and its entry, and checks that the catalog, the panel and the ranking take it. A signal that cannot be shared goes in UNAVAILABLE, with its words in unavailable.
Data (all official and open)
| Area | Series | Source | Licence |
|---|---|---|---|
| Euro area | AAA curve at 10 years, 3 months and 2 years, daily, monthly average | ECB, ECB Data Portal, YC | ESCB reuse policy: free, unmodified, "Source: ECB statistics" |
| Euro area | Unemployment, seasonally adjusted, monthly, EA21 (from 2000) | Eurostat, une_rt_m | CC BY 4.0 |
| Euro area | German federal debt at 10 years and 6 months, monthly (from 1972) | Deutsche Bundesbank, BBSIS | ESCB, "Source: Deutsche Bundesbank" |
| Euro area | Economic sentiment and consumer confidence, EA21 (from 1980 and 1985) | European Commission via Eurostat, ei_bssi_m_r2 | CC BY 4.0 |
| Euro area | M1 and loans to firms, annual growth (from 1981 and 2004) | ECB, BSI | ESCB |
| Euro area | HICP inflation, EA21 (from 2000) | Eurostat, prc_hicp_minr | CC BY 4.0 |
| Euro area | Industrial production and building permits, EA21 (from 1991 and 2005) | Eurostat, sts_inpr_m, sts_cobp_m | CC BY 4.0 |
| Euro area | Recessions | CEPR-EABCN committee | citation |
| US | Treasury constant-maturity yields, daily, monthly average | Federal Reserve, H.15 | public domain |
| US | Unemployment, LNS14000000 | BLS | public domain |
| US | Composite leading indicator, monthly (from 1955) | OECD, DF_CLI | OECD terms: free, also commercial, citing |
| US | Industrial production, total index, monthly (from 1919) | Federal Reserve, G.17 | public domain |
| US | Initial claims, weekly (from 1984) | Department of Labor, ETA 539 | public domain |
| US | Building permits, monthly (from 1960) | Census Bureau | public domain |
| US | Recessions (from 1918) | NBER committee | citation |
The OECD's terms for this dataset (DF_CLI), checked on 22 October 2026: its page on the OECD Data Explorer shows no restrictions of its own and no third-party data; its "©" links to the OECD's general terms (oecd.org, "Terms & Conditions", section 3 "Data", "Permitted Use": "you can extract from, download, copy, adapt, print, distribute, share and embed Data for any purpose, even for commercial use", citing "OECD (year), (dataset name), (data source) DOI or URL (accessed on (date))"). It is not CC BY 4.0, but allows the same with that citation. The dataset's SDMX metadata carries no restrictions either. The terms are a web page, with no page numbers.
A recession runs from the month after the peak to the trough (in the euro area, from the quarter after the peak to the trough quarter, as months).
scripts/signals.ts downloads it once a year (the official-data workflow). FRED does not answer from every network, so each original publisher is read directly. The "Update from the ECB" button brings the euro area rates straight to the browser; nothing goes through Horalis. The CSV files are those of the last yearly download; they do not take in that update.
Also left out: Euribor (an EMMI licence for commercial use).
How each signal is judged
- Each run of consecutive signalling months is a warning.
- A warning is a hit if it starts during a recession or up to 24 months before one starts. If none has come and the warning is less than 24 months old at the data's last month, it is pending: neither hit nor false alarm. Once the 24 months have passed, it is a false alarm. Pending warnings are shown apart in the record ("pending: n") and in the CSV (
pending), and count neither in the score nor in the weights. - A recession counts only if the data covers its start. It is signalled if some warning hit it.
- Lead: months from the first warning to the recession's start; the median is given. Negative: the warning came late, already inside.
Code: projects/recession-signals/src/signals.ts, with tests.
Result with the data of 22 October 2026
By area, from best to worst score before 2000 (the one that chooses). Whole record, with pending warnings apart.
| Area | Signal (from) | Recessions signalled | False alarms | Pending | Median lead | Score before 2000 |
|---|---|---|---|---|---|---|
| Euro area | Industrial production (1991) | 4 of 4 | 3 | 1 | 3 months late | 100 |
| Euro area | German debt 10-year − 6-month, approximation (1972) | 4 of 6 | 3 | 0 | 20 months | 90 |
| Euro area | Economic sentiment (1980) | 5 of 5 | 9 | 0 | 0 months | 57 |
| Euro area | Consumer confidence (1985) | 3 of 4 | 5 | 0 | 5 months | 50 |
| Euro area | Sahm rule (2001) | 2 of 3 | 1 | 0 | 4 months late | — |
| Euro area | Real M1 (2000) | 2 of 3 | 3 | 1 | 3.5 months | — |
| Euro area | Bank lending to firms (2004) | 1 of 3 | 1 | 0 | 24 months | — |
| Euro area | Building permits (2006) | 3 of 3 | 8 | 2 | 18 months | — |
| Euro area | 10-year − 3-month (2004) | 0 of 3 | 1 | 0 | — | — |
| Euro area | 10-year − 2-year (2004) | 0 of 3 | 1 | 0 | — | — |
| US | 10-year − 3-month (1981) | 4 of 4 | 1 | 2 | 12 months | 100 |
| US | 10-year − 2-year (1976) | 5 of 6 | 2 | 0 | 17 months | 100 |
| US | Sahm rule (1949) | 11 of 11 | 2 | 1 | 2 months late | 100 |
| US | Industrial production (1919) | 17 of 18 | 4 | 0 | 3 months late | 94 |
| US | OECD leading indicator (1955) | 10 of 10 | 9 | 0 | 6 months | 74 |
| US | Building permits (1961) | 8 of 8 | 25 | 6 | 18 months | 65 |
| US | Benefit claims (1985) | 4 of 4 | 56 | 5 | 22 months | 34 |
"—": no data before 2000; it cannot be chosen on its own.
Default combined signal, in and out of sample:
| Area | Chosen (weights) | Before 2000 | From 2000, out of sample |
|---|---|---|---|
| Euro area | industrial production, German curve, sentiment (45 / 37 / 18) | 3 of 3, 2 false alarms, median lead of 23 months | 3 of 3, 1 false alarm, 1 pending, median 3 months late |
| US | 10-year − 3-month, 10-year − 2-year, Sahm rule (33 / 33 / 33) | 8 of 8, 0 false alarms, median 1.5 months late | 2 of 3, 1 false alarm, median lead of 13 months |
The weights are each signal's record before 2000 (right warnings / settled warnings), out of 100 and rounded. In the US, the figure in sample (8 of 8, no false alarms) is the one the choice was looking for; the one out of sample (2 of 3, one false alarm) is the one that matters. Before this change, on 22 October, the choice looked at the whole record and counted recent warnings as false alarms: euro area, industrial production, permits and German curve; US, industrial production, Sahm and 10 − 2 years.
Limits (and what the page always says)
- The figure before 2000 is in sample: the choice and the weights come from those years, which is why it looks better. The one after is the test, but with only three recessions per area. Each signal's record in the catalog covers the whole period.
- It is a historical signal, not a forecast or a recommendation.
- In the euro area the ECB curve only exists from 2004: three recessions, and it signalled none. The German curve covers all six, but it is another curve.
- The Sahm rule and industrial production tend to arrive once the recession has begun: they confirm, they do not anticipate.
- The signals with "the simplest reading" (consumer confidence, lending, permits, claims) give many false alarms: they have no threshold made for recessions.
- Few recessions: one hit more or less changes the record a lot. The score does not take into account how many recessions each signal covers: before 2000, the US 10-year − 3-month curve scores 100 with a single one.
How to cite
Horalis (2026). Horalis Recession Signals: method and limits. Horalis Research, version of 23 October 2026. https://horalis.eu/research/recession-signals/senales-recesion/
In Spanish: https://horalis.eu/es/research/recession-signals/senales-recesion/. The version is the date of the last change of method; the data is renewed once a year and the page says the day it was downloaded. For each signal, the link to its section of this document (for example #regla-de-sahm), and the original references and sources it gives. Whoever uses the CSV files also cites each series' source, as its licence asks (it is inside each file).