WhitmanTrading

Volatility Contraction Pattern (VCP): Shrinking Pullbacks Explained

A volatility contraction pattern (VCP) is a price base in which each pullback is smaller than the one before, so the range tightens until price is barely moving just under a high. The tight end gives a nearby buy level and a close invalidation level, which keeps the risk on the trade small.

Some bases look messy at the start and quiet at the end. The volatility contraction pattern is a name for exactly that sequence, and its practical value is less about prediction than about where the exit can go.

How it forms

A stock in an uptrend stops rising and starts building a base. The first pullback inside that base is usually the deepest. Buyers step in, price recovers most of the way, and then sellers push it down again, but not as far.

Each later pullback is shallower than the one before. A common textbook sequence is something like a 20% drop, then 10%, then 5%, with each rally falling a little short of the prior high. On a chart the swings narrow from left to right, and the daily ranges shrink with them.

Trading activity usually fades as the swings shrink. The reading is that the holders who wanted to sell have mostly done so. Fewer shares are on offer at each retest, so smaller dips are enough to bring buyers back.

The pattern ends in a tight area just under the base’s high. That high becomes the pivot, the price that, if cleared, signals demand has overwhelmed what is left of the supply. The low of the final, smallest contraction becomes the natural invalidation level.

Where the name comes from

The name is associated with Mark Minervini, a US stock trader and author who describes the pattern and the counting of its contractions in his book Trade Like a Stock Market Wizard. The idea of buying out of a tight base is older; William O’Neil’s cup and handle rests on similar logic about supply drying up.

A worked example

A hypothetical stock, to show the arithmetic of the contractions.

  1. First contraction: the stock peaks at $100.00 and falls to $80.00, a 20% pullback.
  2. Second: it rallies to $98.00, then drops 10% to $88.20 ($98.00 × 0.90).
  3. Third: it rallies to $97.00, then drops 5% to $92.15 ($97.00 × 0.95).

The pivot is $97.00 and the invalidation sits just under the last low, say $92.00. The risk on a buy at the pivot is $97.00 − $92.00 = $5.00 a share, about 5.2% of the price.

Waiting for the contraction versus buying early

Compare that with buying during the first swing. A buy near $100.00 with an exit under the $80.00 low risks $20.00 a share, four times as much, for the same idea. At a hypothetical $200 of risk, the tight version allows $200 ÷ $5.00 = 40 shares; the loose version allows 10.

That is the whole case for waiting for the contraction. The pattern does not make a rise more likely by itself. It makes the distance to being wrong small, so the same dollar risk buys a larger position, and a move of a few dollars in your favor is worth several R.

The original data

The site’s scanner does not label a pattern “VCP”, but its “coil” setup is the same idea in a simpler form. The scanner calls a stock a coil when it is holding above its 20-day average without making a new 20-day high, and it places the trigger at that 20-day high. It does not count successive contractions the way a VCP reading does, so a coil is a looser relative of the pattern, not a strict match.

Of the 16 picks the scanner issued in August 2026, 12 were coils. One was a pullback, one a breakout, and two issued on 31 Aug carry no setup label, although the written reason for one of them (OMC) describes an 11-session coil. The full list is in the scanner ledger download.

Horizontal bars for 12 coil setups: 4 stopped out, 1 reached 1R, 1 reached 2R, 3 still open and 3 never triggered.
What happened to each coil the scanner issued in August 2026, as last recorded. Source: the site's scanner ledger, 31 Aug 2026.

As last recorded (31 Aug 2026), the 12 coils had these outcomes. Three never traded through their trigger within the 5-day window, three were still open, and six had closed. Of the six, Canadian Pacific reached +1R, Merck reached +2R, and four (WSBC, PKG, EBC and PNC) hit their loss exit at −1R, a net of −1R across the closed coils. Six trades cannot say whether coils work; they can only show what the rules produced so far.

The tight-risk promise does show up in the levels. Measured from trigger to exit, the 12 coils risked a median of 3.4% of their trigger price, from 2.3% (PNC) to 6.5% (GM). Canadian Pacific’s written reason was the textbook description: four weeks of falling highs into rising lows, 2% under its all-time high. Its risk was 2.9%.

And a tight base did not sort winners from losers here. The two winners risked 2.9% and 4.1%; the four losers risked 2.3%, 2.8%, 2.9% and 6.1%. The tightest coil in the set was one of the losses.

Bars ranking 12 coil setups by risk as a percentage of the trigger price, from 2.3% for PNC to 6.5% for GM, each labeled with its outcome.
Distance from trigger to exit for each coil, as a share of the trigger price, with each outcome. Source: the site's scanner ledger, as last recorded 31 Aug 2026.

Interest in the pattern runs well ahead of the phrase. In the site’s 24,971-video finance search study, 2 titles use “VCP” or “volatility contraction”, while 12 titles from 8 channels name Mark Minervini, at a median of just over 27,000 views, with 3 of them past 100,000 views.

When it fails

It fails when the contractions are counted into existence. Almost any sideways stretch contains a big swing, then a medium one, then a small one if you choose the start and end points freely. A real sequence narrows on its own, visible without drawing.

It fails when the market underneath turns. A tight base in a falling market breaks down as easily as up. Four of the six closed coils above hit their exits within the same August stretch, and three of those four were banks.

It fails on the breakout itself. Price clears the pivot, trades a few cents above it, and falls back into the range. That false breakout is common enough that some traders wait for a close above the pivot rather than a touch, trading a worse price for fewer fake starts.

It fails when the final contraction is not tight. If the last pullback is still 8% or 10% deep, the risk advantage has not arrived, and buying early gives up the one thing the pattern offers.

And it fails as a forecast. The pattern describes shrinking volatility, not future direction. What it offers is a cheap place to be wrong, and a cheap loss is still a loss, repeated across many trades.

A breakout is the move a volatility contraction pattern is waiting for, and that page covers how often one follows through. The cup and handle is O’Neil’s base shape, with its own tight handle playing the role of the final contraction. The Bollinger squeeze measures the same narrowing of range with an indicator rather than by counting swings. And position sizing turns the small risk the pattern offers into a share count.

What I actually do

What I look for is the last contraction, not the first. The early pullbacks tell me sellers are drying up; the final tight stretch tells me where I would be wrong, and if that level is more than a few percent away, the pattern has not finished forming yet.

— Michael Whitman

This page is educational, not financial advice. Test every idea on your own charts before risking money.