{
  "_comment": "Added 2026-08-31. Candidate list + thresholds for sleeve_monitor.py, the mechanical intraday poller feeding the high-risk options sleeve (see CLAUDE.md 'High-Risk Options Sleeve'). This is a SEPARATE system from the core swing-trade equity system -- these tickers are chosen for deep, liquid options markets (large caps only), not for swing-trade setup quality. Static seed list; refine over time as names prove liquid/illiquid in practice.",
  "tickers": [
    "RY.TO", "TD.TO", "BMO.TO", "BNS.TO", "CM.TO",
    "SU.TO", "CNQ.TO", "CVE.TO", "ENB.TO",
    "AEM.TO", "ABX.TO", "WPM.TO",
    "SHOP.TO", "MFC.TO", "SLF.TO", "CNR.TO", "CP.TO"
  ],
  "company_names": {
    "_comment": "Display names for the dashboard's sleeve mover tooltip only -- not read by sleeve_monitor.py or sleeve_reconfirm_prompt.md. Keep in sync with tickers above when the candidate list changes.",
    "RY.TO": "Royal Bank of Canada",
    "TD.TO": "Toronto-Dominion Bank",
    "BMO.TO": "Bank of Montreal",
    "BNS.TO": "Bank of Nova Scotia",
    "CM.TO": "Canadian Imperial Bank of Commerce",
    "SU.TO": "Suncor Energy",
    "CNQ.TO": "Canadian Natural Resources",
    "CVE.TO": "Cenovus Energy",
    "ENB.TO": "Enbridge",
    "AEM.TO": "Agnico Eagle Mines",
    "ABX.TO": "Barrick Gold",
    "WPM.TO": "Wheaton Precious Metals",
    "SHOP.TO": "Shopify",
    "MFC.TO": "Manulife Financial",
    "SLF.TO": "Sun Life Financial",
    "CNR.TO": "Canadian National Railway",
    "CP.TO": "Canadian Pacific Kansas City"
  },
  "thresholds": {
    "momentum_threshold_pct": 2.5,
    "_momentum_threshold_pct_comment": "Today's intraday % move (tmx_quotes changePct) must meet/exceed this before a ticker is even considered a candidate.",
    "acceleration_lookback_polls": 3,
    "_acceleration_lookback_polls_comment": "At the 5-min poll cadence this is a ~15 min lookback window.",
    "acceleration_threshold_pct": 0.75,
    "_acceleration_threshold_pct_comment": "changePct must have grown by at least this much over the lookback window -- i.e. genuinely accelerating right now, not a stock that gapped up at the open and has been flat since. This is a price-only proxy for setup_D_momentum's volume-acceleration criterion -- tmx_quotes.py's quote doesn't carry volume, so this mechanical layer can't check it. The real volume/RSI/MACD check happens in sleeve_reconfirm_prompt.md via Questrade before any alert claims a genuine setup."
  },
  "sleeve_capital_cad": 1000,
  "_sleeve_capital_cad_comment": "Hard-capped high-risk sleeve, ~39% of the $2,555 CAD account as of 2026-08-31 -- set at Neil's explicit request for a 'meaningful chunk' allocation. This number is informational for sizing suggestions in ntfy alerts; sleeve_ledger.json is the actual capital ledger.",
  "max_premium_per_idea_pct_of_sleeve": 25,
  "_max_premium_per_idea_pct_of_sleeve_comment": "Suggested cap per single option idea (25% of $1000 = $250) -- keeps one bad pick from vaporizing the whole sleeve. This is a suggestion surfaced in the alert, not an enforced guardrail, since no order is placed programmatically -- Neil is executing manually within minutes of the alert."
}
