Most range tools stop at drawing the box. Consolidation Ranges & Breakout Map — a free, open-source TradingView overlay by MQLSoftware — keeps going: it marks a tight consolidation as it forms on confirmed bars, then tracks what actually happens once price leaves it, and prints the running tally on the chart in front of you. On one S&P 500 hour chart, 57% of range breakouts were false — they broke out, then snapped back. On EURUSD over the same measurement, it was about 40%. Different market, different odds, both measured on their own history, not assumed from the other.

What has to line up before a box gets drawn
A box isn’t drawn just because price went quiet. Three separate reads feed one weighted Compression score (0–100): how inefficient recent price movement has been (an inverse efficiency-ratio read, 40% of the score), how much volatility has contracted relative to its own longer average (35%), and how tightly closes are containing themselves inside the candidate range (25%). A strong read on one component can offset a weaker read on another — it’s a blended score, not three separate pass/fail checks. The box locks in only once that combined score clears a threshold — Low, Normal or High sensitivity, your choice — and the candidate’s width stays inside a configurable ATR cap. Miss the combined threshold or the width cap and no box gets drawn; the market just keeps scrolling past, unlabeled, exactly as it should.
Confirmed-bar only, and invalidation is a feature
Every state change — box locked, breakout, false break, 1× projection hit — evaluates strictly on confirmed bars. A live box can still widen if a wick tests its edge within tolerance (that gets counted), but if it widens too many times or blows past its own width cap, the whole episode is invalidated and dropped from the base-rate count rather than force-fit into a stat it doesn’t belong in. That’s a discipline choice, not a bug: a range that never really held shouldn’t get to vote on how often ranges hold. For what “confirmed bar” and “no repaint” mean in practice — and why the phrase alone isn’t a complete claim — see what repainting actually is.
Three outcomes, tracked and labelled
Once a box is live, there are exactly three ways out. Price can break and follow through. Price can hit the 1× projection — the box’s own height, measured and mirrored above (or below) the break, never called a “target.” Or price can break, then fail and close back inside — a false break. Each is labelled the moment it confirms, and the base-rates panel keeps a running count of all three for the symbol and timeframe you’re actually looking at: Broke up, Reached 1×, False break, plus the median bars it took to reach 1× and the median range length. Below a minimum sample size the panel shows n<20 instead of a percentage — it would rather admit it doesn’t have enough data than hand you a number that isn’t load-bearing yet.
The numbers change by market, which is the point
On recorded charts: EURUSD 1h printed 48% / 44% / 40% (broke up / reached 1× / false break) across 135 tracked ranges; BTCUSD 1h ran 48% / 49% / 43% over 190; XAUUSD 4h landed at 49% / 44% / 42% over 170. SPX500USD 1h, on 81 ranges, was the outlier — 46% broke up, 33% reached 1×, and a 57% false-break rate, meaningfully higher than any of the FX or crypto charts under the identical rule. None of that is a forecast for what your chart will do next. It’s a description of what already happened on the history that chart has loaded, and the whole point of the panel is that another symbol, another timeframe, or the same symbol six months from now can — and likely will — print different numbers. Measure your own market instead of assuming it behaves like the last one. For the same “descriptive count, not a forecast” approach applied to a different structural event, see Session Liquidity Architecture‘s sweep base rates, and for what a failed break can mean structurally, see what happens after a liquidity sweep.
FAQ
Is it free?
Yes — free and open-source on TradingView. No invite, no paywall.
Does it give buy/sell signals?
No. Breakout, false-break and 1× projection labels describe what already happened to a confirmed range on the chart’s own history. The base-rates panel is a measurement tool, not a signal generator — there’s no entry, stop or take-profit plan attached to any label.
Does it repaint?
Box locking, breakout/false-break resolution and every statistic counter are evaluated strictly on confirmed bars. An invalidated box is dropped from the count rather than retroactively rewritten.
What markets and timeframes does it work on?
Any TradingView chart. Sensitivity (Low/Normal/High) and the width cap are adjustable, and because every base rate is measured live from that chart’s own loaded history, it doesn’t need per-market presets to stay honest — it just needs enough bars to clear n<20.
Where’s the full setup guide?
Preset choices, panel field definitions and alert setup are in the MQLSoftware account area, free with registration.