{
  "scan_date": "2026-08-01",
  "macro_notes": "MANUAL PREVIEW RUN, not the automated cron job: today (Sat 2026-08-01) the TSX is closed; this scan was run interactively at the user's request, ahead of the next automated weekday run, because the trading account was just funded and the user wants candidates to review over the weekend. All technical/fundamental data screened is Friday 2026-07-31's close -- markets being closed today does not invalidate that data, it's the same EOD data the next automated scan would use as its most recent bar. active_mode confirmed 'aggressive' in screen_criteria.json; aggressive_overrides applied throughout (RSI band 35-72, min R:R 1:3, T1/T2/T3 tiers, 5/10-day time stops with 20-EMA-and-breakeven override, pyramid rule, 15% cash reserve). Step 1b (enrich incomplete positions): skipped -- open_positions is empty (clean-slate reset earlier today), nothing to enrich. Step 1c (resolve prior watchlist): skipped -- daily_snapshots/ was empty before this file, no prior watchlist exists to resolve. Step 1a lesson applied: retrospective.json's sole lessons_for_next_scan item was narrow_funnel (0 distinct tickers traded program-to-date). Applied by deliberately avoiding the 7 historically-overused tickers (CNQ, K, AGI, ENB, SU, BNS, QSR) as default picks -- none were deep-dived for individual confirmation today -- and instead sourcing broadly: 29 distinct tickers evaluated across 8 sectors (Financials, Technology, Industrials, Utilities, Real Estate, Energy, Materials, Consumer Discretionary), clearing funnel_breadth's min_candidates_evaluated_per_scan (15) and min_sectors_represented (5). Ran all 7 screener_sources entries plus 7 additional fallback searches (52-week-high lists, sector-specific breakout searches for banks/gold/utilities/industrials/REITs/consumer) per screener_outage_fallback, since the base screener queries returned mostly generic/qualitative results rather than per-ticker numeric screens. DATA-QUALITY FINDING (not a tooling failure -- a real result): WebSearch snippets could not reliably surface live numeric RSI-14/MACD/200-day-EMA values for individual TSX names, so I used WebFetch directly against investing.com's per-ticker technical-analysis pages to get real confirmed numbers for 8 candidates (TD, TA, CLS, ABX, TOU, EIF, KXS, X). Every one of those 8 failed at least one hard Step-3 gate on confirmed data: TD $168.04 vs 200MA $170.18 (below), TA $17.56 vs 200MA $19.26 (below, MACD -0.220), CLS $463.87 vs 200MA $474.52 (below, despite a bullish RSI 42.7 / MACD +1.95), EIF $125.55 vs 200MA $128.84 (below, MACD -0.02), X confirmed below its 200MA with earnings Aug 5 landing inside the 3-trading-day exclusion window, KXS showed a below-200-SMA sell signal plus conflicting earnings dates (one source: Aug 5, inside the exclusion window), ABX traded essentially AT its 200MA ($36.73 vs $36.73, MACD -0.03) -- too thin to call 'above' with confidence, TOU cleared its 200MA by only $0.09 (0.15%) with MACD solidly negative (-0.47) and a post-earnings selloff flagged as a red flag. This is consistent with real market context: the TSX Composite fell 0.79% on 2026-07-31 and gold miners sold off sharply the same day (Agnico Eagle -3%, Wheaton Precious Metals -2%+), pulling several names that financial media had framed as 'breakouts' (a Globe and Mail piece listed CIBC/Scotiabank/TD as on its 'positive breakouts list', and ChartMill separately called TD a 'perfect technical breakout') back under their 200-day averages by the time of individual verification -- so those qualitative breakout claims were not trusted at face value once TD's own individually-checked numbers contradicted them; CM/BNS/RY/BMO were left unconfirmed and excluded rather than carried forward on unverified framing. CSH.UN (Chartwell REIT) was excluded on a confirmed P/E of 1,732.66 -- screen_criteria.json's 9-35 P/E band has no FFO-based carve-out for REITs (whose GAAP P/E is routinely distorted by depreciation accounting), which is a real screening blind spot worth a future TODO for the Real Estate sector, not a red flag on Chartwell's actual business. Net result: zero new_buys and zero watchlist entries today. This is an explicitly valid outcome per Step 2 ('a day with zero new_buys is a valid outcome -- a day where you stopped searching early is not') -- 24 searches plus 8 direct technical-page fetches were run, well past the fallback minimum, and no candidate cleanly passed the above-200-day-EMA gate with confirmed numeric data. Step 5 (exit checks): skipped, no open positions to check. No lessons other than narrow_funnel were present in retrospective.json to apply.",
  "candidates_evaluated_count": 29,
  "sectors_evaluated": ["Financials", "Technology", "Industrials", "Utilities", "Real Estate", "Energy", "Materials", "Consumer Discretionary"],
  "lessons_applied": [
    "narrow_funnel (retrospective.json, 2026-08-01): 0 distinct tickers traded program-to-date, below the 15-ticker breadth target. Applied by deliberately not defaulting to the 7 historically-overused tickers (CNQ, K, AGI, ENB, SU, BNS, QSR) and instead evaluating 29 distinct tickers across 8 sectors, clearing funnel_breadth's min_candidates_evaluated_per_scan (15) and min_sectors_represented (5)."
  ],
  "signals": {
    "new_buys": [],
    "holds": [],
    "exits": [],
    "watchlist": []
  },
  "excluded": [
    { "ticker": "TD", "reason": "Confirmed via investing.com: price $168.04 vs 200-day MA $170.18 -- below the 200-day EMA/MA gate despite a positive MACD (+0.070) and neutral RSI (49.4). Conflicts with unrelated bullish 'perfect technical breakout' framing from ChartMill; individual numeric confirmation overrides that framing." },
    { "ticker": "CM", "reason": "Surfaced on a Globe and Mail 'positive breakouts list' alongside TD, but not individually confirmed with numeric RSI/MACD/200-EMA data within today's search budget; TD's own individual check contradicted its breakout framing, so this claim was not trusted at face value." },
    { "ticker": "BNS", "reason": "Same as CM -- surfaced on an unconfirmed 'positive breakouts' claim, not individually verified. Also one of the 7 historically-overused tickers; deliberately deprioritized rather than re-picked without fresh confirmation." },
    { "ticker": "RY", "reason": "Surfaced only as 'within 1% of record close', not individually confirmed against RSI/MACD/200-EMA criteria within today's search budget." },
    { "ticker": "BMO", "reason": "Surfaced only as 'within 1% of record close', not individually confirmed against RSI/MACD/200-EMA criteria within today's search budget." },
    { "ticker": "X", "reason": "TMX Group. Confirmed below its 200-day moving average (source: below-200MA note + 'Strong Sell' moving-average signal). Also has Q2 earnings landing Aug 5, 2026, which falls inside the 3-trading-day exclusion window from the next trading day (Mon Aug 3)." },
    { "ticker": "CLS", "reason": "Celestica. Confirmed via investing.com: price $463.87 vs 200-day MA $474.52 -- below the 200-day gate, despite an otherwise bullish RSI (42.7, in the 35-60 pullback zone) and MACD (+1.95, buy signal). Fails the hard above-200-EMA screen regardless of the other positive readings." },
    { "ticker": "MDA", "reason": "MDA Space. Surfaced via institutional-accumulation coverage but not individually confirmed with numeric technical data within today's search budget. Also reports Q2 earnings Aug 7, 2026 -- outside the 3-trading-day exclusion window but close enough to be a near-term earnings-risk overhang worth re-checking before any future entry." },
    { "ticker": "KXS", "reason": "Kinaxis. One source shows price below its 200-day SMA ($182.50, sell signal). Earnings date conflicting between sources (Aug 5 vs Aug 12) -- the Aug 5 reading would fall inside the 3-trading-day exclusion window, so treated as a real risk rather than resolved in the stock's favor." },
    { "ticker": "EIF", "reason": "Exchange Income Corp. Confirmed via investing.com: price $125.55 vs 200-day MA $128.84 (2.55% below) -- fails the above-200-EMA gate, MACD also negative (-0.02) despite a separate 'MACD buy signal' claim from another source." },
    { "ticker": "TA", "reason": "TransAlta. Confirmed via investing.com: price $17.56 vs 200-day MA $19.26 (8.8% below), MACD -0.220 (sell). Conflicts with a late-July news report of TA crossing above a $18.24 200-day MA -- current individually-verified data is below, so excluded rather than trusting the older article." },
    { "ticker": "CSH.UN", "reason": "Chartwell Retirement Residences. Confirmed P/E of 1,732.66 (stockanalysis.com) -- fails the 9-35 fundamental P/E band. Likely a GAAP-depreciation distortion typical of REITs (screen_criteria.json has no FFO-based carve-out for the Real Estate sector); flagged as a possible screening-methodology gap rather than a business red flag, but excluded under current rules as written." },
    { "ticker": "APR.UN", "reason": "Automotive Properties REIT. Not individually confirmed within today's search budget; same REIT P/E-distortion concern as CSH.UN likely applies and was not resolved." },
    { "ticker": "TOU", "reason": "Tourmaline Oil. Confirmed via investing.com: price $61.91 vs 200-day MA $61.82 -- only 0.15% above, too thin to treat as a confirmed 'above 200 EMA' pass. MACD solidly negative (-0.47). Also fell 2.98% on its own post-earnings print (Q2 beat on EPS but sold off), a red-flag pattern." },
    { "ticker": "ABX", "reason": "Barrick. Confirmed via investing.com: price $36.73 vs 200-day MA $36.73 -- essentially equal, not confirmable as 'above'. MACD -0.03 (borderline negative). RSI 48.1 (neutral, in-band) was the only clean confirmation; not enough to pass the entry filter." },
    { "ticker": "AEM", "reason": "Agnico Eagle. Fell more than 3% on 2026-07-31 amid a broader gold-sector pullback (gold price move, Barrick/WPM also down). Not individually confirmed against RSI/MACD/200-EMA within today's budget; deprioritized after the sharp single-day drop." },
    { "ticker": "WPM", "reason": "Wheaton Precious Metals. Fell more than 2% on 2026-07-31 in the same gold-sector pullback as AEM. Not individually confirmed; deprioritized after the drop." },
    { "ticker": "Montage Gold", "reason": "Up 61.19% YTD as of late June per one source -- likely extended after a large run; not individually confirmed against RSI/MACD/200-EMA within today's budget." },
    { "ticker": "SHOP", "reason": "Shopify. Reported as down ~0.5% on 2026-07-31 alongside broader software-stock weakness; not individually confirmed within today's budget." },
    { "ticker": "CSU", "reason": "Constellation Software. Reported as down ~0.5% on 2026-07-31 alongside broader software-stock weakness; not individually confirmed within today's budget." },
    { "ticker": "SU", "reason": "Suncor. Surfaced via XEG (Energy ETF) top-holdings lookup; one of the 7 historically-overused tickers, deliberately deprioritized rather than re-picked without fresh individual confirmation." },
    { "ticker": "CNQ", "reason": "Canadian Natural Resources. Surfaced via XEG top-holdings lookup; the ticker involved in the prior overdue-exit incident (now resolved via clean-slate reset). Deprioritized and not individually confirmed today, consistent with broadening away from historically-overused names." },
    { "ticker": "CVE", "reason": "Cenovus Energy. Surfaced via XEG top-holdings lookup; not individually confirmed against RSI/MACD/200-EMA within today's budget." },
    { "ticker": "IMO", "reason": "Imperial Oil. Surfaced via XEG top-holdings lookup; not individually confirmed within today's budget." },
    { "ticker": "FTS", "reason": "Fortis. Reported up ~16% YTD -- likely extended after a large run; not individually confirmed within today's budget." },
    { "ticker": "EMA", "reason": "Emera. Surfaced as a generically 'attractive' utility pick; not individually confirmed against RSI/MACD/200-EMA within today's budget." },
    { "ticker": "CU", "reason": "Canadian Utilities. Surfaced as a generic dividend-growth pick; not individually confirmed within today's budget." },
    { "ticker": "MG", "reason": "Magna International. Consumer Discretionary sector reported down ~5% YTD with only mild consolidation; not individually confirmed and deprioritized given weak sector momentum." },
    { "ticker": "LNR", "reason": "Linamar. Same Consumer Discretionary sector weakness as Magna; not individually confirmed and deprioritized." }
  ]
}
