How to Compile and Use a COT CFTC Report for Trading
Table of Contents
Introduction to COT Reports
The Commitments of Traders (COT) report is published weekly by the Commodity Futures Trading Commission (CFTC). It breaks down the aggregate positions held by different types of traders in US futures markets, including all major currency futures traded on the CME.
The COT report is the only publicly available data that shows you how large institutional speculators are positioned. This makes it uniquely valuable for forex traders who want to understand what the "smart money" is doing — and when crowded trades are at risk of unwinding.
For forex traders, the real value of the COT report lies in compiling the raw data into a structured, repeatable analysis tool. A well-built COT spreadsheet lets you compare positioning across all seven major currencies at a glance, spot extremes instantly, and track momentum week over week.
- Release schedule: Every Friday at 3:30 PM ET
- Data cutoff: Tuesday of the same week (three-day lag)
- Report types: Legacy report (commercial vs non-commercial) and Disaggregated report (more granular)
- Where to find it: CFTC website at cftc.gov — navigate to Market Reports > Commitments of Traders
- Currencies covered: EUR, GBP, JPY, CHF, CAD, AUD, NZD (and MXN, BRL, RUB in the broader report)
Understanding the Data
The COT report categorizes traders into distinct groups. Understanding what drives each group is essential for interpreting their positioning correctly.
Trader Categories Explained
- Commercial traders (hedgers): Companies with real business exposure to currency risk — exporters, importers, multinational corporations. They use futures to lock in exchange rates and reduce risk. Their positioning often moves opposite to price trends because they are hedging, not speculating. Commercials tend to increase long positions as prices fall (buying the dip for hedging) and increase shorts as prices rise
- Non-commercial traders (speculators): Large institutional speculators — hedge funds, CTAs, proprietary trading firms. They are trying to profit from price movements. Their positioning is the most useful for directional trading signals because it reflects deliberate bets on market direction
- Non-reportable (small traders): Positions below the CFTC reporting threshold. These are typically retail traders and small funds. Their positioning is generally considered less informative
- Leveraged funds (disaggregated report): A more specific breakdown of hedge funds and managed money. This is available in the disaggregated COT report and can provide additional granularity
For most forex traders, the Legacy report non-commercial category is sufficient. The Disaggregated report adds complexity without a proportional improvement in signal quality for the strategies described here.
Key Data Points to Extract
For each currency, you need to extract the following from the non-commercial row:
- Non-commercial long contracts: Total long positions held by speculators
- Non-commercial short contracts: Total short positions held by speculators
- Net position: Longs minus shorts — the primary metric
- Open interest: Total contracts outstanding for that currency (all categories)
- Week-over-week change in net position: Calculate by comparing to last week's data
Compiling Your Report Step by Step
Building a useful COT trading tool requires transforming the raw CFTC data into a structured spreadsheet that you update weekly. Here is the exact process:
Step 1: Download the Raw Data
Go to the CFTC website and download the Legacy Futures Only report. You can download the full report as a CSV file or use the short format. The data is organized by futures contract — look for the Chicago Mercantile Exchange section and find each currency future (Euro FX, Japanese Yen, British Pound, Swiss Franc, Canadian Dollar, Australian Dollar, New Zealand Dollar).
Step 2: Create Your Spreadsheet Structure
Set up a spreadsheet with the following columns for each currency: Currency name, Non-commercial longs, Non-commercial shorts, Net position (calculated), Week-over-week change (calculated), Open interest, 52-week high net position, 52-week low net position, and Positioning index (calculated).
Step 3: Extract Data for Each Currency
For each of the seven currencies, pull the non-commercial long and short contract numbers from the report. Calculate the net position by subtracting shorts from longs. Record the open interest figure.
Step 4: Build Historical Context
Track the 52-week high and low net positions for each currency. This is critical because it provides the range needed to calculate the positioning index. When you first build the spreadsheet, you will need to backfill data from the CFTC historical archives. After that, it auto-updates as you add each week.
Step 5: Calculate the Positioning Index
Use the formula: (Current net position - 52-week low) / (52-week high - 52-week low) x 100. This normalizes positioning to a 0-100 scale across all currencies, making them directly comparable regardless of contract sizes.
Step 6: Update Weekly
Every Friday evening or Saturday morning, update your spreadsheet with the new data. Record the previous week's net positions so you can calculate the weekly change. This entire process takes about 15-20 minutes once the spreadsheet is set up.
Save each week's data as a new row rather than overwriting. This gives you a running history that makes it easy to track trends in positioning, spot multi-week momentum, and identify when positioning has reached historical extremes.
Essential Calculations
These are the four calculations that transform raw COT data into actionable intelligence:
1. Net Position
Net position = Non-commercial longs - Non-commercial shorts. Example: If EUR has 215,000 long contracts and 148,000 short contracts, the net position is +67,000. This means speculators are collectively holding 67,000 more long than short contracts — they are bullish EUR.
2. Positioning Index (0-100 Scale)
Positioning index = (Current net - 52-week low net) / (52-week high net - 52-week low net) x 100. Example: If EUR net position is +67,000, the 52-week low is -15,000, and the 52-week high is +85,000, then the index = (67,000 - (-15,000)) / (85,000 - (-15,000)) x 100 = 82,000 / 100,000 x 100 = 82. This means EUR positioning is at the 82nd percentile of its 52-week range — bullish but not yet at a contrarian extreme.
3. Weekly Momentum
Weekly momentum = This week's net position - Last week's net position. Example: If this week's EUR net is +67,000 and last week was +58,000, weekly momentum is +9,000. Positive momentum means speculators added 9,000 net long contracts — they are increasing their bullish bets.
4. Sentiment Score (-100 to +100)
Sentiment score = (Positioning index - 50) x 2. This converts the 0-100 index to a -100 to +100 scale centered on zero. Example: A positioning index of 82 gives a sentiment score of (82 - 50) x 2 = +64. This makes it intuitive — positive is bullish, negative is bearish, and the magnitude tells you how strong the conviction is.
Combining COT with News Trading
One of the most powerful uses of compiled COT data is pairing it with news trading. When major economic data or central bank events align with extreme or crowded positioning, the resulting price moves can be significantly amplified.
Why This Combination Works
When speculators are heavily positioned in one direction and a news event goes against them, three things happen simultaneously:
- Fundamental repricing: The news itself causes the market to reassess fair value
- Stop-loss cascades: Heavily positioned speculators hit their stops, triggering a wave of forced selling (or buying)
- New positioning: Traders who were waiting on the sidelines jump in, adding fuel to the move
This triple effect creates moves that are much larger than what the news alone would produce. The COT data tells you in advance where the potential for these amplified moves exists.
Practical Example: Crowded EUR Longs + Dovish ECB
Suppose your COT spreadsheet shows EUR positioning at a positioning index of 93 — extreme bullish. The market is heavily long EUR. An ECB meeting is scheduled for the following week. If the ECB delivers a dovish surprise (cutting rates or signaling more easing than expected), the heavily long speculative positions will unwind rapidly. You would prepare for this scenario by:
- Before the event: Identify the crowded positioning (EUR index at 93)
- Assess the risk: Ask yourself, "What news event could go against this crowded trade?" In this case, a dovish ECB would hurt EUR longs
- Prepare your order: Have a short EUR/USD order ready if the ECB surprises dovish
- Execute on confirmation: If the ECB is indeed dovish, enter short EUR/USD knowing that the positioning unwind will amplify the move
- Target the unwind: Expect the move to be 50-100% larger than a typical ECB reaction because of the forced position liquidation
Example 2: Crowded JPY Shorts + Safe Haven Bid
Your spreadsheet shows JPY non-commercial positioning at an index of 6 — extreme bearish (speculators massively short JPY). A geopolitical shock or risk-off event occurs, creating a flight to safety. JPY, as a safe-haven currency, benefits from risk aversion. The crowded short positions unwind violently as speculators are forced to buy back JPY. USD/JPY drops 200-300 pips in a day instead of the usual 80-120 pip risk-off move.
The three-day data lag means COT positioning could have changed between Tuesday (data cutoff) and Friday (release). During volatile weeks, the positioning picture may have shifted. Use COT as a strategic backdrop for news trading, not as precise positioning data for that exact moment.
Practical Trading Applications
Application 1: Weekly Currency Ranking
Every weekend, rank all seven currencies by their positioning index. Pair the highest-ranked (most bullish positioning) against the lowest-ranked (most bearish positioning) for your strongest directional trade idea. This is a systematic way to identify the best pair to trade each week.
Application 2: Trend Health Monitoring
If you have an open trade in the direction of speculative positioning, monitor the weekly change. As long as positioning momentum is positive (in your trade direction), hold the trade with confidence. When momentum turns negative (positioning starts to reverse), tighten your stop or reduce your position size.
Application 3: Risk Event Preparation
Before major data releases or central bank meetings, check the positioning index for the relevant currency. If positioning is at an extreme (above 85 or below 15), the event has asymmetric risk — a surprise against the crowd will produce a much larger move than a result in their favor. Adjust your position size and entry strategy accordingly.
Application 4: Divergence Alerts
Set up your spreadsheet to flag when price is making new highs but positioning momentum has been negative for two or more weeks (or vice versa). This price-positioning divergence is one of the earliest warning signals that a trend is losing institutional support.
Key Reminders
- Update consistently: The value of COT analysis compounds when you have weeks and months of data. Missing weeks creates gaps in your analysis
- Compare across currencies: A positioning index of 70 for EUR means different things depending on where GBP, JPY, and other currencies rank
- Combine with price action: COT data provides the macro backdrop. Technical analysis provides the entry and exit. Neither is sufficient alone
- Be patient with extremes: Extreme positioning can persist for weeks before unwinding. Position your trades accordingly and use appropriate risk management