Commodity Board: Choose The Right Contract Month And Roll Context
A beginner-safe Commodity Board lesson for reading contract month, expiry, provider symbol, volume caveats, and roll-week attention without treating carry structure as a trade idea.
Educational only
The examples teach workflow and risk framing. They do not provide trade recommendations, personalized advice, leverage guidance, or guaranteed outcomes.
Chapter 01
Near and far are different contracts
Trader question
Am I reading the active contract, the deferred contract, or a roll transition?
A Gold row can share the same root while representing a different contract month. Near and far months should be read as separate market objects before price or spread comparison.
Desk checklist
- Treat month as part of the instrument identity.
- Do not merge near and far rows into one Gold price.
- Write active read or structure context before comparison.
Interactive proof
Active local market month, Carry local market month, root symbol, and visible contract month labels
Compare the near and deferred cards, then name which one is active read and which one is structure context.
Contract month is part of the market object. Near, far, and roll-week rows should expose symbol, expiry, volume caveat, and handoff before the learner compares them.
Interactive desk lab
Commodity Board Contract Month Roll Lab
A practical Commodity Board lab for comparing near and deferred contracts, checking symbol and expiry metadata, and writing a roll-context note without turning carry into a trade idea.
A practical Commodity Board lab for comparing near and deferred contracts, checking symbol and expiry metadata, and writing a roll-context note without turning carry into a trade idea.
Near and far contracts get separate identities
Two Gold rows split into near and deferred contract identities before the learner compares anything.
Two similar Gold rows appear as if they are one commodity.
Root, month, provider symbol, and expiry labels appear.
The near card moves into active read and the far card moves into structure context.
The final caption says month is part of the instrument.
Remotion code
CommodityBoardNearFarIdentity
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";
const fields = ["Root: Gold", "Month: Jun / Aug", "Provider symbol", "Expiry metadata"];
export const CommodityBoardNearFarIdentity = () => {
const frame = useCurrentFrame();
const split = interpolate(frame, [42, 104], [0, 1], {
extrapolateLeft: "clamp",
extrapolateRight: "clamp",
easing: Easing.bezier(0.16, 1, 0.3, 1),
});
return (
<AbsoluteFill style={{background: "#fff8e8", color: "#071528", padding: 72}}>
<h1 style={{fontSize: 54, lineHeight: 1}}>Near and far are different contracts.</h1>
<div style={{marginTop: 42, display: "grid", gridTemplateColumns: "1fr 1fr", gap: 24}}>
<div style={{padding: 28, background: "#dcebe2", border: "2px solid #20724f", transform: "translateX(" + interpolate(split, [0, 1], [120, 0]) + "px)"}}>
<span style={{fontSize: 22, color: "#20724f", fontWeight: 950}}>Active month</span>
<strong style={{display: "block", marginTop: 14, fontSize: 40}}>MCX Gold Jun</strong>
<p style={{fontSize: 24, color: "#5d6572"}}>first local futures read</p>
</div>
<div style={{padding: 28, background: "#fff4d6", border: "2px solid #c98718", transform: "translateX(" + interpolate(split, [0, 1], [-120, 0]) + "px)"}}>
<span style={{fontSize: 22, color: "#805407", fontWeight: 950}}>Deferred month</span>
<strong style={{display: "block", marginTop: 14, fontSize: 40}}>MCX Gold Aug</strong>
<p style={{fontSize: 24, color: "#5d6572"}}>carry structure context</p>
</div>
</div>
<div style={{marginTop: 32, display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 12}}>
{fields.map((field, index) => {
const opacity = interpolate(frame, [20 + index * 12, 38 + index * 12], [0, 1], {extrapolateLeft: "clamp", extrapolateRight: "clamp"});
return <div key={field} style={{opacity, minHeight: 70, padding: 14, background: "#fffdf7", border: "1px solid rgba(7,21,40,0.16)", fontSize: 21, fontWeight: 900}}>{field}</div>;
})}
</div>
<Sequence from={116} layout="none">
<p style={{marginTop: 30, fontSize: 28, color: "#805407", fontWeight: 950}}>Same root. Different month. Different read.</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.