Guides

Economic Surprise Index (ESI)

The ESI measures whether major-economy economic data releases are beating or missing consensus forecasts, aggregated over a 90-day rolling window. It uses a decay-weighted z-score methodology modeled on the Citigroup CESI and Bloomberg BEEI — the same approach used by institutional macro desks to gauge whether a currency's economic backdrop is improving or deteriorating relative to market expectations.

What Is the Economic Surprise Index

The Economic Surprise Index (ESI) answers a specific question: are economic data releases for a given currency consistently beating market forecasts, missing them, or landing in line? It does not measure whether the economy is strong or weak in absolute terms — it measures whether it is stronger or weaker than expected.

This distinction matters because FX markets price in expectations. A currency that trades at a given level already reflects the market's best estimate of future economic conditions. What moves it further is new information — data that surprises relative to those expectations. The ESI tracks whether those surprises have been running systematically positive (beats) or negative (misses) across all major-economy medium and high-impact releases.

Index value What it means Typical FX implication
Strong positive (above +40) Recent data has systematically beaten forecasts by a wide margin Supportive — macro backdrop stronger than priced; rate cut expectations may fade
Mildly positive (+10 to +40) More beats than misses, moderate magnitude Broadly supportive — modest upside pressure; reinforces existing trend
Neutral (-10 to +10) Beats and misses roughly balanced No signal — data not providing a directional impulse
Mildly negative (-40 to -10) More misses than beats, moderate magnitude Broadly negative — macro underperforming; adds pressure to existing weakness
Strong negative (below -40) Recent data has systematically missed forecasts by a wide margin Negative — deterioration vs expectations; increases probability of rate cuts

Why Surprises Drive FX Direction

Central bank rate decisions — the primary driver of medium-term FX direction — are made in response to incoming economic data. When data consistently beats expectations, it reduces the probability of rate cuts and increases the probability of rate hikes, both of which attract capital inflows and strengthen the currency. When data consistently misses, the opposite occurs.

The ESI captures this dynamic before it shows up in OIS pricing or CB meeting decisions, because the OIS market takes time to reprice and CB decisions are infrequent. A currency's ESI turning positive several weeks before the next meeting is an early signal that the next meeting's language may be less dovish than the market expects — or that a priced-in cut may be pushed back.

Note
The signal is the direction of change, not the absolute level. An ESI that has been strongly positive for 6 weeks and is now flattening or declining is a more bearish signal than a moderately negative ESI that has been stable. What matters is whether the flow of surprises is improving or deteriorating.

The ESI also reflects the relationship between market consensus and reality. As data consistently beats, analysts revise their forecasts upward — eventually the bar becomes harder to clear and the ESI naturally mean-reverts. This mean-reversion behavior (well-documented in the Citigroup CESI) makes the ESI a cyclical signal rather than a persistent one.

Methodology Overview

The terminal's ESI scoring methodology follows the Citigroup CESI and Bloomberg BEEI conventions as closely as the available data permits. The key steps:

  1. Event filter: Only major-economy medium and high-impact releases with both a consensus forecast and an actual result are scored. Low-impact events and data without a forecast baseline are excluded. Noise events (bond auctions, rig counts, inventory data — see the Excluded Events section) are filtered out regardless of their impact rating.
  2. Deduplication: A release is counted once when the calendar lists it more than once, whether with different consensus values or one day apart. Rows with the same canonical event name and the same actual value on the same or adjacent days are merged, and the row with the higher impact is kept. The same merge applies to the history used for the standard deviation.
  3. Beat/miss classification: For each event, actual is compared to consensus forecast. If actual > forecast, it is a beat. If actual < forecast, it is a miss. For inverse indicators (e.g. unemployment rate, jobless claims), the sign is flipped so that a lower actual than forecast correctly scores as a beat. The beat, miss and beat-rate figures count these outcomes; the index itself also weighs how large each surprise was.
  4. Decay weighting: Each event's contribution is multiplied by an exponential decay weight based on its age. Recent events carry more weight; older events fade. Half-life is 45 days — matching the Citi CESI convention.
  5. Z-score normalization: Every surprise is divided by the standard deviation of that release's own historical surprises (at least 5 observations; with fewer, the mean absolute surprise is used) and capped at ±2.5 standard deviations. This gives more weight to statistically significant surprises and less to routine noise.
  6. Index normalization: The decay- and impact-weighted average of the capped z-scores is scaled to the range [−100, +100], where ±100 means every contributing release surprised by 2.5 standard deviations or more in the same direction. The zero line is centered; green bars extend right for positive values, red bars extend left for negative values. The MT5 EA applies the identical method on a ±10 scale.
  7. Confidence weighting: The [-100, +100] index is then scaled by a confidence factor equal to the number of distinct releases contributing (for example CPI y/y and retail sales m/m count as two) divided by 6, capped at 1.0. A currency backed by fewer than 6 distinct releases therefore shows a proportionally muted index rather than the full-magnitude reading. Counting distinct releases rather than events means a series that prints several times in the window cannot inflate the factor on its own. Every currency follows the same rule; for most it is 1.0 in practice.
  8. Adaptive window for sparse currencies: The standard scoring window is 90 days for every G10 currency. If a currency ends that pass with zero scored events, the window widens to a 90–180 day band for that currency only, using the identical impact filter and decay function. Widening the window never lowers the bar: an event at 150 days old still carries only ~13% of its original weight under the 45-day half-life. NOK and SEK releases are mostly tagged low-impact upstream, so their key series (inflation, GDP, unemployment, retail sales, PPI, trade, current account, industrial and manufacturing production, confidence and, for SEK, PMI) are scored at medium weight; all other low-impact releases stay excluded.

Time Decay — Why Recent Data Matters More

Institutional CESI indices apply exponential time decay to prevent stale data from distorting the current picture. A CPI print from 85 days ago reflects conditions that are no longer relevant to current rate expectations — but without decay, it would weigh equally with last week's print.

The terminal uses a 45-day half-life, matching the Citigroup CESI convention:

Event age Decay weight Interpretation
0 days (today) 1.00 Full weight — most recent release
22 days 0.71 Approximately 3 weeks ago
45 days 0.50 Half-life — carries half the weight of a current event
67 days 0.36 Two months ago — diminishing influence
90 days 0.25 At the edge of the 90-day window — minimal weight

The N column in the panel still shows the raw event count (not decay-adjusted) for transparency — so you can see how many events contributed to the score, regardless of their age-weighted influence.

Z-Score Scoring — Magnitude, Not Just Direction

A simple beat/miss score treats a CPI print that beats by 0.1pp the same as one that beats by 0.5pp. Institutional indices correct for this by normalizing the surprise magnitude using the historical distribution of surprises for that specific release.

The z-score formula is:

z = clamp((actual − forecast) / historical_std, ±2.5) / 2.5

Where historical_std is the standard deviation of all surprises (actual − forecast) on file for the same release. A minimum of 5 observations is required to use the standard deviation; with fewer, the mean absolute surprise of that release is used as the scale. The surprise is not re-centered on its historical mean, following the Citi convention.

Note
Why this matters: A surprise of +0.2pp on US CPI is a very different signal depending on context. If the historical standard deviation of US CPI surprises is 0.05pp, a +0.2pp beat is a 4-sigma event — exceptionally rare and high-impact. If the standard deviation is 0.4pp, a +0.2pp beat is routine noise. The z-score captures this distinction; beat/miss alone does not.

Every release is scored this way, so there is no separate beat/miss blend. The index value displayed maps a +2.5-sigma surprise on every contributing release to +100 on the index scale.

Inverse Indicators

For most economic releases, a higher actual than forecast is a positive surprise — better-than-expected GDP growth, higher-than-expected PMI, stronger-than-expected employment. But some indicators are inverse: a lower actual is the positive economic signal.

The terminal applies the sign inversion to the following indicator categories:

Indicator type Beat condition Reasoning
Unemployment rate Actual < forecast Fewer unemployed than expected is a positive outcome
Jobless claims Actual < forecast Fewer new unemployment filings than forecast signals labour market strength
Budget deficit Actual < forecast (less negative) A smaller fiscal shortfall than expected reduces sovereign risk premium

This inversion ensures that a positive z-score always indicates a positive economic surprise regardless of which direction "positive" runs for a given indicator — matching the convention used by the Citi and Bloomberg indices.

Important
Trade balance is not inverted. Unlike the indicators above, Trade Balance is already a signed net level — a deficit prints negative, a surplus positive — the same convention as Current Account. A smaller-than-forecast deficit already means actual > forecast, which scores correctly as a beat with no sign flip required.

Excluded Events

Institutional ESI indices only score fundamental macro releases — the events that directly inform central bank rate decisions. The terminal filters out the following categories, which either lack a meaningful consensus forecast or are not relevant to the macro cycle:

  • Energy and commodity data: Baker Hughes rig count, API and EIA crude oil inventories, EIA natural gas storage, crude imports, distillate and gasoline data. These are supply-side logistics releases, not macro indicators.
  • Bond and bill auctions: US Treasury auctions (4-week, 13-week, 52-week bills, 10-year note, 30-year bond), gilt auctions (UK), JGB auctions (Japan), and equivalent. Auction bid-cover ratios are financial market events, not economic data releases.
  • Positioning and financial flow data: CFTC speculative net positions, TIC capital flow data (net long-term, total net), and foreign investment in Japan flows.
  • Money supply: M2, M3, and M4 money supply releases for all currencies. These are coincident or lagging indicators with weak forecast consensus.
  • Derived nowcasts: Atlanta Fed GDPNow, NY Fed Nowcast, Cleveland Fed CPI estimate. These are real-time model estimates, not official statistical releases.
  • SEP and forward guidance data: Fed dot plot interest rate projections and equivalent forward guidance publications.
  • Sentiment surveys without consensus: IBD/TIPP Economic Optimism and similar surveys that lack a reliable Bloomberg consensus baseline.
Note
The filter matches institutional practice. The Citigroup CESI, Deutsche Bank ESI, and Morgan Stanley Economic Surprise Index all apply equivalent noise filters. Including auction results or positioning data would dilute the signal with events that are not relevant to the rate-setting function of central banks.

Reading the ESI Panel

The Economic Surprises panel in the terminal displays one row per G10 currency. Each row contains:

Economic Surprise Index panel in the Global Investing FX terminal, ranking all 10 G10 currencies by their 90-day surprise index with beat/miss bar chart and event count N

The Economic Surprises panel. Each currency gets a centred bar (green = more beats than misses, red = more misses than beats) and an event count N for confidence, ranked strongest to weakest.

Column What it shows How to read it
Currency major currency code (USD, EUR, GBP, JPY, AUD, CAD, CHF, NZD, NOK, SEK) Click any row to open the detail modal with the full event breakdown for that currency
Bar chart Centred bar extending right (green, positive) or left (red, negative) The zero line is at centre. Bar width represents the index value (max ±100). Green = more beats than misses; red = more misses than beats
N Raw count of scored events with actuals in the scoring window (90 days, or 90–180 days if widened) Dimmed N indicates low confidence (below 15 events). Separately, the index/bar is scaled down proportionally by S/6 when fewer than six distinct releases (S) contributed, not just the text color. For NOK/SEK, the row tooltip flags when the window was widened to 180 days due to sparse 90-day coverage. Higher N = more statistically robust index

Hovering over any row shows the full tooltip: beats, misses, in-line count, beat rate percentage, raw index value, and decay method.

Clicking a row opens the detail modal with the individual event log — each release listed with its date, actual vs forecast, beat/miss result, and decay-adjusted weight. This is the full audit trail behind the aggregate index value.

Economic Surprise Index detail modal for USD, showing the 90-day rolling surprise chart, beats/misses/N summary, and the individual event log with actual vs forecast values

The USD detail modal. The rolling index chart sits above beats/misses/N summary tiles and the full event log, so every input behind the aggregate score can be checked against its actual vs forecast value.

Note
Source label: The panel subtitle states the rolling window only — e.g. Actual vs consensus · 90d rolling (widening to 90d/180d when coverage is sparse for a given release) — without naming the underlying calendar data provider, consistent with how the Economic Calendar panel labels itself. The underlying event data can be sourced from more than one calendar feed depending on availability; the scoring methodology is identical regardless of which feed is active for a given release.

ESI Divergence as an FX Signal

The most actionable use of the ESI is comparing two currencies simultaneously — specifically, looking for cases where one currency's index is rising while the other's is falling. This divergence is more reliably directional for FX than either index reading in isolation.

The reason: FX pairs are relative instruments. EUR/USD is not just about EUR fundamentals — it is the relative strength of EUR versus USD fundamentals. An ESI that shows both USD and EUR deteriorating tells you very little about EUR/USD direction. But an ESI where USD is rising and EUR is falling provides a clear relative signal.

Scenario Example FX implication
Currency A rising, Currency B falling USD ESI +35 and rising; EUR ESI -20 and falling Bearish EUR/USD — macro divergence widening in USD's favor
Currency A flat, Currency B strongly positive GBP ESI +5; AUD ESI +55 Bearish GBP/AUD — AUD macro outperforming
Both currencies recovering from negative USD ESI -30 → -10; EUR ESI -40 → -30 Unclear — USD recovering faster is mildly bullish USD/EUR, but both are still negative
Both currencies strongly positive CAD ESI +60; NZD ESI +55 Neutral — both overperforming; pair direction driven by other factors (COT, rate differential)
Good to know
Best practice: Use ESI divergence as a confirmation signal rather than a standalone entry trigger. A currency pair where ESI divergence aligns with COT positioning divergence and CB rate expectations divergence provides a three-factor confirmation that is significantly more reliable than any single signal.

Limitations and Context

The ESI is a useful component of a multi-factor analysis framework, but it has specific limitations that are important to understand:

  • It is a lagging indicator of sentiment, not a leading indicator of price. The ESI reflects what has happened in data releases over the past 90 days. It does not predict where data will go next. A high ESI can remain high for several more weeks before deteriorating, or it can reverse immediately — the index does not signal which.
  • Mean-reversion tendency. As documented in academic studies of the Citigroup CESI, economic surprise indices tend to mean-revert because analyst forecasts adjust to systematic beats or misses over time. An ESI that has been persistently positive for 10+ weeks is statistically more likely to weaken than to continue rising — not because the economy is deteriorating, but because forecasters have raised their expectations.
  • Consensus quality varies by currency. The Bloomberg consensus for USD economic releases is deep and liquid — dozens of contributing analysts producing well-calibrated forecasts. For some smaller G10 currencies (NZD, CHF, NOK, SEK), the consensus is thinner and individual outlier estimates can produce false beats or misses. A lower N value no longer just flags caution visually — it directly discounts the index magnitude (scaled by min(1, S/6), where S is the number of distinct releases), so a currency with a handful of releases can no longer display the same full-strength bar as one with dozens.
  • The ESI does not capture market impact directly. Not all beats or misses have equal FX impact. A surprise in a release the market currently considers a key policy variable (e.g. US CPI during an inflation-sensitive Fed cycle) has far greater FX impact than an equivalent surprise in a secondary release. The z-score methodology partially addresses this by weighting larger surprises more, but it does not specifically amplify releases that are contextually more important to the current rate-setting narrative.

For this reason, the ESI is most effective when read alongside the CB Rate Expectations panel (which shows what OIS markets are pricing for the next CB meeting), the COT Positioning panel (which shows institutional medium-term directional bias), and the Cross-Asset Risk regime (which determines whether carry trades are being rewarded or unwound).

Access

Current Economic Surprise Index for all G10 currencies — beat/miss breakdown, event detail modal, and comparison against COT positioning and rate expectations. Available on the web terminal and natively inside MetaTrader 5 through the companion Expert Advisor — both unlock under a single EA rental on MQL5 Market.

Open the terminal → View access →

Frequently Asked Questions

What is the Economic Surprise Index (ESI)?

The Economic Surprise Index (ESI) measures whether economic data releases are coming in above or below market consensus forecasts. A positive index value means recent data releases for that currency have beat expectations more than they have missed; a negative value means misses have outweighed beats. The FX Terminal ESI uses a decay-weighted z-score methodology modeled on the Citigroup CESI and Bloomberg BEEI — recent surprises carry more weight than older data, and the magnitude of the surprise (how far actual differed from forecast, normalized by historical variance) is incorporated when sufficient history is available.

How does the Economic Surprise Index affect currency direction?

A rising ESI for a currency signals that its economy is outperforming expectations, which tends to support the currency — either by delaying rate cuts or increasing the probability of rate hikes, both of which attract capital inflows. A falling ESI signals economic underperformance relative to expectations, which tends to weaken the currency. The key driver is not the absolute level of the data, but the direction and momentum of surprises relative to what the market already priced in. ESI divergence — where one currency's index is rising while a paired currency's is falling — is a more reliable FX signal than either ESI reading in isolation.

What is the difference between the ESI and standard economic data?

Standard economic data (e.g. 'US CPI was 3.2%') tells you the absolute level of an indicator. The ESI tells you whether that level was higher or lower than the market expected. A 3.2% CPI print is irrelevant without context: if the consensus forecast was 3.5%, the actual result is a downside surprise — which can weaken the currency even though CPI is still high. The ESI aggregates these relative surprises across all major-economy medium and high-impact releases over a 90-day rolling window, giving a comprehensive picture of whether a currency's macro backdrop is improving or deteriorating relative to expectations.

What is a decay-weighted z-score in the ESI?

The ESI uses three adjustments. First, exponential time-decay: each event's weight decreases as it ages, using a 45-day half-life (matching the Citigroup CESI convention). This means a surprise from 45 days ago carries half the weight of one from today. Second, z-score normalization: every surprise is divided by the standard deviation of that release's own historical surprises, capped at 2.5 standard deviations. A 0.2% CPI beat when the historical standard deviation is 0.1% scores twice as large as a 0.2% beat when the standard deviation is 0.4%. A release with fewer than 5 observations on file uses its mean absolute surprise as the scale instead. Third, confidence weighting: the resulting index is scaled by min(1, S/6), where S is the number of distinct releases contributing, so a currency backed by very few releases shows a proportionally muted reading rather than full magnitude. Confidence weighting is applied after the decay-weighted average.

What does the N column mean in the ESI panel?

The N column shows the raw count of medium and high-impact data releases with actuals in the 90-day scoring window for that currency. A higher N means more events contributed to the index, providing greater statistical confidence. The displayed index is also scaled by min(1, S/6), where S is the number of distinct releases (for example CPI y/y or retail sales m/m) that contributed, so a currency supported by fewer than six distinct releases shows a proportionally muted bar rather than the full-strength reading a single beat or miss would otherwise produce. A dimmer N text color flags a low sample size.

Which economic events are excluded from the ESI scoring?

The ESI only scores fundamental macro releases — the same events that institutional CESI indices (Citi, Deutsche Bank, Morgan Stanley) include. Excluded events include: CFTC positioning reports, Baker Hughes rig counts, bond and bill auctions, API crude oil inventories, EIA energy storage reports, milk price auctions, money supply data (M2/M3/M4), Fed balance sheet updates, Atlanta Fed GDPNow and NY Fed nowcasts (derived, not actual releases), TIC capital flow data, interest rate projection data from the SEP dot plot, and central bank committee vote counts. A release listed more than once is counted once.

What are inverse indicators in the ESI?

Inverse indicators are economic releases where a lower actual reading is a positive surprise for the economy. Examples include unemployment rate, jobless claims, and budget deficits. If the unemployment rate was forecast at 4.1% and the actual came in at 3.8%, that is a positive surprise (fewer unemployed than expected) — but the raw actual is lower than forecast. The ESI scoring inverts the sign for these indicators so that a positive economic surprise always results in a positive contribution to the index, regardless of whether the metric is 'higher = better' or 'lower = better'. Trade balance is not on this list: it is already a signed net level (deficit negative, surplus positive), so a smaller-than-forecast deficit already scores correctly as a beat with no inversion needed — the same convention already used for Current Account.