{
  "scan_date": "2026-05-04",
  "macro_notes": "TSX appears overextended as of May 4 2026. Canadian bank stocks are at or near decade highs — CM at record close, TD near 52-week high, BNS at $105 vs 52-week high of $106.59 — with RSI readings clustering above 65 for most names. A large wave of TSX earnings reports falls May 6-7 (GWO, QSR, OR, L, CSH-UN, X, ERO) creating broad exclusions this week. Gold and precious-metals miners/royalty companies are likely extended with gold at multi-year highs (AEM, ABX, AGI, FNV, OR all on recent positive-breakouts lists). Several quality names (STN, MRU, RCH, GIB-A) have pulled back below their 200d EMA, leaving them technically disqualified for now. Net result: zero new-buy setups pass all criteria today. Suggest patience — watch for a 5-10% broad pullback to shake out overbought RSI readings before re-scanning.",
  "signals": {
    "new_buys": [],
    "holds": [],
    "exits": [],
    "watchlist": [
      {
        "ticker": "BNS-T",
        "waiting_for": "Pullback to 20d/50d EMA (est. ~$95-100) with RSI cooling from 62 into the 40-55 range; MACD histogram needs to remain positive through pullback. Earnings May 27 2026 — safe window. Full criteria met if price pulls back ~5-8% from current $105 level."
      },
      {
        "ticker": "STN-T",
        "waiting_for": "Price must reclaim 200d MA ($133.13) on a closing basis before setup is valid. RSI currently 53.52 (ideal) and earnings not until May 13. Monitor for a sustained break back above $133 — if achieved with RSI 40-60 and MACD turning positive, this becomes a high-conviction pullback-to-EMA entry. Analyst consensus target C$159, giving >20% upside."
      }
    ]
  },
  "excluded": [
    { "ticker": "CM-T", "reason": "RSI 68.92 — above 65 hard filter. Stock at record close ~$151 CAD; earnings May 28 (safe) but technically overbought. Single-source RSI confirmed via CM.TO technical analysis." },
    { "ticker": "TD-T", "reason": "RSI 69.87 — above 65 hard filter. Near 52-week high of $147.00; earnings May 28 (safe) but overbought." },
    { "ticker": "GWO-T", "reason": "RSI 76.85 — severely overbought (>65). Additionally, earnings May 6 2026 (2 trading days) — dual exclusion." },
    { "ticker": "CSH-UN-T", "reason": "Earnings May 7 2026 — within 3 trading days. Chartwell Q1 2026 results after close on May 7; conference call May 8." },
    { "ticker": "OR-T", "reason": "Earnings May 6 2026 — within 3 trading days (2 trading days out). RSI 36.81 and PE 33.38 would have passed, but earnings exclusion applies." },
    { "ticker": "QSR-T", "reason": "Earnings May 6 2026 — within 3 trading days. PE 35.45 also marginally above 35 cap." },
    { "ticker": "L-T", "reason": "Earnings May 6 2026 — within 3 trading days. RSI 46.72 and PE 29.73 would have passed all other filters." },
    { "ticker": "X-T", "reason": "RSI 73.07 — severely overbought. PE 37.23 above 35 cap. Earnings May 4 2026 (today). Triple exclusion." },
    { "ticker": "ERO-T", "reason": "RSI 33.66 — below 35 hard filter. Earnings May 4 2026 (today). Dual exclusion." },
    { "ticker": "GIB-A-T", "reason": "RSI 31.94 — below 35 hard filter. Stock down 37% over past year, price near 52-week low. Earnings already reported April 29." },
    { "ticker": "WPK-T", "reason": "RSI 24.45 — severely oversold, below 35 hard filter. Price near 52-week low of $38.95." },
    { "ticker": "STN-T", "reason": "Price $124-125 is below 200d MA of $133.13 — fails above-200d-EMA hard filter. Stock has pulled back ~22% from 52-week high of $160. RSI 53.52 and PE 29.59 otherwise would qualify. Earnings May 13 (safe)." },
    { "ticker": "MRU-T", "reason": "Price $90.18 is below 200d MA (est. ~$99-100). Stock passed below 200d MA on March 24 2026 per MarketBeat alert and has continued to decline. Quebec strike expected to weigh on Q3. Earnings April 22 (already reported, safe). RSI 44.15 otherwise ideal." },
    { "ticker": "RCH-T", "reason": "Price $39.27 is below 200d MA. Stock crossed below 200d MA in early April 2026 per MarketBeat alert (200d MA was ~$39.19 in late March). Currently right at or below the 200d MA — fails above-EMA hard filter. RSI 43.96 and PE 25.37 otherwise qualify. Earnings April 9 (already reported, safe)." },
    { "ticker": "BYD-T", "reason": "PE 147.88 — far exceeds 35 cap. Net earnings fell 24.95% full-year. RSI 43.24 and market cap $4.63B otherwise fine. Earnings May 13 (safe)." },
    { "ticker": "CPX-T", "reason": "PE 434.75 — far exceeds 35 cap (likely one-time earnings distortion). Stock recently dipped below then recovered above 200d MA ($62.81). RSI 48.67 otherwise ideal. Earnings April 29 (already reported)." },
    { "ticker": "GFL-T", "reason": "PE 90.98 — far exceeds 35 cap. Stock down 23.56% YoY, near 52-week low. RSI 35.48 barely in range. Earnings April 29 (already reported, safe)." },
    { "ticker": "RY-T", "reason": "Not individually confirmed via data pull — excluded presumptively. Like CM and TD, Royal Bank is on the positive-breakouts list amid a bank-sector run; RSI likely above 65 given sector context. Requires independent confirmation before any entry." },
    { "ticker": "BMO-T", "reason": "Not individually confirmed via data pull — excluded presumptively. Same bank-sector run context as RY; RSI likely above 65. Requires independent confirmation before any entry." }
  ]
}
