Methodology & glossary
What powers the intelligence tells the story; this page is the fine print. Every number on the scanner, the symbol dossiers, and the member briefs has an exact definition — the window it is measured over, the threshold that flags it, and the honest caveats. If a term in a brief or review is unclear, it is defined here.
Jump to: where the numbers come from · how to read any number · extremity · price context · retail SSI · futures COT · dealer gamma · vol & carry · correlations · predicted vol · episodes · analogues · regime banner · brief & review measures · thresholds · glossary
Where the numbers come from
Every reading on FX Engineer is a measurement against history — today's value compared to years of its own past. That only means something if the history is complete. This is the whole path, from the source feed to the number on your screen.
One record, not several
A percentile is only as honest as the series behind it. If the history has holes, or if two disagreeing sources get mixed into one average, the number still looks fine — it just isn't. So the daily record has two rules.
What each feed contributes
| Feed | What it measures | Cadence | History |
|---|---|---|---|
| Retail broker book | Retail positioning — how the crowd is placed | Every minute | 2014 |
| Institutional price feed | Prices, from which daily ranges and levels are built | Every minute | 2005 |
| CFTC | Futures commitments by trader category | Weekly, Friday | 2006 |
| Listed options data | Options positioning and dealer gamma | Every 15 min | 2026 |
| FRED | Rates and macro series behind carry | On release | 1973 |
How a reading becomes a percentile
Take retail positioning in a pair. The raw reading is a share — say 72% long. On its own that number is close to meaningless: some pairs sit above 70% long for months at a time, others almost never do.
What matters is where it sits for that pair. So the reading is ranked against its own history: 72% long might be the 96th percentile over the past year in one pair and the 54th in another. That ranking is the reading we publish. It is why the history has to be complete, and why we report the gaps.
What checks the checks
Four things run nightly against the base record — the daily prices and positioning everything else is computed from — because the failure that matters is the silent one: a number that stays plausible while going wrong.
| Check | What it would catch |
|---|---|
| Source comparison | Our stored positioning drifting from what the originating book actually publishes |
| Site vs. database | A page rendering something other than what the record says |
| Recompute from source | A stored statistic that no longer reproduces from its own inputs |
| Completeness | Holes appearing in a series that a percentile is computed over |
The layers built on top of that record — carry, correlations, volatility regime, gamma — are deterministic transforms of it: if the base record is right and the arithmetic reproduces, they follow. Of the 10 we publish, 2 additionally carry an independent outside cross-check. The rest do not yet, and where a reading has nothing independent behind it we track that and treat it with the caution it deserves, rather than presenting it with the same confidence as one that is verified.
Spans and completeness figures on this page are generated from the live database, not hand-entered — last measured 2026-08-20. Feeds are listed by what they contribute to published readings. The full internal provenance report, including what verifies each series, is regenerated on the same schedule. What powers the intelligence covers the six systems these feeds support.
How to read any number here
Extremity
Extremity counts how many of an instrument's context factors are at a statistical extreme right now. Six factors are eligible; each is a yes/no test:
| Factor | Counts as extreme when… |
|---|---|
| Price | its 1-year percentile is ≤ 10 or ≥ 90 |
| Retail crowd (SSI) | |z| ≥ 2 vs its trailing year |
| Futures (COT) | |z| ≥ 2 vs the trailing 52 weekly reports |
| Volatility | the vol regime is elevated/extreme, or 30-day realized vol is ≥ 85th percentile of its year |
| Dealer gamma (paused) | the live gamma regime is negative (amplifying). Stale or thin chains don't count. Currently withdrawn, so this factor is absent rather than unlit — it drops out of the denominator, and extremity is scored out of the factors that remain |
| Key level | spot is sitting on a 50-pip round level or a weekly/monthly fib (within the tolerance below) |
The score is shown out of the factors that have data for that instrument (an index without SSI is scored out of fewer factors, not penalized). Extremity is a count of stretched conditions — it says how unusual the situation is, never which way it resolves.
Price context
Retail sentiment (SSI)
The Speculative Sentiment Index measures how the retail FX crowd is positioned. We show the share of retail traders long, and a signed ratio of the two sides, scored against itself: the z-score and percentile are computed over the trailing year of daily readings (each daily reading is the mean of that day's hourly snapshots, from a single source — readings from different sources are never averaged together).
Two figures, two clocks. The headline reading on the scanner and on each symbol page is the last completed hour, stamped with its own time in UTC — that is the number to compare against a broker's live sentiment page. Beneath it we show the day's average, which is the figure every percentile and z-score on this site is computed from, because those statistics are built on a trailing year of daily readings. The two differ by a point or two on a normal day, and by more when the crowd moves during the session. The daily figure for a given day is finalised after that day closes, so the average shown is the most recent completed day.
The percentile and z-score are computed on the share long rather than on the ratio. That is deliberate: the share long runs smoothly from 0 to 100%, while the ratio jumps straight from +1 to −1 as the crowd crosses an even split. Averaging or measuring distances across that jump would produce readings the scale cannot represent, so every statistic is computed on the smooth version and the ratio is shown for reading.
An extreme SSI reading marks a stretched crowd — a condition under which volatility events cluster. Our published research is explicit that it is not a directional edge: fading the crowd is a coin flip out of sample. That is why SSI appears here as context, never as a signal.
The reading is a signed ratio, not a percentage balance: +2.0 means twice as many retail traders are long as short, −3.0 means three times as many are short as long. Because it is a ratio of the two sides, it has no values between −1 and +1 — an evenly split crowd reads as ±1, and the sign flips as the crowd crosses 50/50. Alongside it we show the plain share of traders long, which is the easier number to read.
Direct vs derived, and why some pairs show both. The headline reading is always the direct one — actual retail orders booked on that pair. Where a pair has no direct feed, we derive a synthetic reading from the positioning on its two USD legs and label it as such. We never average the two into one number.A handful of crosses have both, and on those symbol pages we show both, marked †. The gap between them is itself information: the direct reading is what retail actually did on the cross, while the derived reading is what their positioning on the underlying majors implies. When the two disagree, the crowd is treating the cross as its own trade rather than as the sum of its legs — worth knowing, and not visible anywhere else on the page.
Futures positioning (COT)
From the CFTC's weekly Commitments of Traders report (positions as of Tuesday, published Friday), with a percentile and z-score over the trailing 52 weekly reports.
Every currency futures contract is that currency against the US dollar, so there is no contract for a cross like EUR/CHF. We build one. Each leg is measured as its net position divided by that contract's open interest — a share rather than a raw count, because contract sizes differ between currencies and raw counts cannot be compared. A pair's reading is then the base currency's leg minus the quote currency's, counting the dollar as zero: EUR/CHF is EUR's positioning less CHF's, EUR/USD is simply EUR's, and USD/CHF is CHF's inverted — being long the franc is being short USD/CHF.
The percentile and z-score are then computed on that combined series, not by subtracting one leg's z-score from the other's. That distinction is not cosmetic: currency positioning moves together in risk-on and risk-off, and ignoring how the two legs co-move overstates how unusual a reading is — on EUR/CHF the difference has reached two full standard deviations.
Different surfaces deliberately read different trader groups, and each labels its own: the scanner shows the classic large-speculator (non-commercial) net; the COT brief and monthly review read the leveraged-funds leg of the Traders-in-Financial-Futures report (for commodities, the money-manager leg) — the fast money most associated with pressing trends. Both are 52-week normalized.
On a symbol page we go one level further and show who holds the position, because the same net means different things in different hands. The Traders-in-Financial-Futures report splits the market into leveraged funds (hedge funds and CTAs — fast, and quick to unwind), asset managers (pensions, insurers, funds — slow in and slow out), and dealers, who intermediate customer flow and therefore mostly mirror everyone else rather than express a view. A crowded leveraged-fund position is the fragile kind; a crowded asset-manager position is the structural kind. When the two lean opposite ways we say so, and we flag it rather than averaging it away.
One caution we state rather than hide: TFF is a separate classification from the legacy non-commercial net shown above it — not a breakdown of it. The two do not add up, and we never present them as though they do.
Alongside the raw contract count we show the net position as a share of open interest (net ÷ total open interest). Raw counts aren't comparable across decades — markets grow — so the share-of-OI reading is percentile-ranked over the full report history (3-year and all-time windows), not just 52 weeks. A high percentile means speculators are already heavily committed relative to the market's size: less dry powder left on that side.
Dealer gamma (GEX)
Dealer-gamma readings are currently paused. They are withdrawn from every surface while we complete a direct exchange derived-data license, so no gamma figure is being published anywhere on the platform right now. The method below stays published: it is how these readings are built, and it is what they will be built from when they return.
Volatility & carry
Correlations & drivers
Symbol-page correlations: Pearson correlation of daily log returns over a rolling 90-day window, against every other instrument in the universe (including the cross-asset set); we show the six strongest by absolute value, each with a percentile telling you whether that relationship is unusually tight or loose vs its own year.
The daily drivers read uses a shorter 20-trading-day window against five reference markets (S&P 500, DAX, gold, silver, oil); the “dominant driver” is simply the largest absolute correlation. Both are descriptive co-movement — never lead/lag, never causation, never a forecast.
Predicted volatility
The RV forecaster is the only predictive model on the surface, and it predicts size, never direction: the expected absolute move over the next 1, 2, 4, 8, 12, and 24 hours, in % and pips at current spot. “Move” here means close-to-close — where price ends up at the end of the horizon versus where it started, not the distance it travels along the way. A pair can range 40 pips and close 5 from where it began; this model forecasts the 5. That is why these numbers read smaller than an average daily range. Alongside the expected move we publish the wide-day figure (the 90th-percentile outcome — only one horizon in ten exceeded it historically) and the calibrated chance of clearing that horizon's elevated-move bar. Forecasts are FX-only and refresh hourly.
Because it is a prediction, it is the one number we grade continuously in public — see the live calibration on What powers the intelligence. Skill concentrates at short horizons and fades toward a day out; we publish the whole curve, not the flattering end.
Episodes — what the engine flags
An episode is a mechanically detected market event. Each type has a fixed trigger, fires point-in-time, and is then measured over a ten-trading-day window — an episode is resolved once that window has fully elapsed and its outcome is scored.
| Episode type | Fires when… | Severity = |
|---|---|---|
| Crowd extreme | retail SSI reaches |z| ≥ 2 vs its year, on a day the crowd was actually measured | |SSI z| (capped at 5) |
| Crowd-reading divergence | on a pair with two positioning readings, the gap between them reaches |z| ≥ 2 against that pair's own year of disagreement, on a day both readings are live | |gap z| (capped at 5) |
| Gamma extreme | total dealer gamma reaches |z| ≥ 2 vs its full history | |gamma z| |
| Macro surprise | a high-impact release lands |z| ≥ 1.5 from consensus, scored against that event's own release history (min. 20 priors) | |surprise z| (capped at 4) |
| 52-week extreme | a close beyond the trailing 252-day high or low | |252-day close z| |
| Month break | a close beyond the prior calendar month's high or low | |21-day close z| |
| Range expansion | the day's range reaches 2× the 20-day ATR | the ATR multiple itself |
Analogues & the typical path
The regime banner
Brief & review measures
One word, several thresholds
“Stretched” and “extreme” are operationalized differently by different surfaces, on purpose — a detector that opens a ten-day measurement window should demand more than a weekly digest that highlights a row. Rather than pretend there is one number, here they all are:
| Surface | Rule |
|---|---|
| Episode detectors | |z| ≥ 2 (SSI, gamma) · |z| ≥ 1.5 (macro surprise) |
| Scanner extremity | |z| ≥ 2 (SSI, COT) · price percentile ≤ 10 / ≥ 90 · RV ≥ 85th |
| Review tensions | |z| ≥ 1 or top/bottom decile, opposite sides |
| Weekly brief highlight | |z| > 1.5 |
| COT brief extreme | top/bottom decile or |z| ≥ 2 |
Other fine print worth knowing: the scanner's histogram marker and its headline percentile use slightly different bases (the headline is authoritative); the symbol page's window ladder runs 7d–5y and all-time; and the scanner's COT column reads the non-commercial leg while the briefs read leveraged funds — both are labeled where shown.
Glossary
Now read the numbers with the definitions in hand — or join for the full picture.