COT Report Analysis: Read Charts For Sponsorship, Cooling, And Crowding
A beginner-safe COT lesson for using chart patterns and open-interest flow to describe participant behavior without forecasting from the chart.
Educational only
The examples teach workflow and risk framing. They do not provide trade recommendations, personalized advice, leverage guidance, or guaranteed outcomes.
Chapter 01
Use net-position comparison as a divergence question
Trader question
Who is diverging from whom on the chart?
The net-position comparison chart is a participant-map question. Divergence can show who is sponsoring, resisting, or stepping away, but it is not a price forecast.
Desk checklist
- Name the participant lines being compared.
- Describe widening or narrowing, not certainty.
- Check open interest before calling sponsorship.
Interactive proof
Charts tab net-position comparison chart and pattern legend
Use the OI-flow lab to pick a pattern lens and describe divergence without turning it into bias language.
Managed money: Crowding can persist, but catalyst risk rises
Producers: Hedging pressure, not a simple bearish call
Swap dealers: Often risk-transfer context
Other reportables: Secondary conviction layer
Interactive desk lab
COT OI Flow Scenarios
A practical COT chart lab for classifying open-interest and managed-money flow as new longs, new shorts, short covering, or long liquidation before naming sponsorship or crowding.
A practical COT chart lab for classifying open-interest and managed-money flow as new longs, new shorts, short covering, or long liquidation before naming sponsorship or crowding.
Net comparison as divergence question
Managed-money and commercial net lines move apart, then the lesson rewrites divergence as a participant question rather than a directional call.
Two participant net-position lines begin close together.
Managed money rises while commercial net falls.
A divergence label appears.
The label becomes a question: who is sponsoring and who is resisting?
Remotion code
CotNetComparisonDivergence
The snippet is stored with the lesson so a future Remotion project can render the chapter video.
Show component snippet
import {AbsoluteFill, Easing, Sequence, interpolate, useCurrentFrame} from "remotion";
export const CotNetComparisonDivergence = () => {
const frame = useCurrentFrame();
const spread = interpolate(frame, [24, 92], [0, 180], {extrapolateLeft: "clamp", extrapolateRight: "clamp", easing: Easing.bezier(0.16, 1, 0.3, 1)});
return (
<AbsoluteFill style={{background: "#071126", color: "#fff8e8", padding: 72}}>
<h1 style={{fontSize: 54, lineHeight: 1}}>Divergence is a question, not a trade call.</h1>
<div style={{marginTop: 70, position: "relative", height: 260, background: "#fffdf7", color: "#071126", border: "1px solid #ad862d"}}>
<div style={{position: "absolute", left: 90, right: 90, top: 88, height: 12, background: "#20724f", transform: "translateY(-" + spread / 2 + "px)"}} />
<div style={{position: "absolute", left: 90, right: 90, top: 154, height: 12, background: "#9d332c", transform: "translateY(" + spread / 3 + "px)"}} />
<div style={{position: "absolute", left: 28, top: 24, fontWeight: 900}}>Managed money</div>
<div style={{position: "absolute", left: 28, bottom: 24, fontWeight: 900}}>Producer / merchant</div>
</div>
<Sequence from={108} layout="none">
<p style={{fontSize: 26, color: "#f1d59b"}}>Ask who is sponsoring, who is resisting, and whether OI confirms participation.</p>
</Sequence>
</AbsoluteFill>
);
};Sources used for this tutorial
Next step
Open the tool with the checklist beside you.
Move from the lesson into the matching Bullion Brains tool, keep the checklist visible, and treat the output as evidence until the caveats are clear.