CbRates Dashboard

Methodology

How CbRates sources rate data, computes real rates and bilateral differentials, classifies cycle direction, and screens carry opportunities. This page documents every calculation exposed on the dashboard.

Data Sources

CbRates uses two complementary data sources:

FRED API (Live)

For banks where a reliable FRED series exists, the API fetches the latest observation at runtime. Results are cached for 60 minutes. The most recent non-missing value is used. Rate source is labeled fred_live in the API response.

BankFRED SeriesDescription
Federal ReserveDFFEffective Federal Funds Rate (daily)
European Central BankECBDFRECB Deposit Facility Rate

Data Manifest (Operator-Maintained)

For banks not covered by FRED, rates are stored in data/cbrates.json and updated manually by the operator following each central bank decision. Rate source is labeled manifest. Fields marked "verified": false are approximate and should be independently confirmed before use.

Real Rate Computation

The real rate approximates the inflation-adjusted return on holding cash in that currency:

Real Rate = Nominal Policy Rate − Latest CPI (YoY %)
  • A positive real rate means the policy rate exceeds current inflation — generally a restrictive stance. The currency tends to attract carry flows when real rates are positive and the vol regime is supportive.
  • A negative real rate means inflation is running ahead of policy — an accommodative or behind-the-curve stance. Currencies with deeply negative real rates (e.g. JPY through most of 2022–2024) become natural carry funding vehicles.
  • CPI data lags by 30–60 days in most jurisdictions. The real rate is a snapshot, not a forward-looking estimate.

Bilateral Rate Differentials

All differentials are computed relative to the US Federal Funds Rate as the base:

Differential = Foreign Nominal Rate − US Rate
  • Positive differential: the foreign central bank's rate exceeds the US rate. This creates a carry incentive from USD into the foreign currency — borrowing USD cheaply to invest in the higher-yielding currency. Displayed in green.
  • Negative differential: the US rate exceeds the foreign rate. This is USD-supportive for that pair — the rate channel favors holding USD over the foreign currency. Displayed in red.
  • The magnitude of the differential matters as much as the sign. A −5% differential (e.g. USD vs JPY historically) is a much stronger carry signal than a −0.5% differential.

Rate differentials are one input into the 4xForecaster FX directional framework. They inform the RATES and CARRY driver labels on the FX dashboard. A wide, stable differential with a favorable volatility regime is the textbook carry setup.

Cycle Classification

Each bank is classified into one of three cycle states based on the direction of recent decisions:

  • Hiking — the bank has raised rates at one or more recent meetings and there is no clear reversal signal. Shown in green.
  • Cutting — the bank has cut rates at one or more recent meetings. Shown in red.
  • Hold — the bank has made no change at recent meetings, or is in a wait-and-see posture after completing a hike or cut cycle. Shown in gray.

Cycle classification is set in the data manifest by the operator following each decision. It reflects the direction of the most recent change, not a forecast of future moves.

Meeting Calendar

Next meeting dates are stored in the data manifest and updated by the operator after each decision cycle. They represent the scheduled monetary policy announcement date for each bank. The countdown (in days) is computed at API response time:

Days to Meeting = next_meeting_date − today (UTC date)
  • Meetings shown in red are today.
  • Meetings within 7 days are shown in amber.
  • Past meetings show as "Past" — the operator should update the manifest after each decision.
  • The People's Bank of China does not follow a fixed meeting schedule; its next_meeting is null.

Carry Screener

The carry screener combines two signals: the rate differential and the current volatility regime from the FX dashboard.

Step 1 — Rate Signal

Currencies with a positive differential vs USD (foreign rate > US rate) are carry candidates. They are ranked by differential magnitude — the wider the spread, the stronger the pure rate signal.

Step 2 — Regime Overlay

The FX dashboard's /api/score endpoint exposes a synthesized carry regime:

  • Favorable — equity and bond volatility are contained; carry trades have a history of performing well in this environment.
  • Caution — one or more volatility signals are elevated; carry is selective.
  • Hostile — high volatility regime; carry unwind risk is elevated regardless of the differential.

The screener does not make trade recommendations. It surfaces which pairs have the widest positive differential and indicates whether the macro environment is broadly supportive of carry strategies.