CVMI: The Pressure Gauge
The Cumulative Volumetric Market Imbalance is a live gauge of unresolved market displacement. When it reaches an extreme, the market is dragging a heavy load of unfinished business, and mean reversion becomes measurably more probable.
What CVMI measures
Most oscillators measure how far or how fast price moved. CVMI measures something different: how much of the recent movement was never traded back through. Every open Fair Value Gap on the chart contributes to a running index; every fill or volumetric mitigation drains it. The result behaves like a pressure vessel: displacement pumps it up, rebalancing bleeds it off.
How pressure builds
When a new FVG prints, the engine does not treat it as a fixed +1. Each gap's contribution is scaled by the quality of the displacement that created it (see Core Concepts for the institutional-vs-retail spectrum):
- Institutional displacement, showing strong participation, clear absorption, and broad sponsorship, is structurally healthier, so it contributes minimally. Durable moves shouldn't scream “reversion.”
- Retail flow, marked by thin opposition, vacuum expansion, and one-sided chasing, is fragile, so it contributes aggressively. These are the gaps most likely to be rebalanced.
The grading is continuous, not binary: participation quality, expansion character, and the surrounding activity regime all scale the weight. With Use Percentages enabled (default), gap sizes are measured as a percentage of price rather than raw points, so a 100-point gap at $200 and one at $20,000 are weighted very differently. This is recommended for higher-timeframe analysis to avoid linear skew.
How pressure decays
This is CVMI's signature mechanic. As price revisits a gap zone, the index unwinds volumetrically: opposing-side bar volume traded inside the gap acts as a mitigation proxy. The engine doesn't wait for the gap to be fully closed on the chart: if enough opposing volume has transacted inside the zone, the orderbook imbalance is considered substantially negated and the index decays early.
Price frequently respects a gap after a partial fill and never completes the visual close. A purely spatial model stays “pressurized” forever in those cases; CVMI's volumetric unwind captures that the rebalancing already happened.
Engine modes
Three processing modes control how gaps are detected and weighted. Pick one in the 07 Volume settings group.
Spatio-Volumetric mode
Weights gaps by conviction and relative volume burst, using candle shape to approximate where liquidity transacted inside each bar. This is the recommended blend of accuracy and universality: it works on every plan and every symbol with volume data.
Footprint mode (Premium)
Overrides the volume model with TradingView's granular Footprint data to gauge true buy/sell activity within each candle, using the configurable Ticks Per Row resolution.
Due to current TradingView datastream limitations, Footprint data is delivered in a way that can revise after the fact. This mode is intended strictly for real-time analysis: it is not compatible with bar replay and is the single exception to IIF's repaint-proof design. It also requires a TradingView Premium/Ultimate plan.
Spatial mode
Removes the volumetric weighting layer entirely and tracks imbalance purely by price structure. On symbols without volume data (many forex feeds, some indices), the script automatically falls back to spatial behavior for gap processing, with no configuration needed.
Display formats
Whichever engine mode is active, the oscillator can be displayed two ways:
Period (EMA center + deviation envelope) and Sharpness (sigmoid steepness at the extremes).Reading CVMI in practice
- Extremes are context, not triggers.CVMI ≥ 80 or ≤ 20 says conditions are ripe for reversion; it does not say “enter now.” The framework's edge comes from pairing an extreme with location: price testing a SOMM OrderBlock or a Matrix rebalance level.
- Watch the exit, not just the entry. Many of the built-in signals (like Block Exhaustion's default trigger) fire when the oscillator exits the extreme, since pressure releasing is often more actionable than pressure peaking.
- Divergence between price and pressure is information. New price highs with a fading CVMI mean the advance is no longer leaving unresolved displacement; the move is being absorbed rather than chased.
- Midline behavior matters in trends. In sustained trends, CVMI oscillating on one side of 50 confirms one-sided flow; the Confluence Engine can filter alerts on exactly this.
Key settings
| Setting | Default | What it does |
|---|---|---|
| Use Percentages | On | Measures gap size as a percentage of price instead of absolute points. Keeps weighting consistent across price regimes; recommended for HTF analysis. |
| Normalize (ADN) | On | Anchors the oscillator to the 0-100 scale via the Adaptive Deviation Normalizer. Disable for the raw cumulative feed. |
| Period | 200 | EMA period for the ADN center and deviation envelope. Lower = more responsive, higher = smoother and more stable. |
| Sharpness | 1.5 | Sigmoid steepness of the 0-100 mapping. Higher values snap harder at the extremes; lower values grade more gradually. |
| Raw Lookback | 480 | Bar lookback used to scale the raw oscillator range when normalization is off. |
| Volume Mode | Spatial* | Chooses Spatial or Spatio-Volumetric gap processing. *Symbols without volume force Spatial automatically. |
| Footprint Override | Off | Replaces the volume model with true buy/sell footprint data. Premium plans only; repaints; real-time analysis only. |
| Ticks Per Row | 100 | Footprint row resolution in ticks. Too low floods the engine with data; too high loses resolution. |
The full input list, including every color and layout option, lives in the Settings Reference.