The CFTC Commitments of Traders report explained: commercials vs non-commercials, net positioning, extremes vs history, weekly change momentum, and the three mistakes retail traders make.
Meta Description: The CFTC Commitments of Traders (COT) report explained: commercials vs non-commercials vs non-reportables, net positioning, extremes vs history, and the three mistakes retail traders make. With links to per-commodity breakdowns.
The Commitments of Traders report is the CFTC's weekly snapshot of who is positioned where in US futures markets. For retail traders its value is positioning context — whether a market is crowded long or short — not timing signals. Read correctly, COT tells you when the consensus is extreme; read naively, it tells you to buy every top.
This guide pairs with our programmatic Markets hub, where each commodity gets its own breakdown (e.g., Gold COT, Crude Oil COT, S&P 500 COT). For the validation discipline behind any positioning signal see walk-forward optimisation.
Commercials are hedgers — producers, merchants, and processors offsetting physical exposure. Non-commercials are large speculators (hedge funds, CTAs) whose positions express directional views. Non-reportables are small traders below the reporting threshold. Net position (longs minus shorts) per cohort is the headline number; gross exposure (longs plus shorts) measures conviction and liquidity provision.
The economic logic: commercials are structurally short in commodity markets they produce (selling forward their output) and structurally long where they consume. Their positioning reflects business hedging, not alpha — so when commercials sit at a multi-year net-short extreme while specs sit at a multi-year net-long extreme, the market is crowded with consensus longs hedged by producers. That is a contrarian flag, not a buy signal.
COT is published every Friday for positions held at Tuesday's close — a three-day lag by construction, longer over holiday weeks. It covers exchange-traded futures (and options-and-futures combined in the disaggregated report), not OTC swaps, spot, or ETFs, so it is a window into leveraged positioning, not total market exposure. Legacy reports split commercials/non-commercials; the Disaggregated report further splits specs into Managed Money and Other Reportables — use the disaggregated cut for hedge-fund crowding reads.
import pandas as pd
def cot_extreme_flag(net_position: pd.Series, lookback: int = 52) -> pd.Series:
"""Percentile of current net position vs trailing history.
Above 0.90 or below 0.10 -> crowded; fade with price confirmation,
never on the percentile alone.
"""
pct = net_position.rank(pct=True, ascending=True)
trailing = net_position.rolling(lookback, min_periods=lookback)
lo = trailing.quantile(0.10)
hi = trailing.quantile(0.90)
crowded_long = (net_position >= hi) & pct.gt(0.90)
crowded_short = (net_position <= lo) & pct.lt(0.10)
return pd.Series(
{**{i: 1 for i in net_position[crowded_long].index},
**{i: -1 for i in net_position[crowded_short].index}},
name="cot_extreme",
).reindex(net_position.index).fillna(0).astype(int)
First, extremes vs history: net speculative positioning above its 52-week 90th percentile (or below the 10th) marks crowded consensus. Second, weekly change momentum: acceleration of positioning (this week vs 4-week average) front-runs the extreme flag by 2–4 weeks and is the more tradable of the two. Third, commercials-vs-specs divergence: when the two cohorts push to opposite multi-year extremes simultaneously, mean-reversion odds improve materially versus single-cohort extremes.
None of these is a standalone entry. The professional use is as a regime filter on a price-based process: take longs only when specs are not crowded long, size down when they are, and demand ATR-based stops regardless. Backtest the combined rule walk-forward — COT-augmented rules have their own parameter grids (lookback, thresholds) and therefore their own overfitting surface (CPCV applies).
Mistake one: treating COT as timing. Positioning can stay extreme for months while price trends further (specs were record-long crude deep into 2008's top). Extremes describe vulnerability, not catalysts. Mistake two: ignoring the lag — trading Friday's release as Tuesday's positions in a fast market is trading stale news; always check whether price already reversed between Tuesday close and today. Mistake three: cherry-picking one cohort. Non-commercials alone mislead whenever commercials absorb the flow; the divergence between cohorts is the signal, and single-cohort reads are noise with a narrative.
Consider a stylized crude-oil episode (illustrative pattern, not a dated call). Phase one, accumulation: Managed Money net-long drifts from the 40th to the 70th percentile of its 52-week range over two months while price grinds +12%. No signal — trends can persist and specs add correctly. Phase two, extreme: net-long crosses the 90th percentile while commercials push to a multi-year net-short extreme — producers happily selling forward into fund buying. The divergence flag fires, but price still makes a marginal new high over the next three weeks. This is the phase that shakes out premature fades.
Phase three, trigger: price breaks the 20-day low on rising volume while COT is still crowded long — positioning vulnerability meets price confirmation. The subsequent four weeks retrace most of the prior two months as longs liquidate into commercial scale-down buying. The lesson is structural: COT identified who would be forced to sell (crowded longs with no marginal buyer left); price action supplied the when. Either input alone underperforms their combination, which is why the professional rule is positioning-filter-times-price-trigger, never positioning alone.
Pick one market and learn its positioning personality: Gold for safe-haven crowding, Crude Oil for risk-on beta, Euro FX for carry-trade proxies, 10Y Treasury for duration consensus. Each page carries its CFTC code, exchange, and reading notes. Pair positioning context with macro regime from FRED series (CPI, Fed funds, 2s10s) before sizing anything.
Upgrade to unlock all institutional-grade algorithms, derivative pricing engines, factor backtesting frameworks, and live QuantLab execution.
Explore Membership Access