Skip to content

FX BANK FORECAST · METHODOLOGY

How the Consensus Engine works

Effective 5 May 2026 — revised quarterly

1. Consensus pressure map

For each currency pair and forecast horizon (3M, 6M, 12M), we render a Gaussian kernel density estimate over the set of latest published firm targets. Bandwidth is selected via Silverman’s rule-of-thumb. The current spot is overlaid as a colored dot positioned at its percentile within the distribution. See it live at /research/pressure.

  • Stretched bull (red dot). Spot sits in the upper 15% of the forecast distribution — the tape has run further than the Street expected.
  • Stretched bear (green dot). Spot sits in the lower 15% — the tape has fallen further than expected.
  • In range. Spot is between the 15th and 85th percentile of forecasts. Most pairs sit here most of the time.
  • Insufficient coverage. Tiles render only when at least five firm forecasts are available.

2. Disagreement variance

Cell color in the Disagreement Map encodes the coefficient of variation across firm forecasts within each (pair, horizon) bucket:

CV = stdDev(firm_targets) / |mean(firm_targets)| × 100

Loud cells indicate high dispersion across the sell side — the buckets where alpha is most likely to live. Cells are normalized per-render across the actual data spread, so the color encoding remains visible regardless of whether variances cluster near 0.5% or 50%.

3. Forecaster accuracy

For each (firm, currency, horizon, lookback) tuple, we walk the firm’s published forecasts whose horizon date falls inside the window. The predicted value is the firm’s stated quarter target.

Realized value (v1 proxy). The full target metric is the spot price on the actual horizon date. While the forecast corpus is still young — many horizons remain open — v1 uses the latest observed spot for the currency as a proxy. This computes current divergence from target rather than realized accuracy at horizon. Forecasters whose targets currently sit close to spot rank high; those whose targets are far from spot rank low. As horizons close and the corpus grows, this proxy is replaced by an OANDA historical-spot lookup at the horizon date. The scorecard surface notes this period explicitly.

  • Median absolute error (primary metric). The median of |predicted − realized| / realized × 10000 expressed in basis points. Robust to outliers and meaningful at every sample size.
  • Directional hit rate (secondary). Fraction of forecasts whose predicted direction (vs spot at the time of forecast) matches the realized direction. Sign-only. Degenerate at sample size 1, so used only as a tooltip field while the corpus is sparse.
  • Sample-size floor. The published target is ten samples per (firm, currency, horizon, window) bucket. While the corpus is young, the floor is one — every available data point is shown.

4. Refresh cadence

5. Sources

Inputs come from publicly available sell-side bank research published by the firms themselves. Bank commentary is aggregated from the same firms’ RSS feeds. News articles are sourced from Financial Modeling Prep. Live spot rates come from OANDA.

We are not affiliated with any of the firms whose research we aggregate. Firm logos are used under nominative fair use to identify their published views.

FX BANK FORECAST · COVERAGE

Institutional FX coverage in your inbox

Aggregated year-end forecasts, scenario shifts, and curated analyst notes from eight institutional desks. No promotion.