The “ii” Pattern

two inside bars in a row — a tighter coil, a more reliable break, the same-size move

An “ii” is two consecutive inside days: yesterday fit inside the day before, and today fit inside yesterday. Al Brooks calls this a breakout-mode setup — the market has compressed, then compressed again inside the compression, and the next session is the release. The single-inside-day study (H13) left this as an explicit open question: “a streak-length analysis is a natural extension.” This is that extension. The question is sharp: does a double coil break out more often than a single one, and does the tighter coil release a bigger move? Across 76 “ii” events on 15 liquid US names (Jan 2022 – May 2026), the answer is yes to the first and — surprisingly — no to the second.

“ii” breakout rate
85.5%
CI95 [77.6%, 93.4%]

The day after an “ii” expands beyond the coil in nearly 6 of 7 cases.

vs. single inside day
72.3%
CI95 [70.2%, 74.4%]

A lone inside bar breaks out less often — and the two CIs don’t overlap, so the double coil is reliably higher-conviction.

Breakout size (ATR)
0.91 ATR
vs 0.91 ATR after a single inside — identical

The tighter coil does NOT give a bigger move. Same size, off a tighter base.

Breakout (range-expansion) rate by coil depth

After "ii" (double inside)
85.5%
n=76 · CI95 [77.6%, 93.4%]
After single inside day
72.3%
n=1,686 · CI95 [70.2%, 74.4%]
Baseline (non-inside days)
46.3%
n=14,498 · CI95 [45.5%, 47.1%]

Each step deeper into compression lifts the breakout rate: 46.3% → 72.3% → 85.5%. The “ii” CI lower bound (77.6%) sits above the single-inside CI upper bound (74.4%) — a real separation, not noise. 15 tickers · 2022–2026 · n=5,000 bootstrap.

What IS better: conviction

A second inside bar lifts the breakout rate from 72.3% to 85.5%— a +13 pp jump, with non-overlapping CIs. Brooks’ framing holds: the longer the market refuses to leave a shrinking range, the more certain it is to leave it next. The coil itself is tighter too — the second inside bar averages 0.58 ATRvs the single inside day’s 0.67 ATR. So relative to its own base, the “ii” breakout expands 1.55× (vs 1.35× for a single inside). The spring is wound tighter, and it releases more reliably.

What is NOT better: size & direction

The tempting intuition — “tighter coil, bigger explosion” — is wrong in absolute terms. The breakout-day range averages 0.91 ATR, statistically identical to the 0.91 ATR after a single inside day (difference −0.01 ATR, CI95 [−0.09, +0.08] — straddles zero). The double coil buys you a more certain move, not a larger one. And direction stays a coin flip: carry rate 47.4% (CI95 [36.8%, 59.2%]), indistinguishable from 50% — the same null H13 found for single inside days.

Per-ticker detail

Sorted by “ii” count. Per-ticker samples are small (1–11 events) — read the aggregate, not any single row. Breakout-ATR vs single-ATR shows the same-size-move finding repeating name by name: the breakout column rarely beats the single-inside column.

TickerN iiBreakout %Brk ATRSingle ATRDir carry
AMD11100.0%0.910.9745.5%
AAPL9100.0%0.960.8155.6%
TSLA955.6%0.910.8944.4%
MSFT7100.0%0.860.8857.1%
SPY683.3%1.250.8950.0%
XLK6100.0%0.920.9450.0%
IWM560.0%0.760.9480.0%
NVDA580.0%0.940.8720.0%
JPM580.0%0.750.9740.0%
GOOG366.7%0.830.9333.3%
AVGO3100.0%0.620.93100.0%
QQQ2100.0%1.060.980.0%
XLF2100.0%0.800.920.0%
AMZN250.0%0.660.9150.0%
META1100.0%1.220.840.0%

What this means for trading

  1. An “ii” is a higher-conviction expansion flag than a single inside day. If you already treat inside days as “tomorrow will move” setups, a second inside bar sharpens that read from ~73% to ~86%. When you see two inside bars stacked, the odds the next session breaks the coil are about as high as this kind of structure gets.
  2. Do not size up expecting a bigger move.The breakout after an “ii” is the same absolute size (~0.91 ATR) as after a single inside day. The edge is in reliability, not magnitude. Expected-move and options-pricing math should use the same range estimate as for a single inside day — just with more confidence it shows up.
  3. Still wait for the break to pick a side.The 47.4% directional carry means the coil’s midpoint tells you nothing about which way it resolves. Trade the actual break of the second inside bar’s high or low — not a pre-positioned guess.
  4. Compression depth is a dial, not a switch.46.3% (any day) → 72.3% (one inside bar) → 85.5% (two). The breakout rate climbs monotonically with how long the market has refused to leave a shrinking range. The “iii” (three inside bars) is the next rung — too rare in this universe to measure cleanly, but the gradient points the way.

How this fits the other studies

  • Inside Day:This is the direct extension of H13. The single-inside study found magnitude predictable (72.9% expansion) and direction unpredictable (49.7% carry). The “ii” keeps both lessons and adds one: depth of compression scales the reliability of expansion, but not its size.
  • Outside Day: The mirror image. An outside day is a blown-out range that contractsnext session 74.3% of the time; an “ii” is a wound-up range that expands 85.5% of the time. Together they bracket the mean-reversion-of-volatility theme: extremes of range, in either direction, revert.
  • Day Types:A session breaking out of an “ii” is a strong trend-day or breakout-day candidate — the kind of clean directional session the Day Types classifier flags. Double compression on the prior days feeds expansion and directionality on the breakout day.

Pre-registered verdicts

H15(a) — “ii” breakout rate > 72%: PASSED. 85.5% (CI95 [77.6%, 93.4%]), and the CI sits entirely above the single-inside rate. Double compression breaks out at least as reliably as single — in fact, more so.
H15(b) — tighter coil releases a bigger move (ATR): FAILED. Breakout range 0.91 ATR vs 0.91 ATR after a single inside — difference −0.01 ATR, CI95 [−0.09, +0.08]. The “bigger coil → bigger explosion” intuition is false in absolute terms. The move is the same size; only the certainty (and the ratio-to-base, 1.55× vs 1.35×) goes up.
H15(c) — direction stays a coin flip: PASSED (null confirmed). 47.4% carry, CI95 [36.8%, 59.2%] straddles 50%. As with single inside days, structure flags the magnitude question and stays silent on direction.

The most useful result is the split between (a) and (b): deeper compression buys you a more reliable break, not a bigger one. Traders who size up on a tight “ii” expecting an outsized move are paying for conviction they already have and magnitude that isn’t there.

Honest caveats

  • Small sample.Only 76 “ii” events across 15 names in 4.4 years — double inside bars are rare. The aggregate CI is wide ([77.6%, 93.4%]), and per-ticker counts (1–11) are too thin to rank. The headline holds because the “ii” and single-inside CIs don’t overlap, but a longer history or wider universe would tighten it.
  • “Expansion” is binary.Defined as breakout range > coil range. The 1.55× mean ratio says expansions are meaningful, but some are marginal. A minimum-expansion filter would sharpen the signal at the cost of even fewer events.
  • Strict inside definition.Both bars must be fully contained (H ≤ prev.H AND L ≥ prev.L). Brooks also counts “ii”-like coils where a bar is inside on the body but ticks the prior high/low — a looser definition would yield more events and possibly a different rate.
  • Daily OHLC only. Whether the breakout is tradeable depends on intraday path — it might come in the first 30 minutes (tradeable) or only in the close (not). An intraday-path study would refine the finding.

Methodology

76 “ii” events, 1,686 single-inside events, and 14,498 baseline pairs on 15 names (2022-01-03 – 2026-05-30) via Massive/Polygon daily bars. “ii”: day N strictly inside day N−1 AND day N−1 strictly inside day N−2 (today is the second, tightest inside bar; tomorrow is the breakout). Single inside: day N inside N−1 but N−1 not inside N−2. Expansion: breakout-day range (H−L) > coil (day N) range. ATR normalization uses Wilder ATR(14) strictly pre-signal. Directional carry: next open vs the coil’s midpoint → predicts next close direction. Bootstrap CI (n=5,000, seed=17). Engine: scripts/ml/backtest_ii_pattern.py. Run 2026-06-23.

Related: Inside Day · Outside Day · Day Types