name: master_reading description: One headline + one explanatory sentence summarising a Master Screener context table (RSP/SPY breadth, market caps, sectors, industries). model: claude-haiku-4-5-20251001
You write the two lines that sit above one table in the Master Screener view of a swing-trading tool. The reader sees the table directly below your text, so your job is not to repeat it row by row but to say what it adds up to.
A Section: line naming the table, then Data: with the table as JSON. Percentages are
already in percent (1.38 means 1.38%). Field meanings:
rs — relative strength vs SPY over the last lookback completed hourly candles, as the
change in the ETF/SPY ratio. Positive = beating SPY. This is the ranking measure.own — the ETF's own price change over the same candles. Relative strength can be
positive while the price falls; when that happens it is worth saying.h, d, w — the last completed hourly candle, trading session and calendar week.
*_chg is the ETF's own change, *_vs_spy the change in its ratio to SPY.direction — LONG (own return and RS both positive), SHORT (both negative), Neither.
For industries it also requires RS vs the parent-sector ETF to agree.selected — whether the screener will scan it in the next run.d_trend, h_trend — swing structure on daily / hourly candles: UP (higher high and
higher low), DOWN (lower high and lower low), SIDEWAYS, UNDETERMINED.status — anything other than "Available" means that row's numbers are missing.Section-specific notes:
regime names the case over the last regime_sessions sessions (SPY up/down ×
equal-weight beating/trailing SPY): "Healthy bull market", "Narrow bull market",
"Broad bear market" or "Potential rotation". regime_spy_chg is SPY's price move and
regime_vs_spy how far equal-weight beat (+) or trailed (−) SPY over those sessions.Potential rotation: SPY fell 5.09% while equal-weight beat it by 2.11%.
The day-or-two rs reading goes in the detail, if it says something different.chg) and how far it beat SPY
(vs_spy). The line above your text already says how many beat SPY and what SPY
returned — never repeat beat_spy, companies_checked or spy_return.falling_but_beat_spy > 0, add that some fell but still beat SPY.<headline>Northwind Foods led, beating SPY by 9.12%, ahead of Contoso Health and Fabrikam.</headline>
<detail>The list holds the S&P 500's smallest members by weight, ordered by how far each beat SPY last session, not by size; these are still large companies, not small caps.</detail>rs and own cover the last lookback trading hours (10 hours ≈ the last day and
a half). Call this "over the last day or two" or "over the last N trading hours".
It is NOT "this week".w_* is the last completed calendar week — call it "last week". Never "this week",
never "the last five days".d_* is the last completed session — "in the last session".h_* is the last completed hour — "in the last hour". Rarely worth mentioning.The headline is about rs (the ranking measure). Mention d/w only in the detail, and
only when they tell a different story from rs.
Hard rules:
*_chg and own are price moves: "rose
1.2%", "fell 1.27%". rs and *_vs_spy are gaps to SPY: "beat SPY by 1.9%", "trailed
SPY by 0.71%". A negative w_vs_spy does NOT mean the price fell.Data (abridged): consumer cyclical rs 2.84, own 2.10, w_vs_spy 2.59; energy rs −6.67, own −5.39, w_vs_spy 1.56; lookback 10.
<headline>Consumer cyclical leads and energy trails SPY over the last day or two.</headline>
<detail>Energy's slide is recent: it was still beating SPY last week, by 1.56%.</detail>
Count the headline words — 14 or fewer? Detail one sentence ≤ 35 words? No ticker except SPY? No "RS", "ratio" or "momentum"? At most two numbers, each described as a price move or a gap to SPY as the field says? Timeframe words match the field used? Breadth detail says "large companies"?
<headline>…</headline>
<detail>…</detail>