COTVault Premium — COT Classic

Positioning tells you what regime you are in. Your own system tells you when to trade. This indicator's job is to mark where those two things line up — and to publish the hit rate for every claim it makes, next to the rate you would have got for free.

1 · Quick start

Data is the weekly CFTC Commitments of Traders report, released Friday afternoon covering the prior Tuesday. That lag is inherent to the data and cannot be removed by any tool.

2 · The claim this tool refuses to make

"Crowded means reversal risk" does not survive testing

Almost every COT indicator on the market tells you a crowded reading means reversal risk. We tested it across 12 markets and 26 years: price made a 4-week low within 2 reports 46.7% of the time, against a 45.2% rate it would have managed anyway. A +1.5 point edge on 8 of 12 markets — indistinguishable from nothing.

It is worse than merely useless. Bucketing forward returns by index level, the 80–90 bucket is mildly positive (+0.84% excess at 13 weeks, the best of the ten). There is no sign flip at 80. Shading that zone red points you the wrong way, so this indicator does not do it.

This matters beyond one indicator. "Fade the crowd" is the single most repeated idea in COT education, and on this data it does not survive contact with a base rate. Everything in the rest of this guide is what was left after the same testing was applied to every other claim.

3 · Claim one — crowding persists

Once positioning crosses into the extreme, it stays there far longer than most traders expect.

Still crowded (≥80) afterAccuracyFree rateLiftMarkets
2 reports65.7%37.2%+28.512/12
4 reports55.8%34.9%+20.812/12
8 reports42.0%32.4%+9.59/12

Softer reading — still elevated (≥70): 85.3% / 71.8% / 57.3% at 2/4/8 reports against free rates of 72.7 / 57.9 / 48.1 (n=443 trigger events). Median episode 7 reports; 47% run 8 or longer — measured over 320 crowded-long episodes, entry at 80 and exit below 70.

The free rate here is drawn from the adjacent 76–80 band — four points below the trigger. That matters: a wider 65–80 control would have shown a +31.1 lift, but part of that gap is simply "starts higher, stays higher." Against the adjacent band the extreme itself is still worth +20.8, and all twelve markets agree.

What it means for you

Do not fade a fresh extreme. Excess return from fading is negative in 16 of the 18 sub-8 age/horizon cells measured, both directions — the two exceptions are +0.01% and +0.06%, indistinguishable from zero with bootstrap CIs straddling it. A crowded reading is a mature trend that is still running, not a trend about to end. Positioning unwinds after price turns, not before.

4 · Claim two — the watch zone

This is the part that puts an edge on the chart. Teal shading marks where two independent things agree:

The measurement is a barrier race, not an event count: from the zone bar, does price reach +1 ATR before −1 ATR within 13 reports? That is a payoff question. "Makes a 4-week high" is not — a 4-week high can be +0.05% and can arrive after a brutal drawdown. A barrier race cannot hide that.

AccuracyFree rateLiftMarketsn
Watch zone, ±1 ATR60.2%52.8%+7.48/12362
Same zone, ±1.5 ATR+9.8
Same zone, ±2 ATR+12.8

The edge grows as the barrier widens. That is what a real effect does — a curve-fit artefact degrades when you change the measurement. Walk-forward: +14.0 fitted before 2010, +4.6 out-of-sample 2010–2026. The out-of-sample number is a third of the in-sample one, which is honest decay, not a failure — it stays positive and the bootstrap CI over markets excludes zero at [+2.4, +13.8].

The zone appears roughly 0.5 times per market per year — 162 distinct openings across 313 market-years, 2.3% of all weeks. It is rare on purpose. A zone that paints half the time is not a location, it is wallpaper.

5 · The short side — and why it needs a quarter

Crowding does exhaust. Once the marginal buyer is gone the position has to come off eventually. The question is only how long "eventually" takes — and the answer is far longer than instinct suggests.

The fast short fails

Crowded long at resistance, asking whether price falls 1 ATR before it rises 1 ATR: 42.7% against a 47.1% base rate. A lift of −4.4 on 4 of 11 markets. That is the mirror toggle, off by default — a crowded long typically squeezes up before it breaks, so a symmetric barrier test cannot see the effect and an 8-week horizon fails too.

The slow short works — the mature-unwind zone

Red shading marks specs crowded long for 16 or more reports. Shorting that state:

HorizonExcessHitMarketsIn → out of sample
13 weeks+2.35%61.6%10/106.91 → 1.10
26 weeks+5.22%69.7%8/108.80 → 4.48
13 wks + stoch overbought+3.23%69.7%7/77.76 → 1.13

Excess return rises monotonically with episode age — wk0 −0.48%, wk4 −0.14%, wk8 +0.75%, wk12 +1.64%, wk16 +2.35%. A smooth ramp like that is the signature of a real effect; a fitted one spikes at one setting and collapses either side of it.

Treat these as two different trades. The teal watch zone is a swing location. The red mature zone is a quarterly position read — at 8 weeks it fails outright, and you should expect an adverse excursion before it resolves. Size for that, or don't take it.

The asymmetry in speed has a mechanism. A crowded short is forced — margin and unlimited loss compel covering, so it resolves quickly. A crowded long can sit indefinitely; nothing makes those holders act until the trend itself rolls. Same exhaustion, very different clock.

6 · Reading the chart

Price chart

Indicator pane

6b · Alerts

AlertFires when
WATCH ZONE opens (longs)Specs crowded short past the configured minimum (8 reports by default) and price reaches support. The message carries the measured 60.2% / 52.8% figures.
Specs entered CROWDED LONGThe positioning index crosses up through 80.
Specs entered CROWDED SHORTThe positioning index crosses down through 20.
MATURE UNWIND zone opensSpecs crowded long past the maturity threshold (16 reports by default). Silent if the mature-unwind zone is switched off in Settings.
New COT report ingestedA fresh weekly CFTC report lands on the chart.

All five mark a state or a location. None is an entry. Set them to Once Per Bar Close on a weekly chart — the data only changes once a week, on Friday.

7 · The panel, row by row

RowWhat it tells you
Large specsIndex 0–100, meter, and state chip.
CommercialsThe hedgers' index. They accumulate against trends.
Episode ageReports spent in the current extreme, and whether you are past the median 7. Below 8 it says too early to fade.
Persistence claimThe pooled figure: 55.8% vs 34.9%, +20.8, 12/12.
… on this chartThe same claim recomputed on your symbol only. It will differ — a single market is a small, noisy sample, and seeing that is the point.
Watch zonePooled: 60.2% vs 52.8%, +7.4, 8/12.
… on this chartLive barrier race on your symbol — the watch zone only. Reads "—" until a zone has opened and resolved at least once here. Armed off the weekly close and resolved against the weekly high and low, so it uses the same convention as the pooled 60.2% on any chart period.
Mature unwindPooled: +2.35% excess over 13 weeks, 61.6% hit, 10/10 markets. The slow short — see §5. No live row: a 13-week excess-return study cannot be recomputed honestly on a single chart.
Verdict barPlain-language state: zone open, crowded and waiting, or neutral.

All nine rows show at Small, Normal and Large. Compact keeps only Large specs and the verdict bar.

When the panel refuses to read the symbol

There are three states where the indicator will not show you numbers. It says which one you are in rather than printing a confident-looking "neutral" over data it does not have:

MessageWhat it means
No COT market mapped for this symbolThe symbol has no CFTC contract behind it — a stock, an index, crypto, or a currency with no futures market. Nothing is plotted.
Not enough report history on this chart yetThe COT index needs 20 weekly reports before it will emit a value; with fewer, a min–max ranking pins everything to 0 or 100 and paints false extremes. Use a Daily or Weekly chart with more history.
Chart period is above 1WOn a monthly chart only one report reaches the script per bar, so episode age, the 156-report window and the 13-report horizon would all silently become months. The indicator disables itself rather than mislead you.

8 · Settings that matter

SettingDefaultNote
Minimum reports crowded8The threshold where fading stops losing. Lowering it widens the zone and dilutes it.
Support: P3A lower bandonCOTVault internal — the P3A pivot envelope — three-period averages of the pivot.
Support: monthly S1onCOTVault internal — monthly floor pivot, non-repainting.
Show the mirroroffMeasured at −4.4 lift. On is the untested configuration. Shades slate, not red.
Watch zone on the price chartonTurns off the price-chart shading and triangle (both the teal zone and the mirror). The pane shading is unaffected.
Mature-unwind zone (the slow short)onThe red price-chart shading and its alert. See §5.
Reports crowded before mature16Where all ten markets with a 16+ report sample agree. Excess return rises monotonically with age, so lowering it weakens the read.
Require stochastic overbought for mature zoneoffSharpens it — 13w goes +2.35% → +3.23%, hit rate 61.6% → 69.7%, on 7 of 7 markets — at the cost of roughly three quarters of the occurrences.
COT Index lookback156Three years, the classic setting. Counted in reports, not bars.
Include options dataoffLeave it off. Every figure in this guide was measured on CFTC Legacy futures-only data. Switching it on swaps the dataset out from under every published number.
Small traders lineoffThe non-reportable cohort. Off by default — it adds noise more often than information.
Audit tape (weekly charts)onThe dots along the bottom. Weekly charts only; hidden elsewhere.
Data boxNormalSmall / Normal / Large change text size only. Compact is a content mode — it keeps the specs reading and the verdict bar and hides the other seven rows.
Show the full guide on the chartoffRenders the on-chart manual as a panel. TradingView always drops the ⓘ tooltip downward, so it runs off the bottom of the screen when the data box sits low — this is the way around it.
Guide position / text size / pageMiddle left / Small / Page 1Nine anchor points, independent of the data box so the two never collide. The manual runs to three pages.

Both support tools are computed on weekly data whatever your chart period. Levels and the price they are tested against are drawn from the same weekly bar, using confirmed bars only — so nothing repaints and nothing peeks at the future. On a weekly chart the zone is exact; on faster periods it lags by one week, because the last confirmed weekly bar is the newest honest data available intraweek. That lag is deliberate. The alternative — reading the developing week — would let the indicator see information that did not exist when the bar it marks was forming, and would move the zone under you the moment a live bar became historical.

9 · Reading the colours

One colour language runs across the whole COTVault suite, so a colour never means two things:

ColourMeaning
GOLDA state, never a direction. Positioning or concentration is at an extreme. A fresh crowded-long reading is not bearish.
TEALA measured bullish edge is live — the watch zone is open.
REDA measured bearish edge is live. In Classic that means the mature-unwind zone: crowded long for 16+ reports.
SLATENeutral, or measured and rejected. Nothing that survived testing is happening. The mirror zone shades slate for exactly this reason.

A meter's colour always matches the word printed beside it — if they ever disagree, that's a bug worth reporting. Gold deliberately does not mean "danger": colouring a crowded reading red would restate the reversal-risk claim this suite tested and rejected.

10 · Limitations — read this part

What these numbers are not

60.2% is a barrier-race rate, not a profit figure. It says price reached +1 ATR before −1 ATR more often than baseline. It says nothing about your entry, your stop, your size or your costs. A 60% barrier race with poor execution still loses money.

11 · Methodology

12 markets — EUR, GBP, JPY, CHF, CAD, AUD, NZD, US Dollar Index, Gold, Silver, WTI Crude, Corn — using CFTC Legacy futures-only data joined to weekly OHLC. The CFTC series itself reaches back to 1986, but the measured sample is bounded by weekly price history: 2000–2026 for ten markets, 1992 for the US Dollar Index, 2003 for NZD16,284 market-weeks in total. This is the same dataset and the same report series the COTVault dashboard runs on.

Every claim is reported as accuracy against a base rate, never as accuracy alone. Persistence claims use a matched adjacent-band control, because an all-bars control is meaningless for a state-transition claim — most bars already sit in the resolved state. Price claims use an all-bars control, which is valid. Any claim whose free rate exceeded 85% was rejected outright regardless of accuracy: an indicator that "predicts" a near-certain event has taught you nothing.

Guards applied to the zone: per-market breadth, a market-resampled bootstrap CI, replication at 1.5 and 2 ATR barriers, and a walk-forward split at 2010. The number of combinations tested is published above so you can discount for it yourself.

← COTVault — the full COT dashboard
COTVault Premium · Invite-only · COTVAULT.COM