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).
Quality
Attribution
OECD (derived signals by Frontier Data Hub)
Schema
| Column | Type | Description |
|---|---|---|
| date | string | Observation month (OECD MEI time period; YYYY-MM-DD, first of month). |
| country | string | |
| country_code | string | |
| series_id | string | OECD MEI series key, e.g. USA.CLI_AA: country/aggregate code + CLI_AA (Composite Leading Indicator, amplitude adjusted). |
| series_label | string | Country or aggregate name as published by the OECD for the CLI series. |
| value | float | Composite 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_gap | float | |
| momentum_3m | float | |
| momentum_6m | float | |
| turning_point | string | |
| phase | string | |
| below_trend_streak | integer | |
| volatility_30d | float | |
| anomaly_flag | integer | |
| forecast_1m | float | |
| rank | integer |
Sample rows
| date | country | country_code | series_id | series_label | value | cli_gap | momentum_3m | momentum_6m | turning_point | phase | below_trend_streak | volatility_30d | anomaly_flag | forecast_1m | rank |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1955-01-01 | United States | USA | USA.CLI_AA | United States | 101.4665 | 1.4664999999999964 | — | — | trough | 0 | — | 0 | — | — | |
| 1955-02-01 | NAFTA | NAFTA | NAFTA.CLI_AA | NAFTA | 102.8839 | 2.883899999999997 | — | — | trough | 0 | — | 0 | — | — | |
| 1955-02-01 | United States | USA | USA.CLI_AA | United States | 101.8199 | 1.819900000000004 | — | — | 0 | — | 0 | — | — | ||
| 1955-03-01 | NAFTA | NAFTA | NAFTA.CLI_AA | NAFTA | 103.1792 | 3.1791999999999945 | — | — | 0 | — | 0 | — | — | ||
| 1955-03-01 | United States | USA | USA.CLI_AA | United States | 102.1122 | 2.1122000000000014 | — | — | 0 | — | 0 | — | — |
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.