Smart Money Concepts

Fair Value Gap

A three-candle pattern where the middle candle moves so fast it leaves a price range untraded by the wicks either side — an imbalance price often revisits.

Also called: FVG · imbalance · inefficiency · liquidity void

What it means

Take three consecutive candles. If the low of the third is above the high of the first, the range between them was skipped: price moved through it without two-sided trade. That skipped band is a fair value gap. The premise is that one-sided movement leaves unfilled orders behind, and price tends to return to transact in the range it jumped.

FVGs have states, and the state is the whole point. An untouched gap is UNMITIGATED. Price trading partway in is a PARTIAL_FILL. Price closing through it is MITIGATED. And a gap that price closes beyond and then trades back inside becomes an INVERTED FVG, which flips from a zone expected to support price to one expected to reject it.

Stacked gaps in the same direction are stronger evidence than a single gap, because they describe sustained one-sided movement rather than one fast candle.

How OptionLab Pro’s engine uses it

In the live engine

Our FVG state machine is close-based, not wick-based: inversion requires fvg_low ≤ close ≤ fvg_high after the mitigating bar. PARTIAL_FILL gaps are excluded from both stack detection and Balanced Price Range detection — only UNMITIGATED gaps qualify — because a half-filled gap no longer describes an untraded range. An FVG Stack scores 3 in the SMC weight table, the same as an order block mitigation.

go/internal/engine/smc/detect.go (FVG state classification, stack + BPR gating)

The common mistake

Where traders get this wrong

Using wicks instead of closes to decide a gap has been filled. A wick through a gap on a single bar is not the same as price accepting that range, and a wick-based rule invalidates gaps that are still live. The other common error is counting partially-filled gaps inside a stack — the stack is supposed to measure untraded range, and a partial fill has already been traded.

Go deeper

There is a full lesson on this in the Academy, with an interactive widget and a Hindi translation.

Open the lessonBrowse the glossary

Related terms

Order BlockBalanced Price RangeLiquidity Sweep

Educational and analytical content only. OptionLab Pro is not a SEBI-registered investment adviser or research analyst and does not give buy or sell recommendations. Derivatives trading carries a high risk of loss.