How to read every page on this site, and the formulas and data sources behind them. Where a calculation is documented below, it was verified against the live feed rather than assumed.
Two independent sources feed this site, joined only at the page level:
Every payload carries an updated (and sometimes as_of or source_updated) timestamp; treat those as the authoritative freshness check rather than assuming the page is live.
The five “GLOBAL … AVG” tiles are a simple mean of each economy’s latest reading for that indicator across all eleven economies — not weighted by GDP, trade share, or anything else. They give a same-page sense of the group’s centre of gravity before you look at any single country.
Each economy gets a price score and a demand score, each a 0–100 percentile against that indicator’s own history — higher price means better-contained inflation, and higher demand means stronger growth. Both are compared against the group’s median (price_median, demand_median) to place the economy in a regime — Goldilocks (contained inflation, strong demand), Overheating (hot inflation, strong demand), Weak (contained inflation, soft demand), or Stagflation (hot inflation, soft demand). We haven’t been able to pin the exact threshold the backend uses for “above” vs “below” median with certainty — treat the quadrant label as directionally right, not a precise cut.
The composite score is not independently modelled — it is the sum of the four contrib_* fields:
composite = contrib_cpi + contrib_ppi + contrib_unemp + contrib_ret
We confirmed this by summing the four contributions for every economy with a non-null composite and matching the published total to within rounding. The Composite ranking chart’s stacked bars are literally this sum, segment by segment — the bar length is not decorative, it is the calculation.
The prose under “Where the cycle stands” and on each country’s own page is a generated narrative, not a fixed template — it names the largest driver by picking the contrib_* field furthest from zero, but the sentence structure and phrasing come from the same model each time.
“Cycle” (ring_phase) and the country page’s quadrant (quadrant on the economies endpoint) use a different vocabulary from the cross-section above — e.g. Overheat/Recession here vs Overheating/Weak there, and phases like Contraction/Slowdown/Recovery/Expansion that don’t appear in the cross-section at all. They are two separate classifications computed from the same underlying growth/inflation signal, not a relabeling of one another — don’t assume a country’s cross-section quadrant and its cycle phase always tell the same story.
“Latest readings” are the most recent raw print for each indicator. “Indicator history” plots the full available series per indicator — points land on irregular, roughly monthly dates (whenever that indicator was actually released), so the x-axis spacing is not uniform time.
The “Cross-section” paragraph on a country page comes from a country-scoped endpoint with its own narrative — it is written specifically about that one economy, not extracted from the group-wide summary shown on the main Cross-section page.
Positioning is read from the CFTC’s disaggregated futures report, split into three trader categories:
net_pct_oi ranks (0–100) against that category’s own history in this instrument.z, which means it is computed independently rather than derived from the percentile.net_pct_oi — how fast the category is adding or unwinding, independent of how extreme it already is.score is an exact, verified transform of the percentile.
score = round((percentile − 50) × 2)
So 0 is the historical median stance, +100 is the most net-long that category has ever been in this instrument, −100 the most net-short. label buckets that score by distance from the median — from the data, the boundaries sit close to 20 / 60 / 90: roughly balanced under 20, leaning 20–60, stretched 60–90, crowded above 90, signed long or short by the sign of the score.
The three leg cards at the top are the same score / label / z / net_pct_oi / mom_4w fields described above, for this one instrument.
“Positioning change over time” shows each category’s latest net position, plus its percent change over four look-back windows (1/3/6/12 months). A null for a window (usually 1-year) means there isn’t enough history yet to compute it, not that the change was zero.
The raw weekly data table shows the underlying CFTC net positions directly, most recent week first. Numbers are colored green when that column’s value rose from the prior week and red when it fell — the comparison is always against the immediately preceding week in the same column, independent of the other columns in that row.
null when that data point doesn’t exist for a given economy or period — treat missing as “unknown,” not zero.