{
  "verdicts": [
    {
      "canonical_ticker": "AAPL",
      "display_name": "AAPL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "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": "AAPL thesis is constructive for an existing held position: quality, cash flow, buybacks, China shipment recovery, services durability, and improving momentum support an overweight bias. Timing is not yet confirmed because the recommendation is explicitly WAIT/HOLD until either a controlled 260-261 support retest with fading selling pressure or a 266.56 volume-backed close occurs. Stale/degraded execution data and lack of intraday confirmation further argue against immediate action.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Immediate execution is marked blocked_stale_or_degraded_data with no intraday snapshot used.",
        "Valuation is elevated with trailing P/E around 33.3, forward P/E around 28.3, and PEG around 2.37.",
        "Price is near 270-275 resistance and ATR near 5.90 implies elevated short-term volatility.",
        "China recovery, services growth, margins, and AI device demand still require earnings or event confirmation."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_state",
        "setup_developing_not_confirmed",
        "clear_price_triggers_defined",
        "volume_confirmation_required",
        "stale_or_degraded_execution_data",
        "intraday_confirmation_missing",
        "valuation_risk_elevated",
        "nearby_resistance_and_high_atr",
        "event_confirmation_pending"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "COST",
      "display_name": "COST",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "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 setup is not actionable now. Price remains below the 994-1000 resistance and key short/intermediate moving averages, momentum is still negative, and entry requires either a confirmed reclaim of 994-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 the stated breakout trigger has not occurred.",
        "MACD histogram remains negative and RSI is neutral rather than an oversold reversal signal.",
        "High valuation multiples and thin margins leave the stock vulnerable to disappointment in traffic, membership, sales, or margin data.",
        "Execution feasibility is flagged as blocked by stale or degraded data, so timing confirmation should not be treated as live."
      ],
      "reason_codes": [
        "constructive_fundamental_thesis",
        "entry_wait_state",
        "breakout_not_confirmed",
        "support_retest_not_confirmed",
        "negative_momentum",
        "below_key_moving_averages",
        "valuation_risk_elevated",
        "stale_or_degraded_data"
      ],
      "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": "low_quality",
      "semantic_summary": "Held ETHU position has no current analysis, no trigger conditions, and rule-only HOLD/WAIT guidance. There is insufficient evidence for a constructive thesis or actionable timing setup, so this should remain watch-only pending fresh analysis.",
      "counter_evidence": [
        "Missing analysis for held position",
        "No company news, disclosures, social, or macro coverage in this run",
        "No trigger conditions or triggered action provided",
        "Execution feasibility is not actionable now"
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "insufficient_data_coverage",
        "not_actionable_now"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "ETN",
      "display_name": "ETN",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ETN has a constructive medium-term thesis supported by fundamentals, cash flow, debt reduction, AI/grid infrastructure exposure, and analyst target increases, but the current action is WAIT/HOLD rather than add. Timing is not confirmed because price is near recent highs, momentum is cooling, valuation leaves little room for disappointment, and adds require 388-390 support defense or a 400/407.01 reclaim with volume confirmation, plus earnings validation.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and current suggested action is HOLD, not immediate add.",
        "Price is near recent highs with elevated ATR, making chase risk unfavorable.",
        "MACD histogram is weakening and RSI has cooled, so momentum confirmation is incomplete.",
        "Valuation is demanding with trailing P/E around 37.6, forward P/E around 25.3, and P/B around 7.8.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, and Q1 earnings/order/backlog/margin confirmation is still pending."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait",
        "breakout_or_support_confirmation_needed",
        "volume_confirmation_required",
        "momentum_cooling",
        "valuation_risk",
        "earnings_event_pending",
        "held_position_core_hold",
        "stale_or_degraded_data"
      ],
      "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.74,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "Medium-term FANG thesis is constructive, supported by low-cost Permian assets, cash-flow generation, debt reduction/shareholder returns, and oil-price leverage, but the table explicitly says to wait. Current timing is not actionable because price remains below the 10-day EMA and VWAP, RSI is below 50, MACD momentum is negative, and recent high-volume weakness has not been repaired. Entry requires confirmation, preferably a daily close above 191.9-192 with above-average volume and RSI reclaiming 50, or a successful 181-182 support test without further high-volume downside.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price is below the 10-day EMA near 188.8 and VWAP near 191.9.",
        "RSI is below 50 and MACD histogram remains negative.",
        "Recent high-volume weakness on 2026-04-14 suggests sellers are still active.",
        "Execution feasibility is flagged as blocked_stale_or_degraded_data, with no intraday snapshot used.",
        "A close below 181 or break of 175.14 would invalidate the tactical setup."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_state",
        "breakout_not_confirmed",
        "momentum_below_threshold",
        "price_below_vwap",
        "support_test_pending",
        "stale_or_degraded_data",
        "defined_risk_markers"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GEV",
      "display_name": "GEV",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GEV has a constructive medium-term thesis supported by power demand, grid/gas turbine exposure, improving profitability, and an intact uptrend, but execution timing is not ready. The plan explicitly says to wait rather than buy now because price is near the 985-1007 resistance area, momentum is cooling, valuation is demanding, and intraday confirmation was unavailable. Action becomes reasonable only after a volume-supported close above 1007.38 or a confirmed bullish reversal from the 956-960 support area; a 920 test is watch-only unless stabilization appears.",
      "counter_evidence": [
        "Entry action is WAIT and current suggested action is WATCH, not buy now.",
        "Price is near the 985-1007 resistance zone while MACD histogram is fading and RSI has cooled.",
        "Intraday confirmation was unavailable and execution feasibility is marked blocked_stale_or_degraded_data.",
        "Valuation is demanding with roughly 43x forward P/E and limited room for disappointment.",
        "Vineyard Wind liability, blade defect, cash flow quality, and backlog execution risks remain unresolved."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_not_actionable_now",
        "breakout_or_support_confirmation_required",
        "near_resistance_momentum_cooling",
        "stale_or_degraded_execution_data",
        "valuation_and_legal_risk"
      ],
      "review_required": false
    },
    {
      "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": "neutral_watch",
      "semantic_summary": "Held GLDM position has no current analysis, no trigger conditions, no event or breakout confirmation, and rule-only guidance is HOLD/WAIT. This is a neutral watch rather than an actionable thesis.",
      "counter_evidence": [
        "Missing analysis for a held position.",
        "No trigger conditions were provided.",
        "Data coverage is effectively absent with no company news, disclosures, social, or macro inputs.",
        "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": true
    },
    {
      "canonical_ticker": "GOOGL",
      "display_name": "GOOGL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GOOGL has a constructive medium-term overweight thesis supported by profitability, cash flow, price above key moving averages, and improving momentum, but timing is not actionable now. The plan explicitly says WAIT/HOLD, avoid chasing after a fast rally, and only add after support around 317.24-321.31/10 EMA 320.61 is confirmed or after a volume-backed daily close above 337.12; Q1 and AI capex guidance are also important confirmation events.",
      "counter_evidence": [
        "Entry action is WAIT and current suggested action is HOLD, not buy/add now.",
        "RSI around 70.19 and elevated ATR indicate near-term overbought and volatile conditions after a rapid rebound from 274.34 to the mid-330s.",
        "Valuation is demanding around 31x TTM earnings, with material AI capex, depreciation, margin, and free cash flow risks.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, so immediate timing confidence should be discounted.",
        "Breakout above 337.12 has not been confirmed with volume, and support confirmation near 317.24-321.31 has not occurred."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "held_position_hold_only",
        "clear_add_triggers_defined",
        "breakout_not_confirmed",
        "support_confirmation_pending",
        "overbought_rsi",
        "elevated_atr",
        "earnings_capex_event_risk",
        "stale_or_degraded_data"
      ],
      "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.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LHX has a constructive medium-term defense thesis supported by rocket motor expansion, government support, defense demand, free cash flow improvement, and debt reduction, but the action timing is not confirmed. Current guidance is to hold existing exposure and avoid adding while price remains mid-range between 340 and 365 with neutral RSI and faded MACD. Add only after a confirmed close above 365 on materially stronger volume, or after a controlled pullback that holds 340 and reverses with improving volume.",
      "counter_evidence": [
        "Entry action is explicitly WAIT, not immediate add.",
        "Price remains inside the 340-365 range and near the middle of the box rather than breaking out.",
        "RSI around 48.79 and MACD near 0.28 indicate incomplete momentum confirmation.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, so live timing confidence should be discounted.",
        "Margin recovery, repeatable free cash flow quality, and order conversion still require confirmation."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait",
        "range_bound_price_action",
        "momentum_not_confirmed",
        "breakout_trigger_required",
        "event_confirmation_pending",
        "stale_or_degraded_execution_data",
        "held_position_hold_not_add"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LLY",
      "display_name": "LLY",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LLY has a constructive medium-term overweight thesis supported by strong growth, margins, EPS expansion, and Foundayo-related catalysts, but the current action is WAIT because price is only marginally above the 200-day area near 902-903 and has not reclaimed the preferred 923-925 confirmation zone with volume. A starter position is only semantically justified after a confirmed breakout/reclaim or a clearer support hold with improving RSI/MACD.",
      "counter_evidence": [
        "Current price near 905 is too close to 200-day support at 902-903 relative to ATR of about 28, making immediate entry poorly confirmed.",
        "Entry action is explicitly WAIT and setup quality is DEVELOPING, not actionable now.",
        "Execution feasibility is flagged as blocked_stale_or_degraded_data despite being stale but triggerable.",
        "Free cash flow, capex, leverage, FDA label/timing, and competitive GLP-1 risks remain material.",
        "Break below 902-903 or decisive break below 888 would invalidate or materially weaken the tactical setup."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_explicit",
        "technical_confirmation_missing",
        "breakout_trigger_defined",
        "near_key_support_with_high_atr",
        "volume_confirmation_required",
        "event_and_fcf_risks",
        "stale_or_degraded_data_flag"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LRCX",
      "display_name": "LRCX",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.34,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LRCX has a constructive medium-term overweight thesis supported by AI, memory and foundry equipment demand, strong profitability, cash flow, and an uptrend above key moving averages. Timing is not actionable now because the plan explicitly says WAIT: price is extended near highs, momentum is decelerating, volatility is elevated, and Q3 earnings plus BIS export-control risk remain unresolved. A starter position is only justified after confirmation through a controlled pullback holding around 252.84 with RSI and volume support, a high-volume breakout above 272.41, or favorable post-earnings/export-control evidence.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price is near a 52-week high with elevated valuation metrics including trailing P/E around 53 and forward P/E around 36.",
        "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 could produce adverse event risk.",
        "Execution feasibility is flagged as blocked_stale_or_degraded_data, despite being triggerable."
      ],
      "reason_codes": [
        "bullish_thesis_but_wait_entry",
        "technical_confirmation_required",
        "earnings_event_pending",
        "export_control_uncertainty",
        "extended_valuation_near_highs",
        "elevated_volatility",
        "stale_or_degraded_data"
      ],
      "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.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "MU has a constructive medium-term thesis supported by AI/HBM demand, strong margins, cash flow, and improving technicals, but the action is explicitly WAIT because price is extended after a sharp rebound and is near 471.14 resistance. Entry depends on confirmation through a volume-backed breakout with follow-through or a controlled pullback holding 424-426 support.",
      "counter_evidence": [
        "Immediate entry is discouraged because MU has rebounded about 42% from the 2026-03-30 low and is near resistance.",
        "The setup is labeled DEVELOPING and entry_action is WAIT, so timing is not yet confirmed.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, with stale_but_triggerable true.",
        "A failure to hold 456 after a resistance test would indicate a failed breakout.",
        "A decisive close below 404-405 would invalidate the tactical setup and require reassessment."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "setup_developing",
        "breakout_or_support_confirmation_required",
        "extended_after_sharp_rebound",
        "near_resistance",
        "stale_or_degraded_execution_data",
        "not_currently_held"
      ],
      "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.68,
      "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 optionality, and supportive analyst targets. Timing is not actionable now because the stated action is WAIT, price remains below key VWMA/EMA/SMA levels, MACD is still negative, RSI is not in confirmed bullish territory, and the candidate requires a volume-backed close above $192.70-$194.37 before a starter position.",
      "counter_evidence": [
        "Current 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 49.58 does not confirm bullish momentum.",
        "Execution feasibility is marked blocked_stale_or_degraded_data and no intraday snapshot was used.",
        "Valuation risk is elevated with forward P/E 136.9, P/B 47.6, PEG 2.38, high beta, SBC/dilution concerns, and insider selling.",
        "A failure near $192.70-$194.37 followed by a break below $184.02 would weaken the setup; a decisive break below $166.99 would invalidate the swing structure."
      ],
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "price_below_key_moving_averages",
        "volume_close_required",
        "momentum_not_confirmed",
        "starter_only_if_triggered",
        "stale_or_degraded_data",
        "high_valuation_and_beta_risk"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "NVDA",
      "display_name": "NVDA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "NVDA thesis is constructive for an existing overweight hold: price has reclaimed key moving averages, MACD and volume improved, and AI/fundamental support remains intact. Timing is not yet actionable for adding because entry_action is WAIT, the setup is still developing, the stock has already rebounded sharply, RSI/ATR/beta are elevated, and confirmation requires either a daily close above 200.40 with sustained volume or a controlled pullback/reversal near 189.12.",
      "counter_evidence": [
        "Immediate add is explicitly deferred; new capital should wait for confirmation.",
        "RSI near 68.90, ATR 5.27, beta 2.335, and sharp rebound from 165.17 to 198.87 raise mean-reversion and chase risk.",
        "Intraday confirmation was unavailable and execution feasibility is marked blocked_stale_or_degraded_data.",
        "Breakout must hold the 196.51-200.40 zone for 1-2 sessions or pullback support near 189.12 must confirm before adding.",
        "Loss of 189.12 with MACD histogram deterioration or close below 181.52-182.74 would weaken or invalidate the setup."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "developing_setup",
        "explicit_breakout_trigger_required",
        "pullback_confirmation_alternative",
        "overbought_and_high_volatility_risk",
        "stale_or_degraded_execution_data",
        "existing_position_hold_not_add_now"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ORCL",
      "display_name": "ORCL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.72,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ORCL has a constructive medium-term AI/OCI thesis supported by multicloud expansion, database adoption, power partnership, operating profit, and improved short-term momentum, but current timing is not actionable because price has already rebounded sharply into overbought/upper-band territory while still below the 200-day average. A starter is only justified after either a confirmed breakout above 171 with above-average volume that holds for at least one session, or a controlled pullback to 153-157 that holds above the 50-day average with renewed buying.",
      "counter_evidence": [
        "Recent move from 138.09 on 2026-04-10 to 169.81 on 2026-04-15 suggests extended short-term positioning and chase risk.",
        "RSI near 70.88 and price near the upper Bollinger band around 170.71 indicate overbought timing.",
        "Stock remains below the 200-day moving average near 214.26, so long-term trend repair is incomplete.",
        "Free cash flow is deeply negative and leverage is elevated, increasing risk around debt-funded data-center capex.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, so current action should remain conditional rather than immediate."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "overbought_after_sharp_rebound",
        "breakout_needs_confirmation",
        "pullback_entry_needs_support_confirmation",
        "below_200_day_trend",
        "fcf_and_leverage_risk",
        "stale_or_degraded_execution_data"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "RSP",
      "display_name": "RSP",
      "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": "Held RSP position has no current analysis, no trigger conditions, no investment plan, and only a rule-based HOLD/WAIT interpretation. This is not actionable beyond watch-only maintenance.",
      "counter_evidence": [
        "Missing analysis for a held position",
        "No company, macro, disclosure, or social coverage in this run",
        "No trigger conditions or triggered action were provided",
        "Decision source is rule-only with weak setup quality and low confidence"
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "not_actionable_now",
        "low_confidence"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSLA",
      "display_name": "TSLA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.58,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSLA thesis is conditionally constructive for an existing holder, supported by rebound quality, improving RSI/MACD, high volume, and strong liquidity, but the action remains HOLD/WAIT. Timing is not ready because price remains below the key 398 resistance cluster and any add requires a close above 398, next-session support confirmation, and better volume quality, with additional event confirmation from the 2026-04-22 update preferred.",
      "counter_evidence": [
        "398 area remains major resistance from the upper Bollinger band and 200 SMA, so chasing below it is explicitly discouraged.",
        "Existing plan requires next-session support confirmation and volume-quality improvement before adding.",
        "Valuation is stretched with very high P/E and forward P/E, increasing compression risk.",
        "Fundamental concerns include revenue, margin, FCF, and finished-goods inventory pressure.",
        "Execution feasibility is flagged as blocked by stale or degraded data, with no intraday snapshot used.",
        "A failed breakout followed by a close below 390 would call for reduction, and a decisive break below 368 would invalidate tactical exposure."
      ],
      "reason_codes": [
        "constructive_hold_wait",
        "unconfirmed_breakout",
        "resistance_cluster_near_398",
        "requires_follow_through_support",
        "event_confirmation_pending",
        "stale_or_degraded_data",
        "valuation_and_margin_risk",
        "defined_downside_invalidators"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSM",
      "display_name": "TSM",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.74,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.76,
      "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/3nm demand, and intact trend support, but the action is explicitly WAIT/HOLD because price is near 380-385 resistance after a sharp rebound and momentum has cooled. Additional buying is only justified after confirmation: either a defended 362-365 support zone with RSI above 50 and calmer volume, or a close above 380-385 with MACD re-acceleration and above-average volume.",
      "counter_evidence": [
        "Immediate execution is blocked by WAIT/HOLD language and stale/degraded execution feasibility.",
        "Price is near 380-385 resistance after a sharp rebound from 316.50 to 375.10, raising chase risk.",
        "Momentum is not fully confirming because RSI cooled from 66.01 to 55.44 and MACD eased from 7.39 to 7.11.",
        "ATR is elevated near 12.58, so position sizing is constrained and new capital should wait for confirmation.",
        "Repeated failure at 380-385 or loss of 350-353 support would weaken or invalidate the setup."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "confirmation_required_before_add",
        "near_resistance_after_rebound",
        "momentum_cooling",
        "support_or_breakout_trigger_defined",
        "stale_or_degraded_execution_data",
        "risk_levels_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VRT",
      "display_name": "VRT",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "VRT thesis is constructive and current holding can be maintained, supported by trend strength above key moving averages, AI data-center demand exposure, strong earnings and free cash flow. Timing is not yet actionable for adding because entry_action is WAIT: confirmation is required via a volume-backed daily close above 310.51-312.46, or a controlled pullback holding 287-290 with improving momentum and no negative news or earnings catalyst.",
      "counter_evidence": [
        "Explicit recommendation is to hold existing shares and avoid chasing or adding today.",
        "Breakout above 310.51-312.46 has not been confirmed and pullback support at 287-290 has not been tested/validated.",
        "Valuation and volatility are elevated, with 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.",
        "Upcoming earnings and guidance risk could invalidate the thesis if orders, margins, free cash flow conversion, or AI data-center demand disappoint.",
        "Execution feasibility is flagged as blocked_stale_or_degraded_data with limited company news coverage and no intraday snapshot used."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "pullback_support_not_confirmed",
        "held_position_hold_ok",
        "elevated_valuation_risk",
        "high_beta_volatility",
        "earnings_event_risk",
        "stale_or_degraded_data"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VXUS",
      "display_name": "VXUS",
      "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": "Held VXUS position has no current analysis, no trigger conditions, no coverage inputs, and only a rule-based HOLD/WAIT stance. There is not enough evidence to form a constructive or actionable thesis, so this should remain watch-only with no timing readiness.",
      "counter_evidence": [
        "Missing analysis for held position",
        "No company news, macro items, disclosures, or social inputs available",
        "No trigger conditions or triggered action provided",
        "Rule-only decision source with low confidence"
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_actionable_trigger",
        "insufficient_data_coverage",
        "rule_only_hold"
      ],
      "review_required": false
    }
  ]
}