Global business & consumer confidence signals (sentiment momentum, pessimism streaks, business-consumer gap)
Monthly economic-sentiment signals derived from the OECD's standardised business and consumer confidence indicators (amplitude adjusted, long-term average = 100; 56 countries and aggregates): 30-month annualized change volatility, 3-month momentum, 3-sigma anomaly flags vs a trailing 12-month baseline, naive-drift 1-month forecasts, a per-month cross-series volatility rank, the business-minus-consumer confidence gap (the demand-mismatch gauge), consecutive-months-below-100 pessimism streaks and 24-month sentiment z-scores. All rows carry canonical country_code so they join cleanly with other macro datasets. Derived keyless from the local raw oecd_cli catalog snapshots; underlying data: OECD (commercial re-use requires prior permission).
Quality
Attribution
OECD (derived signals by Frontier Data Hub; commercial re-use of OECD data requires prior permission)
Schema
| Column | Type | Description |
|---|---|---|
| date | string | Observation month (OECD CLI TIME_PERIOD, YYYY-MM), stored as the first day of the month. |
| country | string | |
| country_code | string | |
| series_id | string | OECD series key <REF_AREA>.<measure>, e.g. USA.BCI (business confidence) or DEU.CCI (consumer confidence). |
| series_label | string | OECD area name plus the indicator type: standardised business or consumer confidence indicator (OECD CLI measures BCICP/CCICP), amplitude adjusted, long-term average = 100, seasonally adjusted. |
| value | float | Indicator value as published by the OECD: amplitude adjusted, long-term average = 100; values above 100 signal above-trend confidence, below 100 below-trend. |
| volatility_30d | float | |
| momentum_3m | float | |
| anomaly_flag | integer | |
| forecast_1m | float | |
| rank | integer | |
| conf_gap | float | |
| below_avg_streak | integer | |
| sentiment_z_24m | float |
Sample rows
| date | country | country_code | series_id | series_label | value | volatility_30d | momentum_3m | anomaly_flag | forecast_1m | rank | conf_gap | below_avg_streak | sentiment_z_24m |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1950-01-01 | United States | USA | USA.BCI | United States — business confidence | 101.1429 | — | — | 0 | — | — | — | 0 | — |
| 1950-02-01 | United States | USA | USA.BCI | United States — business confidence | 101.6886 | — | — | 0 | — | — | — | 0 | — |
| 1950-03-01 | United States | USA | USA.BCI | United States — business confidence | 102.4159 | — | — | 0 | — | — | — | 0 | — |
| 1950-04-01 | United States | USA | USA.BCI | United States — business confidence | 103.4524 | — | 2.3095 | 0 | — | — | — | 0 | — |
| 1950-05-01 | United States | USA | USA.BCI | United States — business confidence | 104.4971 | — | 2.8085000000000093 | 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/confidence_signals/global_confidence_signals" | jq '{title, rows, columns_count, license}'Python
import requests
ds = requests.get("https://datazimuts.com/v1/datasets/confidence_signals/global_confidence_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/confidence_signals/global_confidence_signals
Tip: fetch /llms.txt for the full machine-readable catalog.