{
  "verdicts": [
    {
      "canonical_ticker": "AAPL",
      "display_name": "AAPL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.56,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "AAPL thesis is constructive for a held position and possible staged add: quality, free cash flow, buybacks, China shipment recovery, services durability, and improving momentum support an overweight bias. Timing is not actionable now because the plan explicitly says WAIT and requires either a controlled 260-261 support test with weaker selling pressure or a confirmed close above 266.56 with volume; data health is also degraded/stale, so current readiness should remain below action threshold.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is only DEVELOPING, not confirmed.",
        "Immediate execution is blocked by stale or degraded data, with no successful same-day intraday snapshot and delayed/non-realtime quote context.",
        "AAPL is near 270-275 resistance while ATR around 5.90 indicates elevated short-term volatility.",
        "Valuation is demanding, with trailing P/E around 33.3, forward P/E around 28.3, and PEG around 2.37.",
        "Invalidation levels are close: failure of 260-261 support, break of 256.48 VWMA, or decisive loss of the 251.51-251.83 200-day SMA zone."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "setup_developing_not_confirmed",
        "requires_support_or_breakout_confirmation",
        "degraded_stale_data",
        "near_resistance_high_volatility",
        "valuation_risk"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "COST",
      "display_name": "COST",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.65,
      "timing_readiness": 0.34,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.55,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "COST has a constructive medium-term quality thesis supported by strong fundamentals, cash flow, ROE, and dividend growth, but the current setup is not actionable. Price remains below the 994-1000 resistance cluster and key short/intermediate moving averages, momentum is not yet improving enough, and execution data is degraded. Treat as watch-only until a confirmed close above 1000 with volume and MACD improvement, or a defended 974-980 support retest with RSI/MACD improvement.",
      "counter_evidence": [
        "Current price is below the 10-day EMA, 50-day SMA, and VWMA, so upside confirmation is incomplete.",
        "MACD histogram is negative and RSI is neutral, not an oversold or momentum-confirmed buy signal.",
        "Suggested action is WATCH with entry_action WAIT and setup_quality DEVELOPING.",
        "Execution feasibility is blocked by stale or degraded data, with delayed quote and no real-time provider capability.",
        "Valuation is elevated, including PER near 51x, forward PER near 44x, and PEG above 5, increasing downside sensitivity."
      ],
      "reason_codes": [
        "constructive_fundamental_thesis",
        "entry_wait_state",
        "technical_confirmation_missing",
        "below_resistance_cluster",
        "negative_macd_histogram",
        "neutral_rsi",
        "degraded_execution_data",
        "starter_only_if_triggered",
        "elevated_valuation_risk"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETHU",
      "display_name": "ETHU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.0,
      "timing_readiness": 0.0,
      "trigger_type": "watch_only",
      "trigger_horizon": "unknown",
      "trigger_quality": 0.0,
      "thesis_state": "neutral_watch",
      "semantic_summary": "Held ETHU position has no current run analysis, no explicit investment plan, no trigger conditions, and rule-only HOLD/WAIT interpretation. This supports monitoring only, not an actionable timing setup.",
      "counter_evidence": [
        "Position is currently held, but missing analysis prevents confirming whether the hold thesis remains valid.",
        "No news, disclosures, social, macro, trigger, volume, VWAP, or follow-through evidence is provided.",
        "Suggested triggered action is NONE and execution feasibility is not actionable now."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "not_actionable_now",
        "insufficient_data_coverage"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETN",
      "display_name": "ETN",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.36,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.56,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ETN has a constructive medium-term overweight thesis supported by earnings, free cash flow, debt reduction, AI power infrastructure exposure, and analyst support, but the table explicitly says WAIT/HOLD rather than add now. Timing is incomplete because price is near recent highs, momentum is cooling, relative volume is not confirmed, data is degraded/stale, and the add case requires support defense at 388-390 or a 400/407.01 reclaim with volume plus earnings confirmation.",
      "counter_evidence": [
        "Entry action is WAIT and suggested action now is HOLD, so no immediate add signal is confirmed.",
        "Execution feasibility is blocked by stale or degraded data, with quote delay and provider not realtime capable.",
        "Price is near recent highs with elevated valuation, including trailing P/E around 37.6 and P/B around 7.8.",
        "Momentum is cooling as MACD histogram has declined and RSI has softened, while relative volume confirmation is false.",
        "Q1 earnings, orders, backlog, margins, and data-center/medium-voltage demand still need confirmation."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "add_only_if_triggered",
        "breakout_needs_volume_confirmation",
        "support_defense_required",
        "earnings_confirmation_pending",
        "momentum_cooling",
        "valuation_risk_high",
        "stale_degraded_data",
        "relative_volume_not_confirmed"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "FANG",
      "display_name": "FANG",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.56,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "Medium-term FANG thesis is constructive on Permian scale, cash flow, oil leverage, debt reduction, shareholder returns, and analyst support, but current timing is not confirmed. The plan explicitly says WAIT: price remains below key short-term confirmation levels, RSI is below 50, MACD is negative, and recent high-volume weakness leaves the setup developing rather than executable. A starter is only justified after a daily close above 191.9-192 with above-average volume and RSI recovery, or a successful 181-182 support test with momentum repair.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not an immediate buy.",
        "Price is below the 10-day EMA near 188.8 and VWAP near 191.9, so breakout confirmation has not occurred.",
        "RSI 48.66 and MACD histogram -1.88 indicate momentum has not yet recovered.",
        "Recent high-volume weakness and the 2026-04-08 low near 175.14 remain unresolved technical risks.",
        "Execution timing state is DEGRADED with delayed/non-realtime data, reducing current actionability."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_not_confirmed",
        "breakout_trigger_defined",
        "momentum_below_confirmation",
        "support_test_alternative",
        "degraded_data_timing",
        "risk_markers_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GEV",
      "display_name": "GEV",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.54,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GEV has a constructive medium-term thesis supported by power demand, grid and gas turbine exposure, improving profitability, and an intact rising trend, but current execution is not ready. The plan explicitly says WAIT, avoids chasing near the 985-1007 resistance zone, and requires either a volume-supported close above 1007.38 or a controlled 956-960 pullback/reversal before starter sizing. Stale or degraded execution data further reduces timing confidence.",
      "counter_evidence": [
        "Entry action is WAIT and suggested action now is WATCH, not immediate buy.",
        "Price is near the 985-1007 resistance zone while MACD histogram is fading and RSI has cooled.",
        "Relative volume confirmation is not present and the required breakout volume condition has not been met.",
        "Execution feasibility is blocked by stale or degraded data, including delayed quote context and no realtime-capable provider.",
        "Valuation is demanding, with elevated P/E and P/B, leaving limited room for disappointment.",
        "Vineyard Wind legal and quality-risk uncertainty remains an unresolved downside catalyst."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "volume_confirmation_missing",
        "near_resistance_zone",
        "momentum_cooling",
        "stale_or_degraded_execution_data",
        "starter_only_if_triggered",
        "valuation_risk_elevated",
        "legal_overhang_present"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "GLDM",
      "display_name": "GLDM",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.0,
      "timing_readiness": 0.0,
      "trigger_type": "watch_only",
      "trigger_horizon": "unknown",
      "trigger_quality": 0.0,
      "thesis_state": "low_quality",
      "semantic_summary": "GLDM is a held position, but this run contains no substantive instrument analysis, no trigger conditions, no investment plan, and no portfolio manager decision. The only defensible interpretation is maintain/watch, with no actionable timing signal.",
      "counter_evidence": [
        "Missing analysis for a held position.",
        "No company news, disclosures, macro items, social input, or structured decision were available.",
        "Trigger conditions and trigger profile are empty, and execution feasibility is not actionable now."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_actionable_trigger",
        "rule_only_decision",
        "insufficient_data_coverage",
        "not_actionable_now"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "GOOGL",
      "display_name": "GOOGL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.46,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GOOGL has a constructive medium-term overweight thesis based on profitability, cash generation, price above key moving averages, and improving momentum, but the action is explicitly WAIT/HOLD. Timing is not ready because the setup requires either support confirmation around 317.24-321.31 with 10 EMA 320.61 holding/reclaimed, or a volume-backed daily close above 337.12. Near-term earnings and AI capex guidance remain important event risks, and current data quality is degraded/stale.",
      "counter_evidence": [
        "Immediate entry is explicitly not justified; current recommendation is WAIT/HOLD rather than add now.",
        "RSI near 70.19 and elevated ATR 8.29 indicate overbought and volatile short-term conditions after a fast rally from 274.34 to the mid-330s.",
        "Breakout above 337.12 has not been confirmed with increased volume, and relative volume is not currently supportive.",
        "Q1 results and AI capex guidance could invalidate the bullish allocation view if margin or free cash flow pressure appears.",
        "Execution feasibility is marked blocked_stale_or_degraded_data with delayed quote/provider limitations."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "trigger_not_confirmed",
        "needs_volume_backed_breakout",
        "support_reclaim_required",
        "overbought_rsi",
        "earnings_capex_event_risk",
        "stale_or_degraded_data",
        "relative_volume_not_confirmed"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LHX",
      "display_name": "LHX",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LHX has a constructive medium-term defense thesis supported by rocket motor capacity expansion, reported government support, defense demand, free cash flow improvement, and debt reduction, but timing is not actionable now. The current setup is still developing inside the 340-365 range with neutral RSI, faded MACD, no confirmed breakout volume, and degraded/stale execution data. Existing exposure can be held, but adds should wait for a daily close above 365 on materially stronger volume or a controlled pullback that holds 340 and reverses with improving momentum.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and setup quality is DEVELOPING rather than confirmed.",
        "Price remains in the middle of the 340-365 range and has not cleared 365 resistance with volume.",
        "RSI around 48.79 and MACD around 0.28 indicate unconfirmed momentum.",
        "Execution feasibility is blocked by stale or degraded data, with quote delay and no real-time provider capability.",
        "Valuation and margin/FCF quality concerns leave limited tolerance for disappointment."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_state",
        "range_bound_price_action",
        "breakout_not_confirmed",
        "neutral_momentum",
        "volume_confirmation_required",
        "degraded_execution_data",
        "event_and_fundamental_confirmation_needed"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LLY",
      "display_name": "LLY",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LLY has a constructive medium-term overweight thesis supported by strong growth, margins, EPS momentum, and Foundayo-related catalysts, but timing is not actionable now. The plan explicitly waits for confirmation: preferably a daily close above 923-925 with above-average volume, or a successful defense of 902-903 followed by improving RSI/MACD and higher lows. Current price is only slightly above the 200-day area, ATR is elevated, relative volume is not confirmed, and execution data is degraded/stale, so this remains a watchlist setup rather than an entry.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Recent close near 905.03 is only marginally above 200-day support at 902-903, while ATR around 28 points is much larger than the support cushion.",
        "Primary upside trigger at 923-925 has not been reclaimed with volume confirmation.",
        "Relative volume is not confirmed and execution feasibility is marked blocked_stale_or_degraded_data with delayed/non-realtime quote conditions.",
        "Break below 902-903 or decisive break below 888 would invalidate the tactical setup.",
        "Free cash flow, capex, leverage, FDA label/timing risk, and GLP-1 competition remain meaningful thesis risks."
      ],
      "reason_codes": [
        "bullish_thesis_wait_entry",
        "breakout_not_confirmed",
        "support_test_near_200dma",
        "elevated_atr_vs_support_cushion",
        "volume_confirmation_missing",
        "stale_or_degraded_execution_data",
        "event_and_fcf_risks_present"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "LRCX",
      "display_name": "LRCX",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.34,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.46,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LRCX has a constructive medium-term bullish thesis supported by AI, memory and foundry capex demand, strong profitability, free cash flow, and an uptrend above key moving averages, but current execution is not confirmed. The plan explicitly says WAIT and requires either a controlled pullback near 252.84 with RSI above 55 and fading selling volume, a high-volume breakout above 272.41, or post-earnings/export-control confirmation before starting a position.",
      "counter_evidence": [
        "Immediate entry is explicitly marked WAIT with setup quality DEVELOPING, not actionable now.",
        "Price is near the 52-week high with elevated valuation metrics including trailing P/E near 53, forward P/E near 36, and P/B above 32.",
        "MACD histogram is decelerating and ATR around 11.85 implies high short-term volatility.",
        "Q3 earnings on 2026-04-22 and BIS export-control uncertainty remain unresolved event risks.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, quote delay is high, and relative volume confirmation is not present."
      ],
      "reason_codes": [
        "bullish_thesis_wait_entry",
        "confirmation_required",
        "event_risk_before_entry",
        "extended_near_highs",
        "degraded_data_timing",
        "volume_confirmation_missing"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "MU",
      "display_name": "MU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.36,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "MU has a constructive medium-term thesis from AI/HBM and advanced DRAM demand, strong margins, cash generation, and improving technical trend, but current timing is not actionable. The plan explicitly says WAIT because price is extended after a sharp rebound and near 471.14 resistance; entry needs either a volume-confirmed close above 471.14 with follow-through or a confirmed support retest near 424-426. Degraded/stale execution data further argues against immediate action.",
      "counter_evidence": [
        "Entry action is WAIT and suggested action now is WATCH, not buy.",
        "Price is extended after roughly a 42% rebound from the 2026-03-30 low and is near 471.14 resistance.",
        "Execution feasibility is blocked by stale or degraded data, with delayed quote data and no realtime provider capability.",
        "Intraday confirmation details are incomplete: session VWAP and relative volume checks are not confirmed and rule fields are blank.",
        "Memory pricing, margin rollover, receivables conversion, capex burden, sector pressure, and insider selling remain material invalidation risks."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_confirmation_required",
        "pullback_support_confirmation_alternative",
        "extended_near_resistance",
        "degraded_stale_execution_data",
        "incomplete_intraday_confirmation",
        "high_volatility_atr_beta",
        "risk_invalidation_levels_defined"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "NET",
      "display_name": "NET",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.64,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.56,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "NET has a constructive medium-term overweight thesis supported by strong revenue growth, high gross margin, positive free cash flow, AI/security partnership narratives, and supportive analyst targets. Timing is not actionable now because the plan explicitly says WAIT, price remains below key VWMA/EMA/SMA resistance levels, MACD is still negative, RSI is not confirming, volume confirmation is absent, and execution data is degraded/stale. A reduced add becomes relevant only after a daily close above roughly $192.70-$194.37 on above-average volume, with stronger confirmation above $202.01 and support retest.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price is below VWMA $192.70, 10-day EMA $193.83, 50-day SMA $194.37, and 200-day SMA $202.01.",
        "MACD remains negative and RSI around 49.58 is not a bullish momentum confirmation.",
        "Relative volume is not confirmed and the data health notes degraded/stale execution conditions with delayed quote data.",
        "Valuation and risk evidence include high forward P/E, high P/B, PEG above 2, SBC/dilution concerns, insider selling, elevated beta, and high ATR."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "below_key_moving_averages",
        "momentum_not_confirmed",
        "volume_confirmation_missing",
        "degraded_stale_execution_data",
        "high_valuation_risk",
        "reduced_size_only_if_triggered"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "NVDA",
      "display_name": "NVDA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.36,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.56,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "NVDA thesis is constructive for an existing overweight hold: price has reclaimed key moving averages, momentum has improved, volume recently supported the rebound, and AI/fundamental evidence remains favorable. However, the action is explicitly WAIT rather than add now because the stock has rallied sharply, RSI and volatility are elevated, intraday confirmation is unavailable, data timing is degraded, and the add condition still requires either a daily close above the 196.51-200.40 breakout zone with sustained volume or a controlled pullback/reversal near 189.12.",
      "counter_evidence": [
        "Entry action is WAIT and new capital is explicitly blocked until confirmation.",
        "Execution feasibility now is degraded due to stale or delayed data, with no intraday snapshot used and quote delay reported.",
        "RSI near 68.90, ATR 5.27, beta 2.335, and a sharp rebound from 165.17 to 198.87 increase chase and mean-reversion risk.",
        "Relative volume is not confirmed despite prior high-volume recovery days.",
        "Invalidation levels remain close: loss of 189.12 with MACD histogram deterioration would reduce tactical exposure, and a close below 181.52-182.74 would impair the medium-term thesis."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_for_confirmation",
        "breakout_trigger_defined",
        "pullback_trigger_defined",
        "stale_or_degraded_execution_data",
        "intraday_confirmation_missing",
        "elevated_volatility_and_rsi",
        "held_position_hold_not_add_now"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ORCL",
      "display_name": "ORCL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.62,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ORCL has a constructive medium-term AI/OCI thesis with identifiable catalysts, but current execution timing is not ready. The stock has already rebounded sharply into overbought/upper-band conditions, remains below the 200-day average, and the plan explicitly requires either a confirmed close above 171 with above-average volume and follow-through or a controlled pullback to 153-157 that holds above the 50-day average before any starter position.",
      "counter_evidence": [
        "Immediate entry action is WAIT and suggested action now is WATCH, not buy.",
        "Price recently rebounded from 138.09 to 169.81 and is near the Bollinger upper band around 170.71 with RSI 70.88.",
        "Longer-term trend repair is incomplete while price remains below the 200-day SMA near 214.26.",
        "Free cash flow and leverage risks are material, including deeply negative FCF and high debt tied to AI/data-center investment.",
        "Execution feasibility is marked blocked_stale_or_degraded_data with delayed/non-realtime quote conditions."
      ],
      "reason_codes": [
        "constructive_ai_oci_thesis",
        "entry_wait_state",
        "breakout_not_confirmed",
        "pullback_not_confirmed",
        "overbought_after_sharp_rebound",
        "below_200_day_trend",
        "fcf_leverage_risk",
        "degraded_or_stale_execution_data"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSLA",
      "display_name": "TSLA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.57,
      "timing_readiness": 0.32,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.56,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSLA has a constructive but still unconfirmed bullish hold setup. Existing exposure can be maintained, but new/additional buying is not ready until price closes above the 398 resistance area, holds it on the next session, and volume quality remains supportive; the 2026-04-22 update is an additional confirmation gate. Current timing is incomplete because the plan explicitly says WAIT, resistance near the 200 SMA/upper Bollinger band remains unresolved, and data health is degraded/stale.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price remains below the key 398 resistance cluster near the 200 SMA and upper Bollinger band.",
        "Execution feasibility now is blocked_stale_or_degraded_data with a delayed quote and no realtime-capable provider.",
        "Valuation is stretched with P/E 356.8 and forward P/E 140.3, while revenue, margin, FCF, and inventory risks remain active.",
        "Failure at 398 followed by a close below 390 would trigger partial reduction, and a decisive break below 368 would invalidate tactical exposure."
      ],
      "reason_codes": [
        "constructive_hold_but_wait",
        "breakout_not_confirmed",
        "next_session_support_required",
        "event_confirmation_pending",
        "degraded_stale_data",
        "resistance_cluster_near_398",
        "valuation_and_fundamental_risks"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSM",
      "display_name": "TSM",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSM has a constructive medium-term overweight thesis supported by strong Q1 profit growth, raised revenue outlook, AI and 3nm demand, and price still above key moving averages. Timing is not actionable now because the stated action is WAIT, price is near 380-385 resistance after a sharp rebound, momentum has cooled, and new/add exposure requires either 362-365 support confirmation or a confirmed close above 380-385 with MACD and volume follow-through.",
      "counter_evidence": [
        "Immediate entry is explicitly deferred; entry_action is WAIT and setup_quality is DEVELOPING.",
        "Price is near the 380-385 resistance zone after a rapid rebound from 316.50 to 375.10.",
        "Momentum has cooled, with RSI easing from 66.01 to 55.44 and MACD slipping from 7.39 to 7.11.",
        "Execution feasibility is degraded by stale or delayed data, with quote_delay_seconds around 3999 and provider_realtime_capable false.",
        "A break below 350-353 on a closing basis would invalidate the tactical setup."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_required",
        "resistance_nearby",
        "support_or_breakout_confirmation_needed",
        "momentum_cooling",
        "stale_degraded_execution_data",
        "existing_position_hold_not_add"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VRT",
      "display_name": "VRT",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "VRT has a constructive medium-term overweight thesis supported by strong trend, AI data-center demand, earnings and free cash flow strength, but the action plan explicitly says to hold existing shares and wait before adding. Timing is not confirmed because the required daily close above 310.51-312.46 with volume, or a supported pullback to 287-290 with improving RSI, has not occurred. Stale/degraded execution data and weak relative-volume confirmation further reduce readiness.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Execution feasibility now is blocked by stale or degraded data, with quote delay and no real-time-capable provider.",
        "Relative volume is not confirmed despite the breakout trigger requiring above-average volume.",
        "Valuation and volatility risks are elevated, including trailing P/E near 86, forward P/E near 36, P/B near 28.5, beta above 2, and ATR near 4.6% of price.",
        "Earnings and guidance event risk remains important before meaningful additional buying."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "pullback_support_not_confirmed",
        "volume_confirmation_missing",
        "stale_degraded_execution_data",
        "high_valuation_volatility_risk",
        "event_risk_pending",
        "held_position_hold_not_add"
      ],
      "review_required": false
    }
  ]
}