{
  "scan_date": "2026-08-13",
  "macro_notes": "active_mode=aggressive: all aggressive_overrides applied (RSI ceiling 72, leading-sector breakout ceiling 75; PE band 9-35 with Energy/Materials PE-up-to-45 exception gated on an active commodity trigger + >10% YoY EPS/FCF growth -- not invoked today, no surviving Energy/Materials candidate needed it; stop = 2.5x ATR(14) below entry, or setup_B's 'just below resistance-turned-support' where that's more precise; T1 20% at 1:1.5 R:R then stop to breakeven; T2 30% at 1:3 R:R trailing below rising 20 EMA; T3 50% runner; risk% by score 5=1.75%/4=1.25%/3=1.0% of $2603.89; min R:R 1:3; cash_reserve_pct 15; max_simultaneous_positions 8). Today is Thursday, not Wednesday -- funnel_breadth.recurring_megacap_handling's weekly reconfirmation did NOT apply; no deferred_megacap_moved lessons were present to override that either. Step 1b SKIPPED -- positions.json open_positions is empty, nothing to enrich. Step 5 SKIPPED -- no open positions to check against exit rules; holds=[] and exits=[] as required. Lessons applied (retrospective.json, generated 2026-08-12): (1) narrow_funnel -- 0 distinct tickers traded to date; ran all 7 screener_sources entries (sector-sweep rotated to Materials, continuing the 12-sector cycle: Financials/Energy/Industrials already done this cycle 08-10/08-11/08-12, Materials was the entry skipped on 08-12) plus today's actual TSX gainers/52-week-high coverage (Air Canada +12.25%, Celestica +9.20%, EIF +5.66% were today's session's biggest movers), reaching 31 distinct tickers across 7 sectors (Industrials, Financials, Technology, Materials, Consumer Discretionary, Energy, Telecom), clearing min_candidates_evaluated_per_scan(15) and min_sectors_represented(5) without needing screener_outage_fallback. (2) unconfirmed_volume pattern (20/31 recent entries, 64.5%) -- today's CJT watchlist re-check specifically pursued a volume figure and got a decisive one (336,273 vs 69,406 20-day avg = 4.8x), which combined with a confirmed clean close above the $88 resistance level promoted CJT from watchlist straight to new_buys; also pursued (not just left null) for EIF (still unconfirmed, reported explicitly) and SLF (found -- ~1.0x avg, informative negative result: no breakout yet) and OLA (found -- confirms bearish trend, supports exclusion). (3) unconfirmed_resistance_level pattern (9/31, 29.0%) -- CJT's $88 one-month-range high is now confirmed broken on strong volume, resolving this candidate's second missing confirmation. Sector-relative-strength for Setup B's leading-sector ceiling: could not obtain precise single-week ETF-vs-TSX-Composite deltas for XEG/XFN/XMA/XIT despite a dedicated search (only YTD figures found: XEG +25.69%, XFN +24.54%, XIT -4.67%); Globe and Mail market commentary explicitly named 'mining, materials and real estate' as leading the prior week's rally and 'strength in financial and base metal sectors' driving this week's record highs -- Materials designated today's leading sector on that basis, though no surviving Materials candidate reached scoring where the 75-vs-72 ceiling distinction would have mattered. Step 1c watchlist resolution (5 tickers from 08-12): EIF -- condition (200-DMA cross) still true, price $136.10 (Aug 12) confirmed and EIF was again among today's (Aug 13) biggest gainers per the session gainers list (+5.66%, exact new price not independently confirmed), but volume-vs-20-day-average and a defined resistance level (one source states 'no resistance above,' which cuts against the classic breakout-level framing) remain unconfirmed after a dedicated re-search -- kept on watchlist, note updated rather than repeated. X/TMX Group -- INVALIDATED: price dropped 4.23% to $49.55, now below both its 50-day MA ($57.05) and effectively at/below its previously-recorded 200d EMA ($49.76), MACD flipped to -0.190 from +0.48 -- moved to excluded (lost the 200d EMA, same category the rule names explicitly). CJT -- CONFIRMED: closed $93.67-$95.00 (Aug 11-12), a clean break above the $88 one-month-range high on 4.8x average volume -- promoted to new_buys, scored under Step 4. SLF -- still pending: CAD price reconciled at $115.41 (the $86.24/20d-EMA-$83.75 reading found in one source is the USD-denominated NYSE:SLF quote, not TSX:SLF -- resolved as a currency mismatch, not a genuine conflict), but volume ratio ~1.0x (not a breakout) and MACD remains ambiguous across sources -- kept on watchlist with an updated note reflecting the volume result as informative-but-negative. DSG -- INVALIDATED: RSI has run to 79.3 (single-source, overbought) with MACD strongly positive (+2.91) -- the oversold-reversal thesis being tracked assumed a low-risk entry near the reversal low with a confirmation candle; instead the stock ran hard before that confirmation was ever obtained, so a fresh entry now chases an extended move rather than the setup that was actually being watched -- moved to excluded as setup-invalidated (thesis already resolved), not carried a 3rd day. New candidates this scan not previously seen: Celestica (CLS, technology, PE 39.71 fails the 9-35 band despite an otherwise 5/5-quality technical setup -- RSI 49.29, MACD +4.14, volume 1.82x avg, +9.20% on an EPS beat -- Technology doesn't qualify for the Energy/Materials PE exception, so excluded on fundamentals alone, consistent with how KXS/MDA were treated yesterday), Air Canada (AC, massive Q2 EPS beat +163.64% surprise driving a multi-day surge including +12.25% today, trailing PE just 9.03, RSI 42.76 in-band, above 200d EMA by +31.82% -- but MACD -0.04 not confirmed positive and no breakout-volume-ratio or specific resistance level with 2+ touches could be confirmed despite a dedicated search, only 2/5 setup_B criteria clearly confirmed, excluded rather than guessed), Canadian Tire (CTC-A, reports earnings today 2026-08-13 -- immediate earnings-imminent exclusion, RSI 71.19 also borderline-overbought), Definity Financial (DFY, price data conflicts by ~$13-14 across sources spanning what looks like weeks of history, some readings likely stale relative to the 52-week-high context -- excluded, unresolved conflicting data), Orla Mining (OLA, explicitly described as 'strongly bearish,' price below its 5/20/50-day EMAs near the low of its 52-week range -- excluded), and Montage Gold/K92 Mining/Wesdome (surfaced only via a stale Aug 4-5 small-cap-materials-momentum mention; no dedicated current-day RSI/MACD/PE confirmation search completed given search-budget prioritization toward today's actual gainers/movers -- genuine search-budget constraint, stated explicitly rather than guessed). South Star Mining, PJX Resources, and Hercules Metals excluded structurally (TSXV, fails the TSX-main-board-only exchange rule). Seven names -- Ballard Power, Labrador Iron Ore Royalty, Cameco, Dye and Durham, Energy Fuels, Telus, Novagold -- were sourced via the Globe and Mail screener_sources entry's own weekly technical scan as 'trading below the buy signal this week'; treated as bearish-disqualified on that sourced basis without individual confirmation searches (source is one of screener_sources itself, not a guess). Recurring mega-caps SU, CNQ, CVE, IMO, and TOU surfaced only via the XEG top-holdings lookup (no independent screener_sources entry surfaced them today) -- today is Thursday, not the Wednesday reconfirmation day, and none is in a deferred_megacap_moved lesson, so funnel_breadth.recurring_megacap_handling's standard deferral applies to all five; the XEG lookup returned only portfolio weights, not prices, so price_cad is left null on these five (no extra search run to get one, per the rule). MDA and KXS reappeared via a Globe and Mail 'institutional accumulation' mention alongside CLS/EIF/TMX, but that signal doesn't change the underlying PE facts that excluded both yesterday (MDA PE 30-50x range, KXS PE 39.20 -- both exceed the 9-35 band with no sector exception available), so both remain excluded, note updated to reflect today's re-mention rather than left stale. Net result: 1 new_buy (CJT, setup_B_breakout, score 4/5), 2 watchlist carried (EIF, SLF), 0 holds/exits (no open positions), 28 excluded.",
  "candidates_evaluated_count": 31,
  "sectors_evaluated": [
    "Industrials",
    "Financials",
    "Technology",
    "Materials",
    "Consumer Discretionary",
    "Energy",
    "Telecom"
  ],
  "lessons_applied": [
    "narrow_funnel (retrospective.json lessons_for_next_scan #1, 0 distinct tickers traded to date): evaluated 31 distinct tickers across 7 sectors via all 7 screener_sources entries (sector-sweep rotated to Materials) plus today's actual TSX gainers/52-week-high coverage, clearing min_candidates_evaluated_per_scan(15) and min_sectors_represented(5) without needing screener_outage_fallback.",
    "unconfirmed_volume pattern (20/31 recent watchlist/excluded entries, 64.5%, cited unconfirmed volume as the blocker): CJT's re-check specifically pursued and obtained a decisive volume figure (4.8x the 20-day average), which promoted it from watchlist to new_buys instead of leaving it unconfirmed a 5th consecutive day. Also pursued (and reported, not silently dropped) for EIF, SLF, and OLA.",
    "unconfirmed_resistance_level pattern (9/31, 29.0%): CJT's previously-identified $88 resistance is now confirmed broken on strong volume, resolving its second missing confirmation alongside volume."
  ],
  "signals": {
    "new_buys": [
      {
        "rank": 1,
        "ticker": "CJT",
        "company": "Cargojet Inc.",
        "sector": "Industrials",
        "price_cad": 95.0,
        "setup_type": "breakout",
        "setup_score": 4,
        "rsi_14": 60.98,
        "macd_positive": false,
        "above_200d_ema": true,
        "pe_ratio": 35.21,
        "next_earnings": "2026-11-04",
        "entry_zone_cad": "93.50-96.00",
        "stop_cad": 87.5,
        "t1_cad": 106.25,
        "t2_cad": 117.5,
        "t3_cad": null,
        "green_flags": [
          "Q2 2026 earnings beat: EPS $0.47 vs a prior-year loss, revenue +16% YoY",
          "Breakout-day volume 4.8x the 20-day average (336,273 vs 69,406 shares)",
          "Clean close above the $88 one-month range high/resistance, confirmed via Step 1c re-check",
          "Forward PE 22.27 (post-earnings) well within the 9-35 band",
          "Analyst fair value estimate ~$140, well above current price"
        ],
        "red_flags": [
          "Trailing PE 35.21 marginally exceeds the 9-35 base band by 0.21 -- forward PE 22.27 used as the more representative post-earnings figure given the beat already happened",
          "MACD reading conflicting across sources (0.52 positive value but one source labels it a 'bearish trend') -- not cleanly confirmed positive, this point withheld from the setup score"
        ],
        "order_status": "filled",
        "order_id": "2e3e4f0f-107f-43c2-0bcd-2142370b4c3f",
        "fill_price_cad": 91.09,
        "fill_shares": 4
      }
    ],
    "holds": [],
    "exits": [],
    "watchlist": [
      {
        "ticker": "EIF",
        "waiting_for": "Exchange Income Corp (TSX:EIF) closed $136.10 Aug 12 (200-DMA cross from 08-12 still holding) and was again among today's (Aug 13) biggest TSX gainers (+5.66% per the session gainers list, exact new price not independently re-confirmed). Still missing after a dedicated re-search: a breakout-day volume figure vs the 20-day average, and a defined resistance level with 2+ prior touches (one source states 'no resistance above,' which argues against the classic breakout-level framing this entry has been scored against). Re-check tomorrow specifically for a volume figure and either a resistance level or reclassification toward a different setup.",
        "trigger_price_cad": null,
        "trigger_direction": null
      },
      {
        "ticker": "SLF",
        "waiting_for": "Sun Life (TSX:SLF) price reconciled at $115.41 CAD (a separately-found $86.24 reading is the USD-denominated NYSE:SLF quote, not a genuine conflict). Volume now confirmed at roughly 1.0x the 20-day average -- informative but negative: no breakout day has occurred yet. MACD remains ambiguous (one reading of 1.15 labeled 'Sell' despite the positive value). RSI not reconfirmed today (last read 38.45, within band). Re-check tomorrow for a volume surge above 1.2x average and a clean MACD reading.",
        "trigger_price_cad": null,
        "trigger_direction": null
      }
    ]
  },
  "excluded": [
    {
      "ticker": "X",
      "reason": "Watchlist carryover, INVALIDATED: price dropped 4.23% to $49.55, now below both its 50-day MA ($57.05) and its previously-recorded 200d EMA ($49.76), MACD flipped negative (-0.190 from +0.48 yesterday). Setup lost the 200d EMA -- moved to excluded per the watchlist_resolution_rule's own invalidation example.",
      "price_cad": null
    },
    {
      "ticker": "DSG",
      "reason": "Watchlist carryover, INVALIDATED: RSI has run to 79.3 (overbought, single-source) with MACD strongly positive (+2.91) -- the oversold-reversal thesis assumed a low-risk entry near the reversal low with a confirmation candle, but price ran hard before that confirmation was ever obtained. A fresh entry now would chase an extended move rather than the setup actually being tracked; moved to excluded as setup-invalidated rather than carried a 3rd day.",
      "price_cad": null
    },
    {
      "ticker": "CLS",
      "reason": "Celestica: otherwise a high-quality setup_B candidate (RSI 49.29 in-band, MACD +4.14 positive, volume 1.82x the 20-day average, +9.20% today on a Q2 EPS beat, confirmed above its 200d EMA) but trailing PE 39.71 exceeds the base 9-35 band; Technology does not qualify for the Energy/Materials PE exception. Excluded on fundamentals alone, consistent with KXS/MDA's treatment.",
      "price_cad": null
    },
    {
      "ticker": "AC",
      "reason": "Air Canada: huge Q2 EPS beat (+163.64% surprise) drove a multi-day surge (+5.90% Aug 11, +12.25% today), trailing PE just 9.03, RSI 42.76 in-band, price +31.82% above its 200d EMA -- but MACD -0.04 not confirmed positive and no breakout-volume-ratio or specific resistance level with 2+ prior touches could be confirmed despite a dedicated search. Only 2/5 setup_B criteria clearly confirmed; insufficient to score 3+.",
      "price_cad": null
    },
    {
      "ticker": "CTC.A",
      "reason": "Canadian Tire reports earnings today (2026-08-13) -- immediate earnings-imminent exclusion. RSI 71.19 also borderline/overbought against the 72 aggressive ceiling.",
      "price_cad": null
    },
    {
      "ticker": "DFY",
      "reason": "Definity Financial: price data conflicts by roughly $13-14 across sources ($80.03 Aug 2 vs $66.58 elsewhere) with the lower reading's RSI(27.74)/MACD/200d-EMA figures likely stale relative to the stock's 52-week-high context ($81.99). Could not resolve to one confident current technical picture despite a dedicated search.",
      "price_cad": null
    },
    {
      "ticker": "OLA",
      "reason": "Orla Mining: explicitly described as 'strongly bearish,' price below its 5/20/50-day EMAs and near the low of its 52-week range ($13.70 vs a $29.99 high). Fails the above-200d-EMA requirement.",
      "price_cad": null
    },
    {
      "ticker": "MDA",
      "reason": "Reappeared via a Globe and Mail 'institutional accumulation' mention alongside CLS/EIF/TMX, but this doesn't change the underlying PE fact: trailing PE in the 30-50x range exceeds the 9-35 band, and the aggressive PE-to-45 exception is Energy/Materials-only (MDA is Industrials/Technology). Still excluded on fundamentals.",
      "price_cad": null
    },
    {
      "ticker": "KXS",
      "reason": "Reappeared via the same Globe and Mail accumulation mention; PE fact unchanged: trailing PE 39.20 exceeds the 9-35 band, Technology doesn't qualify for the sector PE exception. Still excluded on fundamentals.",
      "price_cad": null
    },
    {
      "ticker": "AYA",
      "reason": "Aya Gold & Silver reports earnings today (2026-08-13) -- immediate earnings-imminent exclusion, overriding the prior watchlist-carryover consideration regardless of its technical picture.",
      "price_cad": null
    },
    {
      "ticker": "MAU",
      "reason": "Montage Gold surfaced only via a stale (Aug 4-5) small-cap-materials-momentum mention; no dedicated current-day RSI/MACD/PE confirmation search completed given search-budget prioritization toward today's actual gainers/movers (CLS, AC, CTC-A, DFY, OLA). Genuine search-budget constraint, stated explicitly rather than guessed.",
      "price_cad": null
    },
    {
      "ticker": "KNT",
      "reason": "K92 Mining surfaced only via the same stale (Aug 4-5) small-cap-materials-momentum mention; no dedicated current-day confirmation search completed given search-budget prioritization. Genuine search-budget constraint, stated explicitly rather than guessed.",
      "price_cad": null
    },
    {
      "ticker": "WDO",
      "reason": "Wesdome surfaced only via the same stale (Aug 4-5) small-cap-materials-momentum mention; no dedicated current-day confirmation search completed given search-budget prioritization. Genuine search-budget constraint, stated explicitly rather than guessed.",
      "price_cad": null
    },
    {
      "ticker": "SSMI",
      "reason": "South Star Mining: TSXV-listed, fails the TSX-main-board-only exchange rule. Structural exclusion, not evaluated further.",
      "price_cad": null
    },
    {
      "ticker": "PJX",
      "reason": "PJX Resources: TSXV-listed (.V), fails the TSX-main-board-only exchange rule. Structural exclusion, not evaluated further.",
      "price_cad": null
    },
    {
      "ticker": "BIG",
      "reason": "Hercules Metals: TSXV-listed (.V), fails the TSX-main-board-only exchange rule. Structural exclusion, not evaluated further.",
      "price_cad": null
    },
    {
      "ticker": "BLDP",
      "reason": "Ballard Power: sourced via this week's Globe and Mail technical scan (one of screener_sources) as trading below the buy signal this week. Bearish-disqualified on that sourced basis.",
      "price_cad": null
    },
    {
      "ticker": "LIF",
      "reason": "Labrador Iron Ore Royalty: sourced via this week's Globe and Mail technical scan as trading below the buy signal this week. Bearish-disqualified on that sourced basis.",
      "price_cad": null
    },
    {
      "ticker": "CCO",
      "reason": "Cameco: sourced via this week's Globe and Mail technical scan as trading below the buy signal this week, consistent with yesterday's exclusion (RSI 29.4, MACD bearish, failed setup_C). Bearish-disqualified again.",
      "price_cad": null
    },
    {
      "ticker": "DND",
      "reason": "Dye and Durham: sourced via this week's Globe and Mail technical scan as trading below the buy signal this week. Bearish-disqualified on that sourced basis.",
      "price_cad": null
    },
    {
      "ticker": "EFR",
      "reason": "Energy Fuels: sourced via this week's Globe and Mail technical scan as trading below the buy signal this week. Bearish-disqualified on that sourced basis.",
      "price_cad": null
    },
    {
      "ticker": "T",
      "reason": "Telus: sourced via this week's Globe and Mail technical scan as trading below the buy signal this week. Bearish-disqualified on that sourced basis.",
      "price_cad": null
    },
    {
      "ticker": "NG",
      "reason": "Novagold: sourced via this week's Globe and Mail technical scan as trading below the buy signal this week. Bearish-disqualified on that sourced basis.",
      "price_cad": null
    },
    {
      "ticker": "SU",
      "reason": "Suncor Energy (Energy). Resurfaced only via XEG top-holdings lookup -- recurring mega-cap name, not individually reconfirmed today (funnel_breadth.recurring_megacap_handling). Weekly reconfirmation runs Wednesdays.",
      "price_cad": null
    },
    {
      "ticker": "CNQ",
      "reason": "Canadian Natural Resources (Energy). Resurfaced only via XEG top-holdings lookup -- recurring mega-cap name, not individually reconfirmed today (funnel_breadth.recurring_megacap_handling). Weekly reconfirmation runs Wednesdays.",
      "price_cad": null
    },
    {
      "ticker": "CVE",
      "reason": "Cenovus Energy (Energy). Resurfaced only via XEG top-holdings lookup -- recurring mega-cap name, not individually reconfirmed today (funnel_breadth.recurring_megacap_handling). Weekly reconfirmation runs Wednesdays.",
      "price_cad": null
    },
    {
      "ticker": "IMO",
      "reason": "Imperial Oil (Energy). Resurfaced only via XEG top-holdings lookup -- recurring mega-cap name, not individually reconfirmed today (funnel_breadth.recurring_megacap_handling). Weekly reconfirmation runs Wednesdays.",
      "price_cad": null
    },
    {
      "ticker": "TOU",
      "reason": "Tourmaline Oil (Energy). Resurfaced only via XEG top-holdings lookup -- recurring mega-cap name, not individually reconfirmed today (funnel_breadth.recurring_megacap_handling). Weekly reconfirmation runs Wednesdays.",
      "price_cad": null
    }
  ]
}