{
  "scan_date": "2026-05-11",
  "macro_notes": "Q1 2026 earnings season largely complete for scanned TSX names: SU reported ~May 8, CNQ May 7 (beat by $0.11 EPS), NTR May 6-7, WPM May 7, ABX May 6. Precious metals macro tailwind intact — WPM.TO surged +5.74% to C$189.94 today on post-earnings momentum. Energy sector (SU.TO, CNQ.TO) holding above 200d EMA with mixed near-term MACD signals. Primary screeners (SwingTradeBot Canada, Barchart TSX) returned site structure only, not live stock lists — replacement search executed per protocol. No candidates confirmed at setup score 4-5 this scan; two watchlist candidates pending confirmation.",
  "signals": {
    "new_buys": [],
    "holds": [
      {
        "ticker": "SU.TO",
        "days_held": 2,
        "current_price_cad": 87.58,
        "stop_intact": null,
        "t1_hit": false,
        "t2_hit": false,
        "action": "HOLD — Day 2 of 3-day time stop window. Stop and all targets are null in positions.json; cannot evaluate stop-hit or T1 progress formally. MACD histogram reportedly turned negative May 7 (entry day) — setup quality reduced. RSI 46-51 remains in range; price +0.64% above entry ($87.02) with no T1 progress. Earnings next Aug 4, 2026 — no imminent risk. ACTION REQUIRED before Day 3: define ATR-based stop (2.5x ATR-14 below $87.02) and T1 target, or apply time stop rule on Day 3 if no meaningful upside progress."
      }
    ],
    "exits": [],
    "watchlist": [
      {
        "ticker": "WPM.TO",
        "waiting_for": "Post-earnings consolidation. Surged +5.74% to C$189.94 today on Q1 2026 earnings (reported May 7). Pre-earnings RSI 46.83 (likely elevated after today's move — RSI unconfirmable until next session); MACD +0.19 (positive confirmed); price above 200d EMA ~C$138 est. (confirmed). Volume today 965K vs 2.41M avg (below average — not yet a volume-confirmed breakout). Wait for 1-3 day pullback bringing price toward 50d EMA with RSI returning to 40-52 range and volume declining on the dip. Setup score: 3 confirmed (above 200d EMA, MACD positive, pre-surge RSI). Needs score 4 (pullback to EMA + declining volume confirmed) for new_buy promotion. Next earnings: 2026-08-06."
      },
      {
        "ticker": "CNQ.TO",
        "waiting_for": "Clear MACD histogram crossover positive. RSI ~54 (upper edge of 35-55 band); price ~C$64.75 above 200d EMA ~C$50-53 (confirmed). Q1 2026 earnings beat ($0.11/share above consensus, reported May 7) is a green flag — stock rose on results. MACD conflicting across sources (one source: line above signal line bullish; second source: -0.120 sell). Wait for MACD histogram to clearly turn positive and RSI to pull back to 40-50 range on a dip toward the 50d EMA. Setup score: 2 confirmed (above 200d EMA, RSI in range). Needs score 3 to enter watchlist formally; needs score 4 for new_buy."
      }
    ]
  },
  "excluded": [
    {
      "ticker": "NTR.TO",
      "reason": "MACD -0.320 (negative, not approaching crossover). RSI 55.89 marginally above 35-55 scoring band. Q1 earnings reported May 6-7 (past risk). Price above 200d EMA ($66.62). Setup score 1 — below threshold."
    },
    {
      "ticker": "ABX.TO",
      "reason": "MACD -0.110 (bearish, line below signal line). RSI conflicting: one source 49.4 (neutral), one source 20 (oversold) — single-source sub-35 not sufficient to exclude per criteria rule, but combined with negative MACD the setup score is 1. Price below 50d EMA but above 200d EMA. Below threshold."
    },
    {
      "ticker": "LCX.V",
      "reason": "TSXV listing — excluded by exchange rule (TSX main board only, no TSXV)."
    },
    {
      "ticker": "LTC.V",
      "reason": "TSXV listing — excluded by exchange rule (TSX main board only, no TSXV)."
    },
    {
      "ticker": "NAU.V",
      "reason": "TSXV listing — excluded by exchange rule (TSX main board only, no TSXV)."
    },
    {
      "ticker": "ACM.CN",
      "reason": "NEO exchange listing — excluded by exchange rule (TSX main board only)."
    },
    {
      "ticker": "BLDP.TO",
      "reason": "Appeared in Trade That Swing screener results. Insufficient technical data returned to confirm RSI, MACD, or 200d EMA position. Market cap unconfirmed vs $500M CAD minimum. Cannot score."
    },
    {
      "ticker": "OBE.TO",
      "reason": "Appeared in Trade That Swing screener results. Insufficient technical data returned to confirm RSI, MACD, or 200d EMA position. Market cap likely borderline vs $500M CAD minimum. Cannot score."
    }
  ]
}
