A fair value gap is a three-candle price imbalance. Candle one prints a high (or low). Candle three prints a low (or high) that doesn't overlap with it. That leaves an untouched range in between, one the middle candle alone was responsible for creating. That's fvg trading stripped of jargon: a gap left behind because price moved too fast in one direction for normal two-way trading to happen at those levels. FVGs are one of the core structural objects covered in the complete Smart Money Concepts guide, alongside order blocks and liquidity sweeps.
Here's the gap in the guides themselves. Every page that ranks for "fvg trading" defines the three-candle pattern correctly, and every one of them says gaps "tend to fill." Not one of them says how often, with what rule, over what window. We counted 500 of them across three markets to find out, and the answer is more interesting — and more useful — than a single blended percentage.
What Is an FVG in Trading? The Exact Rule
Here is the three-candle rule, stated precisely. On a bullish move, candle one's high sits below candle three's low. On a bearish move, candle one's low sits above candle three's high. Either way, it's wick to wick, with no overlap. The space between those two wicks is the gap. No fourth candle is required. No volume filter, no trend confirmation needed. It's a structural read of where price left a hole, not a prediction about what happens next.
Three things get mistaken for an FVG and shouldn't be counted as one. A single strong candle with normal overlap on the next bar isn't an FVG — the imbalance has to survive all three candles, not just look dramatic on one. An overnight session gap, like a Friday close to Monday open on an index, is a different animal. It's driven by news and positioning that built up while the market was shut, not by an intracandle three-candle structure, and it fills on a completely different timeline. A gap that gets fully traded through by the very next candle, before the three-candle structure even confirms, usually isn't marked at all by traders working a live chart. By the time you'd draw the box, it's already closed.
Bullish vs. Bearish FVGs, Same Chart
A bullish FVG forms on an up-move. It often behaves as support on a later pullback. A bearish FVG is the mirror image on a down-move. It often behaves as resistance on a bounce back into it. On a sharp two-sided session — common around a macro print on an index — you'll frequently see both within a few dozen candles of each other. A bearish gap gets carved out on the drop, then a bullish one gets carved out on the reclaim. Traders who only track one direction are working from half the chart, and that's a common gap in how fvg trading gets taught: most explainers show one direction and leave the reader to assume the other side behaves the same way.
How Often Fair Value Gaps Actually Fill: Our 500-Gap Count
We marked 500 fair value gaps across ES (S&P 500 e-mini futures), BTC/USDT, and EURUSD — roughly 167 per market. All of it ran on the 15-minute timeframe, using the strict three-candle rule above, wick to wick, with no minimum size filter at collection time. "Filled" meant price traded back into any part of the gap range, even a single tick. A separate "full fill" flag recorded when the entire range closed. Gaps were tracked for a maximum of 20 sessions after formation. Anything still open past that point got logged as unfilled, which understates the true eventual-fill rate slightly but keeps every comparison fair across the same fixed window.
Across all 500 gaps: 82.5% were touched at least once within 20 sessions, and 60% were fully closed. That blended number is the one most guides would stop at. It's also the least useful one in the dataset, because it hides three variables that each move the real answer by a wide margin: market, gap size, and when in the session the gap formed. We measured all three.
By market, the spread is wide enough that treating "fvg trading" as one global statistic is a mistake on its own:
| Market | Gaps counted | Any-touch fill rate | Full-fill rate | Median bars to first touch |
|---|---|---|---|---|
| EURUSD | 167 | 88% | 67% | 5 bars |
| ES (index futures) | 167 | 84% | 61% | 6 bars |
| BTC/USDT | 166 | 76% | 52% | 11 bars |
EURUSD's faster, more frequent fills line up with a market that mean-reverts more within a session. BTC's slower, less reliable fills line up with an asset that gaps hardest on liquidation cascades. A gap left behind by forced selling isn't really a "fair value" imbalance waiting to be revisited. It's a scar from an order book clearing event, and those get revisited less predictably.
Any fill-rate figure you see quoted without a stated method — fill rule, sample size, tracking window — isn't a number you can use. Switch "any touch" to "full close," or the window from 20 sessions to unlimited, and the headline shifts by double digits. We're naming our method here for exactly that reason. The 82.5% means something specific this way, instead of being another unsourced round number on a page that already has several of its own.
Gap Size Is the Single Most Actionable Cut in the Data
We measured each gap as a multiple of that instrument's average true range (ATR) on the same timeframe, then bucketed by size:
| Gap size (× ATR) | Gaps in bucket | Any-touch fill rate | Full-fill rate | Median bars to fill |
|---|---|---|---|---|
| Small (< 0.3×) | 178 | 91% | 79% | 4 bars |
| Medium (0.3×–0.7×) | 221 | 82% | 58% | 7 bars |
| Large (> 0.7×) | 101 | 68% | 39% | 14 bars |
Small gaps behave like noise the market tidies up within a handful of bars: 91% touched, 79% fully closed, median four bars. Large gaps are a different animal entirely. Under 70% even get touched inside 20 sessions. A full fill on the largest bucket is closer to a coin flip than a "gaps always fill" assumption would suggest. A large gap carved out by a genuine displacement move is telling you something structural changed in the order flow. Sizing a mean-reversion trade back into it the same way you'd size one into a small gap is a quick way to fade a move that has no intention of giving that space back.
Session Timing Changes the Same Gap's Odds
The same size, same market, same rule — formed at a different point in the session — behaves differently:
| Formation window | Any-touch fill rate | Median bars to fill |
|---|---|---|
| Session open (first 45 min) | 90% | 4 bars |
| Mid-session | 81% | 7 bars |
| Overnight / low-liquidity hours | 71% | 13 bars |
Gaps formed in the opening 45 minutes fill fastest and most often. That tracks with liquidity being thickest right at the open. Gaps left behind during thin overnight hours are the least reliable to lean on. A real portion of that "gap" is a liquidity artifact rather than a genuine resting-order imbalance, simply because fewer participants were active when it printed.
A Gap That Never Filled
Most FVG content only shows winning examples. A clean three-candle gap forms, price returns, the setup "works." We pulled one from the unfilled bucket of our own census instead: a large bearish gap on ES that formed during a fast intraday move and was still sitting open 20 sessions later. No annotation added after the fact, no hindsight edit. The gap is still exactly where it printed, well outside the price action that followed it. It's a plain illustration of the large-gap finding above. Over 0.7× ATR, nearly a third of the gaps in our sample never got touched at all inside the tracking window. If you're trading these mechanically, that's the bucket where "it'll probably fill" is the weakest assumption in the whole framework.
How Traders Use These Zones — and Where It Goes Wrong
Three practical mistakes fall directly out of the count, not out of general theory. First, treating every gap as equally tradeable. A small gap under 0.3× ATR is close to a high-probability mean-reversion read on this data. A large one over 0.7× ATR is close to a coin flip on full fill. Using the same target logic for both ignores the biggest single variable we measured. Second, ignoring higher-timeframe context. A smaller spot-check on 4-hour ES data (41 gaps, same marking rule) showed a 74% any-touch fill rate versus 84% on the 15-minute sample. Higher-timeframe gaps are, almost by definition, larger relative to their own timeframe's ATR, and large gaps fill less reliably. Third, sizing a position with no defined invalidation. A fill is not a reversal signal. It's just a statement that price traded back into a range. Full fills happened on 60% of gaps overall, and that's a number about revisitation, not about what price does next.
These four terms get used almost interchangeably across SMC/ICT material, and the mix-up is worth untangling in one place. An FVG is the specific three-candle structure described above. "Imbalance" is the broader umbrella term for any area where buy or sell pressure was clearly one-sided. An FVG is one measurable type of imbalance, not a synonym for the whole category. "Inefficiency" is ICT-community shorthand that, in most usage, is a direct synonym for FVG with no real distinction between them. A "liquidity void," by contrast, is defined by thin trading volume and participation rather than candle geometry. It can overlap with an FVG on the same chart, but it's a separate read. For the mirror-image case — what happens when price breaks clean through an unfilled gap instead of reversing into it — our inverse fair value gap (IFVG) guide covers the inversion rule and what it signals about trend continuation. And for the structure that governs how an order block interacts with a nearby FVG, our guide on order blocks without the guesswork walks through where the two concepts line up and where they don't.
Frequently Asked Questions
The fastest way to see where fvg trading actually leaves money on the table is to look at the full breakdown behind these numbers — every market, every size bucket, every formation window, plus the two marking errors that quietly inflate a trader's apparent hit rate. That's all published in our census, We Marked 500 Fair Value Gaps on ES, BTC and EURUSD, and it's the source for every figure on this page. For the structure that often sits next to an FVG on a real chart, see our breakdown of liquidity sweeps, and for how to size the move that created the gap in the first place, our guide on measuring displacement instead of eyeballing it.
None of the above is investment advice, and Quantzee does not provide advisory services of any kind. According to the CMT Association's body of knowledge on technical analysis, structural price patterns like this are meant to be one input combined with broader market context, not a standalone signal read in isolation. For a plain-language primer on how resting orders and market liquidity actually behave, the SEC's Investor.gov education site is a solid, neutral starting point. Paper trade any fair-value-gap-based process first, on chart replay or a demo account, across enough gaps that you can state your own fill rate by market and by size, before sizing a live position off it. Quantzee's SMC Toolkit Pro auto-marks fair value gaps as they form, tags them by relative size, and tracks fill status live, which is the part of this that doesn't scale by hand across a full watchlist.
