All datasets

OECD business-cycle signals (CLI turning points, trend gaps, expansion/contraction phases)

Signals derived from the OECD Composite Leading Indicator (amplitude adjusted, monthly): CLI distance from long-term trend (cli_gap vs 100), 3/6-month momentum, turning-point detection (peaks/troughs of the smoothed CLI), expansion/contraction phase flags, below-trend streaks, 30-month annualized volatility of CLI changes, 3-sigma anomaly flags, naive-drift 1-month forecasts and a per-month cross-country volatility rank. Covers 18 countries (AUS, BRA, CAN, CHN, DEU, ESP, FRA, GBR, IDN, IND, ITA, JPN, KOR, MEX, TUR, USA, ZAF plus aggregates G20, G7, NAFTA, A5M, G4E), monthly 1955 -> present. All rows carry canonical country_code so they join cleanly with country-keyed macro data. Raw series: OECD Data Explorer (Main Economic Indicators).

Source: OECD Business-Cycle Signals (derived)14,263 rowsUpdated: 9/22/2026
business-cycleleading-indicatorclioecdturning-pointsrecessionexpansionmomentumanomaly-detectionforecastingsignalsglobal

Quality

96.7

Attribution

OECD (derived signals by Frontier Data Hub)

Schema

ColumnTypeDescription
datestringObservation month (OECD MEI time period; YYYY-MM-DD, first of month).
countrystring
country_codestring
series_idstringOECD MEI series key, e.g. USA.CLI_AA: country/aggregate code + CLI_AA (Composite Leading Indicator, amplitude adjusted).
series_labelstringCountry or aggregate name as published by the OECD for the CLI series.
valuefloatComposite Leading Indicator, amplitude adjusted (OECD MEI). Index with long-term average = 100; values above 100 signal above-trend activity. See the OECD CLI methodology notes for component series and revisions.
cli_gapfloat
momentum_3mfloat
momentum_6mfloat
turning_pointstring
phasestring
below_trend_streakinteger
volatility_30dfloat
anomaly_flaginteger
forecast_1mfloat
rankinteger

Sample rows

datecountrycountry_codeseries_idseries_labelvaluecli_gapmomentum_3mmomentum_6mturning_pointphasebelow_trend_streakvolatility_30danomaly_flagforecast_1mrank
1955-01-01United StatesUSAUSA.CLI_AAUnited States101.46651.4664999999999964trough00
1955-02-01NAFTANAFTANAFTA.CLI_AANAFTA102.88392.883899999999997trough00
1955-02-01United StatesUSAUSA.CLI_AAUnited States101.81991.81990000000000400
1955-03-01NAFTANAFTANAFTA.CLI_AANAFTA103.17923.179199999999994500
1955-03-01United StatesUSAUSA.CLI_AAUnited States102.11222.112200000000001400

Download sample data

Download the full sample snapshot for this dataset (sample rows, not the complete dataset).

Use with an LLM

Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).

cURL

curl "https://datazimuts.com/v1/datasets/oecd_cycle_signals/oecd_business_cycle_signals" | jq '{title, rows, columns_count, license}'

Python

import requests

ds = requests.get("https://datazimuts.com/v1/datasets/oecd_cycle_signals/oecd_business_cycle_signals").json()
print(ds["title"], ds["rows"], "rows")

# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
    print(row)

API endpoint: https://datazimuts.com/v1/datasets/oecd_cycle_signals/oecd_business_cycle_signals

Tip: fetch /llms.txt for the full machine-readable catalog.