{
  "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.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "AAPL thesis is constructive for a held position: medium-term OVERWEIGHT/BULLISH bias is supported by reclaimed moving averages, positive MACD, non-overbought RSI, strong cash flow, margins, and buybacks. Timing is not yet actionable because the plan explicitly says WAIT, price is at the 266.43-272 resistance area after a sharp rebound, volume confirmation is still required, and 2026-04-30 earnings gap risk remains. Add only after a volume-backed daily close above 266.43 with RSI/MACD confirmation, a confirmed 260-262 support hold, or post-earnings validation.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is only DEVELOPING, not confirmed.",
        "Price has already rebounded about 8% from 246.63 to 266.43 and is now facing the 266.43 first resistance and 272 supply zone.",
        "No intraday snapshot was used and execution feasibility is marked blocked_stale_or_degraded_data.",
        "2026-04-30 earnings creates gap risk that cannot be controlled by daily-close stops alone.",
        "Premium valuation leaves room for multiple compression if iPhone demand, services, AI roadmap, margins, guidance, or buybacks disappoint."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_state",
        "breakout_not_confirmed",
        "resistance_zone_ahead",
        "earnings_gap_risk",
        "stale_or_degraded_data",
        "held_position_hold_ok_add_blocked"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "COST",
      "display_name": "COST",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.32,
      "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-growth thesis, supported by revenue/EPS growth, cash flow, dividend increase, membership durability, and analyst upside. Timing is not actionable now because price remains below the 994-1000 reclaim zone, below key moving/VWMA references, momentum has faded, and the setup explicitly requires either breakout confirmation with volume/MACD stabilization or a clear 966-968 support reversal before any starter entry.",
      "counter_evidence": [
        "Current price reference of 984.75 is below the 50-day SMA 994.28, 10-day EMA 995.78, and VWMA 998.18.",
        "MACD momentum has slowed and RSI 46.18 is not a confirmed rebound signal.",
        "New capital is explicitly deferred until 994-1000 is reclaimed or 966-968 support absorption is confirmed.",
        "Premium valuation near P/E 51 and forward P/E 44 raises downside sensitivity to execution or margin disappointment.",
        "Intraday same-day snapshot is missing, so execution feasibility now is degraded despite being triggerable."
      ],
      "reason_codes": [
        "constructive_fundamental_thesis",
        "entry_waiting_for_confirmation",
        "below_key_moving_averages",
        "momentum_not_confirmed",
        "breakout_trigger_defined",
        "support_reversal_secondary_trigger",
        "valuation_risk_high",
        "stale_intraday_data"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETHU",
      "display_name": "ETHU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.62,
      "timing_readiness": 0.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ETHU has a constructive tactical rebound thesis for an existing small holding: price is above key short-term averages, MACD is positive, RSI is not yet overbought, and recent inflows support renewed ETH beta demand. Timing is not actionable yet because the 29.5-30.0 resistance breakout has not been confirmed with a daily close and volume above the April 15 level; a controlled pullback hold near 25.3 is the secondary setup. Current action remains HOLD/WAIT rather than add now.",
      "counter_evidence": [
        "No confirmed close above the 29.5-30.0 resistance zone.",
        "Recent high failed to extend: 2026-04-15 high was below the 2026-04-14 high.",
        "Execution feasibility is marked blocked_stale_or_degraded_data with missing same-day intraday snapshot.",
        "ETHU is a 2x leveraged Ether product with volatility decay, gap risk, and high ATR relative to price.",
        "Social signal is news-derived and direct social coverage is weak."
      ],
      "reason_codes": [
        "constructive_momentum_but_unconfirmed_breakout",
        "hold_existing_wait_to_add",
        "volume_confirmation_required",
        "leveraged_etf_high_volatility",
        "stale_or_degraded_data",
        "clear_invalidation_levels"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETN",
      "display_name": "ETN",
      "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": "ETN has a constructive medium-term bullish thesis supported by price above key moving averages, solid fundamentals, AI/data-center/grid demand, and analyst target upgrades, but current action is HOLD/WAIT. Timing is not actionable yet because price failed to hold $400 or break $407.83, momentum is decelerating, and same-day intraday confirmation is missing. Add only after confirmed $387-$390 support with momentum stabilization or a volume-backed close above $407.83 while holding above $400.",
      "counter_evidence": [
        "Recent close failed to hold above $400 and did not confirm a $407.83 breakout.",
        "MACD histogram is decelerating and RSI has cooled from the high 60s toward 62.",
        "Intraday same-day snapshot is missing, making immediate execution confidence degraded.",
        "Valuation is elevated, increasing risk if Q1 guidance or demand commentary disappoints.",
        "Break below $382-$385 or close below the 50-day SMA near $369.65 would weaken or invalidate the trend case."
      ],
      "reason_codes": [
        "bullish_thesis_but_wait_entry",
        "breakout_not_confirmed",
        "support_confirmation_required",
        "momentum_decelerating",
        "stale_intraday_data",
        "elevated_valuation_risk",
        "held_position_hold_now"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "FANG",
      "display_name": "FANG",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.67,
      "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": "FANG has a constructive medium-term overweight thesis supported by cash generation, debt reduction, oil leverage, analyst target increases, and price still above the 50-day and 200-day averages. Timing is not ready because entry_action is WAIT, setup_quality is DEVELOPING, price remains below the 10-day EMA and VWMA, RSI is below 50, MACD histogram is negative, volatility is elevated, and same-day intraday confirmation is missing. A starter is only justified after either a confirmed 180-181 support hold or a close above roughly 193 with RSI/MACD/VWMA improvement.",
      "counter_evidence": [
        "Current price is below the 10-day EMA 189.26 and VWMA 192.78, showing incomplete short-term confirmation.",
        "RSI 47.42 is below 50 and MACD histogram is negative at -1.98, so momentum has not confirmed the bullish thesis.",
        "ATR 6.67 is elevated at about 3.6% of price, implying gap and volatility risk for an immediate entry.",
        "Execution feasibility is marked blocked_stale_or_degraded_data with intraday_snapshot_missing_same_day.",
        "Liquidity and balance-sheet risks remain: low cash, current ratio 0.416, negative working capital, and high net debt.",
        "Insider or sponsor selling into rebounds could create supply overhang near the 190-193 zone."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "developing_setup",
        "momentum_not_confirmed",
        "below_short_term_supply_zone",
        "clear_breakout_trigger_defined",
        "support_hold_trigger_defined",
        "stale_intraday_data",
        "elevated_volatility",
        "balance_sheet_risk"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GEV",
      "display_name": "GEV",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "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": "GEV has a constructive medium-term thesis from power infrastructure, AI/data-center electricity demand, grid/gas/nuclear exposure, cash generation, and an intact uptrend above major moving averages. Timing is not ready because the recommendation is explicitly WAIT: price is just below the $1000-$1007.38 resistance area, momentum is cooling, breakout volume was weak, and same-day intraday confirmation is missing. Actionability depends on a volume-backed close above $1007.38 with follow-through above $1000, or a controlled pullback and support confirmation near the 10-day EMA around $952.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price is near the $1000-$1007.38 resistance zone without confirmed breakout volume.",
        "RSI near 68 and MACD histogram deceleration indicate stretched or cooling momentum.",
        "Breakout test volume was weaker than desired, reducing confirmation quality.",
        "Vineyard Wind liabilities, valuation risk, and possible earnings-quality concerns remain unresolved.",
        "Intraday same-day snapshot is missing and execution feasibility is marked blocked_stale_or_degraded_data."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait",
        "developing_setup",
        "breakout_not_confirmed",
        "near_resistance",
        "momentum_cooling",
        "volume_confirmation_missing",
        "pullback_alternative_trigger",
        "stale_or_degraded_data",
        "unresolved_project_liability_risk"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GLDM",
      "display_name": "GLDM",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.64,
      "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": "GLDM thesis is constructive for existing exposure and potential future adds, supported by the longer-term uptrend, recovery above the 10-day EMA area, and gold macro hedge demand. Timing is not ready now because the plan explicitly says WAIT, price remains below the 50-day SMA and clustered 97.00-98.00 resistance, and execution is blocked by stale/degraded data. Action should remain hold/watch until a daily close above 98.00 with volume or a confirmed 93.89-95.00 support hold occurs.",
      "counter_evidence": [
        "Entry action is WAIT rather than buy/add now.",
        "Price is still below the 50-day SMA near 96.98 and facing the 97.00-98.00 resistance cluster.",
        "Meaningful adds require daily close confirmation above 98.00, successful retest, or continuation above 100.00 with volume.",
        "Intraday same-day snapshot is missing and execution feasibility is marked blocked_stale_or_degraded_data.",
        "A close below 92.50 or loss of 90.00 would weaken or invalidate the bullish thesis.",
        "Gold exposure remains sensitive to real yields, USD strength, Fed communication, ETF flow reversal, and risk-on conditions."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "resistance_cluster_overhead",
        "specific_price_triggers_defined",
        "held_position_hold_not_add",
        "stale_or_degraded_data",
        "macro_sensitive_gold_etf",
        "risk_levels_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GOOGL",
      "display_name": "GOOGL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.68,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GOOGL has a constructive OVERWEIGHT thesis supported by recovered trend structure, positive MACD, strong fundamentals, AI/cloud catalysts, and existing core-hold framing. Timing is not actionable now because the plan explicitly says WAIT, price is extended/overbought, same-day intraday confirmation is missing, and adds require either a volume-confirmed close above 337.48 or a controlled pullback holding 323.75-317.19 with a higher low.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is only DEVELOPING, not confirmed.",
        "Latest usable price context appears stale through 2026-04-15 with intraday_snapshot_missing_same_day.",
        "RSI around 71.34, elevated ATR, and extension above the 10-day EMA argue against immediate chase buying.",
        "Regulatory, earnings, AI capex, and AI search competition risks remain material.",
        "Existing holder guidance is to maintain core exposure but avoid aggressive additional buying until triggers confirm."
      ],
      "reason_codes": [
        "bullish_thesis_waiting_for_confirmation",
        "volume_confirmed_breakout_required",
        "pullback_support_alternative_trigger",
        "overbought_and_extended_price",
        "stale_or_degraded_intraday_data",
        "event_and_regulatory_risk",
        "held_core_position_not_immediate_add"
      ],
      "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 thesis supported by defense demand, solid rocket motor capacity investment, government support, Aerojet integration, and potential margin/free-cash-flow recovery. Timing is not ready now because the stated action is WAIT, price remains inside the 353-365 range near key moving averages, momentum is neutral, and adds require support confirmation, 358-362 recovery, or a volume-backed daily close above 365.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price is still range-bound around 353-365 and has not cleared 365 resistance with volume.",
        "RSI near 49 and modest MACD do not show strong trend confirmation.",
        "Execution feasibility now is blocked_stale_or_degraded_data, with stale_but_triggerable true.",
        "Margin weakness around 6.66%, free-cash-flow quality concerns, insider selling, and elevated valuation remain risks."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait",
        "range_bound_no_breakout",
        "neutral_momentum",
        "volume_confirmation_required",
        "support_retest_required",
        "stale_or_degraded_data",
        "event_and_earnings_risks"
      ],
      "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.72,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LLY has a constructive medium-term thesis based on GLP-1 demand, strong margins, earnings growth, analyst support, and pipeline optionality, but the setup is not ready for immediate entry. Price is only slightly above 200-day support near 902-905 while still below the 10-day EMA/VWMA around 925-926 and the 50-day area near 976-977, with RSI and MACD not yet confirming trend repair. Best action is watch-only until a daily close reclaims 925-926, with stronger confirmation above 955 and RSI above 50; downside invalidation begins with a high-volume close below 902 and deepens below 877-878.",
      "counter_evidence": [
        "Current entry_action is WAIT and suggested_action_now is WATCH, not buy or add.",
        "Price remains below 10-day EMA 924.68, VWMA 925.86, and 50-day SMA 976.87.",
        "RSI 42.16 and MACD -13.75 do not confirm trend recovery.",
        "Current price near 905.03 is only slightly above 200-day support around 902.67, leaving little cushion.",
        "Execution feasibility is flagged as blocked_stale_or_degraded_data and no intraday snapshot was used.",
        "Valuation, leverage, weak free cash flow, and potential GLP-1 or Foundayo disappointments raise downside risk."
      ],
      "reason_codes": [
        "bullish_thesis_wait_entry",
        "technical_confirmation_missing",
        "below_short_term_averages",
        "near_200_day_support",
        "starter_only_after_confirmation",
        "stale_or_degraded_data",
        "defined_downside_invalidation"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LRCX",
      "display_name": "LRCX",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "LRCX has a constructive medium-term thesis supported by trend strength and AI/HBM, memory recovery, and advanced-node equipment demand, but immediate timing is not confirmed. The plan explicitly says to wait for a volume-confirmed close above 273.50, a controlled pullback holding 253-258, or post-earnings/export-control confirmation before starting a position.",
      "counter_evidence": [
        "Entry action is WAIT and suggested action now is WATCH, not buy.",
        "Price is extended near 273.50 resistance with noted distribution risk, fading MACD histogram, elevated RSI, and high volatility.",
        "Q3 2026 earnings on 2026-04-22 and U.S. export-control headlines create event risk before full sizing.",
        "Valuation is demanding with forward PER near 37, trailing PER 54.09, and P/B 32.55.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, with no intraday snapshot used."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_for_confirmation",
        "near_resistance_distribution_risk",
        "earnings_event_risk",
        "export_control_uncertainty",
        "stale_or_degraded_execution_data",
        "clear_breakout_and_support_levels"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "MU",
      "display_name": "MU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.68,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "MU has a constructive medium-term overweight thesis supported by AI memory demand, HBM/advanced DRAM strength, improving trend indicators, and solid reported financials, but the current action is WAIT/WATCH rather than immediate entry. Timing is incomplete because price is extended near resistance after a sharp rally, volatility is high, intraday confirmation is unavailable, and execution is flagged as stale or degraded. Actionability depends on either confirmed support near 426 with RSI/volume stability or a volume-backed breakout through 465.78-471.14 followed by a successful 465 retest.",
      "counter_evidence": [
        "Entry action is WAIT and suggested action now is WATCH, so no immediate execution is confirmed.",
        "Price is extended after a sharp move from 318.40 to 465.78 and sits near the 465.78-471.14 resistance area.",
        "ATR of 26.03, roughly 5.7% of price, makes chase entry risk/reward incomplete.",
        "Execution feasibility is flagged as blocked_stale_or_degraded_data and no intraday snapshot was used.",
        "Insider selling, high valuation, receivables growth, export-control and China-demand risks cap position sizing."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_state",
        "timing_confirmation_required",
        "near_resistance_after_rally",
        "high_volatility_atr",
        "stale_or_degraded_data",
        "specific_price_triggers_defined",
        "risk_invalidation_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "NET",
      "display_name": "NET",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.62,
      "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 thesis supported by improving momentum, high gross margin, positive free cash flow, and AI/security demand, but the setup is not yet actionable because price has not reclaimed the 195 resistance cluster or the stronger 202-204 confirmation zone. Current action is watch only, with a small starter justified only after daily close confirmation above 195 and higher-quality entry after reclaim/support confirmation near 202-204.",
      "counter_evidence": [
        "Price remains below key moving averages and resistance levels around 194.5-195 and 202-204.",
        "Recent high-volume selling on April 9-10 suggests overhead supply.",
        "Valuation and dilution risks are elevated, including high expected P/E, high price/book, negative EPS, net loss, and stock-based compensation exceeding recent free cash flow.",
        "Execution feasibility is degraded by stale or unavailable intraday data, so intraday strength should not be chased.",
        "Loss of 184 or 166.99 would weaken or invalidate the rebound structure."
      ],
      "reason_codes": [
        "constructive_thesis_waiting_for_confirmation",
        "price_below_key_resistance",
        "daily_close_required",
        "starter_only_after_breakout",
        "high_volatility_reduced_sizing",
        "valuation_and_dilution_risk",
        "stale_intraday_data"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "NVDA",
      "display_name": "NVDA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.74,
      "timing_readiness": 0.42,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "NVDA thesis is constructive for a held position, supported by trend recovery above key moving averages, improving MACD, strong AI/data-center fundamentals, high margins, and net cash. Timing is not yet actionable for adding because price is pressing the 198.87-200.40 resistance zone, RSI is near overbought, volatility is elevated, and the plan explicitly requires either a confirmed daily close above 200.40 with volume or a controlled pullback holding around 189.26 before starter/add sizing is justified.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, so immediate add timing is not confirmed.",
        "Price is near 198.87-200.40 resistance after a sharp rebound, raising rejection risk.",
        "RSI near 70 and ATR around 5.27 imply extended momentum and elevated short-term volatility.",
        "Valuation is demanding with high P/E and P/B, increasing sensitivity to disappointment.",
        "Inventory and receivables growth, margin guidance, competition, and supply-chain/geopolitical risks remain unresolved."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "held_position_hold_allowed",
        "entry_wait_required",
        "breakout_not_confirmed",
        "resistance_zone_nearby",
        "overbought_rsi_risk",
        "elevated_volatility",
        "pullback_support_alternative",
        "stale_or_degraded_execution_data"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ORCL",
      "display_name": "ORCL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.64,
      "timing_readiness": 0.36,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ORCL has a constructive medium-term AI infrastructure and multicloud thesis, supported by backlog, AWS/Bloom-related catalysts, improving revenue/EBITDA, and recent technical rebound. However, the current setup is explicitly a wait/watch case: price is extended near resistance with elevated RSI, and new entry requires either a controlled pullback holding key support or a confirmed breakout above 170.64/172.56 with sustained volume. Timing is not actionable now.",
      "counter_evidence": [
        "Entry action is WAIT and suggested action now is WATCH, not buy or add.",
        "RSI around 70.79 and price near the 170.64 Bollinger upper band indicate chase risk after a sharp rally.",
        "Negative free cash flow, high debt, interest expense, and potential data-center financing risk weaken immediate conviction.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, so fresh confirmation is needed before action.",
        "No current holding exists, so HOLD stance does not justify immediate portfolio action."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_required",
        "breakout_not_confirmed",
        "pullback_support_not_confirmed",
        "overbought_near_resistance",
        "fcf_debt_financing_risk",
        "stale_or_degraded_data",
        "not_currently_held"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "RSP",
      "display_name": "RSP",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.42,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "RSP has a constructive medium-term allocation thesis with price above key moving averages, improving MACD, and a breadth/rotation rationale, but current timing is not confirmed because price is just below the 200.00-201.88 resistance area and the stated action is WAIT. Add exposure only after a confirmed breakout above 200.20 with volume and acceptance above 201.88, or after a pullback holds 197.50-198.00 with improving breadth.",
      "counter_evidence": [
        "Entry action is WAIT, not buy/add now.",
        "Price is near the 200.00-201.88 resistance zone and close to the 52-week high, raising failed-breakout risk.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, with no intraday snapshot used.",
        "New capital is conditional on either support confirmation or breakout confirmation.",
        "Relative strength versus SPY or VOO and broader market breadth still need confirmation."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait",
        "resistance_nearby",
        "breakout_not_confirmed",
        "support_pullback_alternative",
        "volume_confirmation_required",
        "relative_strength_confirmation_needed",
        "stale_or_degraded_data"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSLA",
      "display_name": "TSLA",
      "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": "TSLA has a constructive medium-term hold thesis with improving rebound evidence, but the setup is not yet actionable for adding capital. Confirmation requires a daily close above the 200-day SMA near 398.37 with sustained volume and follow-through above 400, or a controlled pullback that holds the 50-day area near 390.43. Until then, existing exposure can be held, but timing remains incomplete.",
      "counter_evidence": [
        "Price remains below the 200-day SMA near 398.37 and has not cleared the 400 resistance area.",
        "Entry action is explicitly WAIT and setup quality is DEVELOPING, not confirmed.",
        "Execution feasibility is marked blocked_stale_or_degraded_data, limiting immediate actionability.",
        "Valuation is elevated while margins, revenue, net income, and free cash flow risks remain material.",
        "Failure below 390.43 or the high-360s EMA/VWMA area would weaken or invalidate the rebound."
      ],
      "reason_codes": [
        "constructive_hold_thesis",
        "entry_wait_state",
        "breakout_not_confirmed",
        "specific_price_triggers_defined",
        "stale_or_degraded_execution_data",
        "elevated_valuation_risk",
        "fundamental_confirmation_needed",
        "held_position_core_exposure"
      ],
      "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.64,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSM has a constructive medium-term overweight thesis supported by strong earnings, AI and advanced-node demand, market-share leadership, and price remaining above key moving averages. Timing is not actionable now because the prescribed action is WAIT/HOLD, price is near 375-382 resistance after a fast rebound, and adds require either confirmed support at 362-365 or a volume-backed close above 382.16 without reversal.",
      "counter_evidence": [
        "Current entry action is WAIT and suggested action now is HOLD rather than add.",
        "Price is near 379.89-382.16 resistance after a rapid rebound from 316.50 to 375.10.",
        "Strong earnings were followed by selling, raising near-term chase risk.",
        "Execution feasibility is flagged as blocked by stale or degraded data, even if still triggerable.",
        "A close below 352-353 or momentum deterioration would damage the April rebound structure."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_not_actionable_now",
        "breakout_or_support_confirmation_required",
        "near_resistance_after_fast_rebound",
        "held_position_hold_now",
        "stale_or_degraded_data_flag"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "VRT",
      "display_name": "VRT",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.38,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "VRT has a constructive medium-term AI data-center infrastructure thesis and existing holders can maintain exposure, but immediate add timing is not confirmed. Action should wait for a daily close above 312.46 with clearly stronger volume, or a confirmed bullish reversal from the 296.64-288.22 support zone; earnings and guidance confirmation could further improve readiness.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and setup quality is DEVELOPING, not confirmed.",
        "Momentum has cooled with RSI falling from overbought levels and MACD histogram weakening.",
        "Valuation is premium, with high trailing and forward multiples creating earnings disappointment risk.",
        "ATR is elevated, increasing gap and stop-out risk around earnings or event catalysts.",
        "Data coverage is limited and current execution feasibility is marked blocked by stale or degraded data."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_state",
        "breakout_trigger_required",
        "support_reversal_alternative",
        "premium_valuation_risk",
        "momentum_cooling",
        "earnings_event_risk",
        "stale_or_degraded_data"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "VXUS",
      "display_name": "VXUS",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.67,
      "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": "VXUS thesis is constructive for a medium-term overweight/add-on because price remains above key moving averages, MACD momentum has improved, and macro diversification/weak-dollar arguments support the allocation. Timing is not confirmed: the plan explicitly says WAIT, avoid chasing, and only add after either 81.0-81.5 support with buyer response or a volume-confirmed close above 82.90.",
      "counter_evidence": [
        "Entry action is WAIT, not immediate buy or add.",
        "Execution feasibility is blocked by stale or degraded data, though triggerable.",
        "Price is near 82.90 breakout level and 84.11-84.28 resistance after a sharp rebound from 74.71.",
        "ATR is elevated around 1.3766, reducing near-term risk/reward quality.",
        "Company/news coverage is thin with only one company news item, no disclosures, fallback events, and token usage unavailable."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "wait_for_confirmation",
        "breakout_or_support_trigger_required",
        "near_resistance_after_sharp_rebound",
        "elevated_volatility",
        "stale_or_degraded_data",
        "thin_news_coverage"
      ],
      "review_required": false
    }
  ]
}