Tool lesson

Economic Calendar: Read Reaction Windows As Historical Context

A beginner-safe Economic Calendar lesson for reading historical reaction windows as context rather than prediction, with horizon selection, scenario cards, timeline averages, scatter dispersion, and history-table audit.

13 minBeginner7 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

Choose the horizon before reading the card

Trader question

Am I studying the first 15 minutes, 30 minutes, 1 hour, or 2 hours after the print?

The horizon defines the question. A 15m reaction is not the same as a 2h reaction, and longer windows can include more unrelated market noise.

Desk checklist

  • Pick one horizon first.
  • Do not blend windows in one sentence.
  • Treat longer windows as more exposed to outside noise.

Interactive proof

Horizon chips, supported reaction horizons, scenario analytics, and coverage by horizon

Switch the artifact between 15m, 30m, 1h, and 2h before reading average move or failure rate.

09:00local market openDesk prep
18:00US CPIHigh volatility window
19:00USD reactionCheck COMEX and FX together
20:30Post-eventTrust levels only after spread settles

Interactive desk lab

Economic Calendar Reaction Window Lab

A practical Economic Calendar reaction-window lab for comparing 15m, 30m, 1h, and 2h historical context through scenario cards, average move, failure rate, timeline path, scatter dispersion, current reaction, and history rows.

Native scroll

A practical Economic Calendar reaction-window lab for comparing 15m, 30m, 1h, and 2h historical context through scenario cards, average move, failure rate, timeline path, scatter dispersion, current reaction, and history rows.

50s Remotion sceneReactionHorizonStepper

Horizon chips change the historical read

The same release scenario changes when the learner steps through 15m, 30m, 1h, and 2h reaction windows.

Storyboard beats4 cues
1

Four horizon chips appear.

2

Scenario metrics change as each chip is selected.

3

A warning shows longer windows can include more noise.

4

The final frame says choose horizon before reading the card.

Remotion code

ReactionHorizonStepper

The snippet is stored with the lesson so a future Remotion project can render the chapter video.

Show component snippet
import {AbsoluteFill, Easing, interpolate, useCurrentFrame} from "remotion";

const horizons = [
  {label: "15m", avg: "+0.32%", fail: "42%"},
  {label: "30m", avg: "+0.45%", fail: "39%"},
  {label: "1h", avg: "+0.38%", fail: "45%"},
  {label: "2h", avg: "+0.21%", fail: "48%"},
];

export const ReactionHorizonStepper = () => {
  const frame = useCurrentFrame();
  const active = Math.min(3, Math.floor(interpolate(frame, [20, 112], [0, 3.99], {
    extrapolateLeft: "clamp",
    extrapolateRight: "clamp",
    easing: Easing.bezier(0.16, 1, 0.3, 1),
  })));
  const selected = horizons[active];

  return (
    <AbsoluteFill style={{background: "#fff8e8", color: "#071528", padding: 70}}>
      <h1 style={{fontSize: 54, lineHeight: 1}}>Choose the reaction window before reading the card.</h1>
      <div style={{marginTop: 44, display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 12}}>
        {horizons.map((horizon, index) => (
          <div key={horizon.label} style={{padding: 18, background: index === active ? "#fff4d6" : "#fffdf7", border: "2px solid " + (index === active ? "#c98718" : "rgba(7,21,40,0.14)"), fontSize: 30, fontWeight: 950}}>
            {horizon.label}
          </div>
        ))}
      </div>
      <div style={{marginTop: 36, display: "grid", gridTemplateColumns: "1fr 1fr", gap: 20}}>
        <div style={{padding: 28, background: "#dcebe2", border: "2px solid #20724f"}}>
          <div style={{fontSize: 24, color: "#20724f", fontWeight: 900}}>Average move</div>
          <div style={{marginTop: 18, fontSize: 64, fontWeight: 950}}>{selected.avg}</div>
        </div>
        <div style={{padding: 28, background: "#f1d9d3", border: "2px solid #9d332c"}}>
          <div style={{fontSize: 24, color: "#9d332c", fontWeight: 900}}>Failure rate</div>
          <div style={{marginTop: 18, fontSize: 64, fontWeight: 950}}>{selected.fail}</div>
        </div>
      </div>
      <p style={{marginTop: 30, fontSize: 27, color: "#805407", fontWeight: 900}}>Do not blend windows. Each horizon answers a different review question.</p>
    </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 Economic Calendar