Tool lesson

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.

12 minBeginner6 chapters

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.

1Contract identityNear and far are different instrumentsThe root can match while provider symbol, expiry, liquidity, and role differ. Treat the month as part of the instrument name.
2Metadata gateSymbol and expiry before comparisonA contract-month read should expose root symbol, provider symbol, expiry metadata, and source before the learner compares prices.
3Roll weekAttention can migrateDuring roll periods the active read can shift toward the next month, but the note should say why attention changed.
4Volume caveatHelpful, provider-dependentVolume can guide attention, but it depends on provider coverage, session timing, and whether the field is fresh enough to trust.
5HandoffStructure context, then validateA carry or roll read should route to Fair Value, Calendar, or Backtest when it becomes a hypothesis worth checking.

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.

Native scroll

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.

50s Remotion sceneCommodityBoardNearFarIdentity

Near and far contracts get separate identities

Two Gold rows split into near and deferred contract identities before the learner compares anything.

Storyboard beats4 cues
1

Two similar Gold rows appear as if they are one commodity.

2

Root, month, provider symbol, and expiry labels appear.

3

The near card moves into active read and the far card moves into structure context.

4

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.

Open Commodity Board