{
  "verdicts": [
    {
      "canonical_ticker": "AAPL",
      "display_name": "AAPL",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.66,
      "timing_readiness": 0.38,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.62,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "AAPL thesis is constructive for an existing hold, supported by recovery above the 200-day SMA and 10-day EMA plus improving MACD, but timing is not yet actionable because price remains below the 50-day SMA and recent resistance near 260.86-262.19. New adds require confirmation via a daily close above 262.20 with stronger volume, or a controlled support retest near 254.87 VWMA / 251-252 with clear reversal quality.",
      "counter_evidence": [
        "Current price around 259.20 remains below 50-day SMA 260.86 and recent high/resistance 262.19.",
        "Entry action is explicitly WAIT and setup quality is DEVELOPING, not confirmed.",
        "Valuation is demanding with limited safety margin, including trailing PER 32.8, forward PER 27.8, and PBR 43.15.",
        "A daily close below 251 or failure to defend the 200-day SMA near 250.89 would invalidate tactical exposure.",
        "Earnings, tariff/input-cost pressure, services regulation, macro rates, dollar strength, and premium consumer demand remain unresolved event risks."
      ],
      "reason_codes": [
        "held_position_hold_not_add",
        "constructive_medium_term_thesis",
        "breakout_not_confirmed",
        "below_near_term_resistance",
        "volume_confirmation_required",
        "support_retest_alternative",
        "valuation_limits_sizing",
        "event_risks_unresolved",
        "clear_downside_invalidation"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETHU",
      "display_name": "ETHU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.62,
      "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": "ETHU has a constructive tactical rebound thesis, with price back above short-term averages, improving MACD, non-overbought RSI, and some recent inflow evidence. Timing is not confirmed because the plan explicitly waits for a daily close above 25.90-26.00 with stronger volume, or a controlled support test near 24.65 or 23.50-23.10 before adding. Existing small exposure can be held, but new/additional action remains conditional.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "ETHU remains far below the 200 SMA near 79 and the 50 SMA is still falling.",
        "25.90-26.00 resistance has not yet been cleared with volume confirmation.",
        "2x Ether structure increases path dependency, gap risk, and loss amplification.",
        "Data quality is imperfect, with multiple vendor fallbacks and no intraday snapshot used."
      ],
      "reason_codes": [
        "constructive_rebound_setup",
        "entry_wait_state",
        "breakout_not_confirmed",
        "specific_price_volume_trigger",
        "leveraged_etf_risk",
        "support_invalidation_defined",
        "data_fallbacks_present"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETN",
      "display_name": "ETN",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.72,
      "timing_readiness": 0.42,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.78,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ETN has a constructive medium-term thesis supported by trend recovery, improving MACD, strong recent fundamentals, FCF, lower net debt, and AI/data-center power infrastructure demand. Timing is not yet actionable for adding because the plan explicitly says WAIT near 407-408 resistance and the 52-week high; confirmation requires a volume-backed daily close above 407-408 or a controlled pullback that stabilizes near 386.",
      "counter_evidence": [
        "Entry action is WAIT, not buy or add now.",
        "Price is near 407-408 resistance and the 52-week high, limiting immediate asymmetry.",
        "RSI around 67 and ATR around 12.7 indicate elevated momentum/volatility risk.",
        "Upside target toward 415-420 is modest versus downside references at 386, 374-369, and 369 invalidation.",
        "Earnings/order/backlog/margin/FCF confirmation is still pending, and data coverage is limited with only one company news item and no disclosures."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_required",
        "breakout_needs_volume_confirmation",
        "near_resistance_and_highs",
        "pullback_entry_alternative",
        "earnings_confirmation_pending",
        "explicit_invalidation_levels",
        "limited_data_coverage"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "FANG",
      "display_name": "FANG",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.62,
      "timing_readiness": 0.36,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.68,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "Medium-term thesis is constructive because FANG remains above key longer-term moving averages and fundamentals/free cash flow support the bullish stance, but immediate timing is not confirmed. Current price is still below the 10-day EMA and VWMA, RSI remains below 50, and MACD histogram is negative, so the appropriate state is watch-only until a daily close above 190.01 with RSI recovery, preferably above 193.36 with volume and MACD improvement.",
      "counter_evidence": [
        "Current price remains below the 10-day EMA near 190.01 and VWMA near 193.36.",
        "RSI is below 50 and MACD histogram is negative, showing short-term momentum has not recovered.",
        "Recent rebound has not fully offset the prior high-volume selloff.",
        "Oil sensitivity, elevated ATR, earnings risk, weak liquidity metrics, and potential insider or major-holder selling argue against full-size entry before confirmation.",
        "Break below 175.14 or failure of 180.26 support would invalidate the tactical recovery setup."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_required",
        "momentum_not_confirmed",
        "below_near_term_averages",
        "defined_breakout_triggers",
        "small_starter_only_if_triggered",
        "oil_beta_and_event_risk",
        "hard_invalidation_defined"
      ],
      "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.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GEV has a constructive medium-term thesis tied to AI/data-center power demand, gas turbine scarcity, grid and transformer bottlenecks, and a still-intact uptrend above key moving averages. However, immediate entry is not ready: price is extended into the 999.43-1007.38 resistance zone after a sharp run, with RSI near overbought, high ATR, fading high-area volume, and slight MACD histogram softening. Action should remain watch-only until either a confirmed daily close above 1007.38 with volume and momentum expansion, or a controlled pullback holds 944-952 and reclaims the 10-day EMA.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and suggested action now is WATCH, not buy.",
        "Price is near 999.43-1007.38 resistance after a rapid move from 817.35 to 991.12.",
        "RSI 68.42, ATR around 38.56, fading volume near highs, and slight MACD histogram weakening argue against chasing.",
        "High valuation metrics and Vineyard Wind, Prolec integration, working-capital, and free-cash-flow repeatability risks limit position aggressiveness.",
        "No intraday snapshot was used and disclosures coverage is zero, reducing confirmation quality."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_wait_state",
        "breakout_not_confirmed",
        "extended_near_resistance",
        "momentum_volume_confirmation_needed",
        "pullback_support_alternative",
        "valuation_and_execution_risks",
        "limited_disclosure_coverage"
      ],
      "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": "low_quality",
      "semantic_summary": "GLDM is a held position, but this run contains no substantive instrument analysis, no trigger conditions, and no investment or portfolio manager decision. The only supported action is to maintain watch/hold status pending proper analysis.",
      "counter_evidence": [
        "Held position has missing_analysis_for_held_position quality flag.",
        "No company news, disclosures, social, macro, structured decision, investment plan, or trigger conditions are available.",
        "Decision source is RULE_ONLY with low confidence and weak setup quality."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_actionable_trigger",
        "rule_only_decision",
        "insufficient_data_coverage",
        "weak_setup_quality"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "GOOGL",
      "display_name": "GOOGL",
      "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 GOOGL position has no current-run analysis, no trigger conditions, and rule-only HOLD guidance. The table should treat this as a neutral watch/maintain state rather than an actionable timing setup.",
      "counter_evidence": [
        "Missing analysis for a held position",
        "No company news, disclosures, social, or macro coverage in the candidate context",
        "No trigger conditions or triggered action are provided",
        "Decision source is rule-only with low confidence"
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "insufficient_data_coverage",
        "neutral_hold"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "LHX",
      "display_name": "LHX",
      "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 LHX position has no current analysis, no trigger conditions, no investment plan, and zero data coverage in this run. The HOLD/WAIT posture is rule-only maintenance rather than a confirmed constructive thesis or actionable timing setup.",
      "counter_evidence": [
        "Missing analysis for held position quality flag is present.",
        "Company news, disclosures, social, and macro coverage are all absent or unavailable.",
        "No trigger conditions, structured decision, or portfolio manager decision were provided."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "zero_data_coverage",
        "held_position_watch_only"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "NVDA",
      "display_name": "NVDA",
      "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 NVDA position has no current analysis, no trigger conditions, no structured decision, and zero data coverage in this run. The provided HOLD/WAIT stance is rule-only preservation rather than an actionable thesis.",
      "counter_evidence": [
        "No company news, disclosures, social, macro, structured decision, or investment plan were provided.",
        "Quality flag indicates missing analysis for a held position.",
        "Trigger conditions are empty and suggested action if triggered is NONE."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "zero_data_coverage",
        "held_position_watch_only"
      ],
      "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 news/macro coverage, and only a rule-only HOLD interpretation. This is not an actionable thesis; it should remain watch-only pending proper review or fresh analysis.",
      "counter_evidence": [
        "Missing analysis for a held position",
        "No structured decision or investment plan is available",
        "No trigger conditions were provided",
        "Data coverage is effectively zero across news, disclosures, social, and macro inputs"
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "insufficient_data_coverage",
        "watch_only"
      ],
      "review_required": true
    },
    {
      "canonical_ticker": "TSLA",
      "display_name": "TSLA",
      "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 TSLA position has no current analysis, no trigger conditions, no investment plan, and zero data coverage in this run. Existing HOLD/WAIT stance is rule-only and should be treated as status quo monitoring rather than an actionable thesis.",
      "counter_evidence": [
        "Missing analysis for a held position",
        "No company news, disclosures, social, or macro context available",
        "No trigger conditions or triggered action defined",
        "Decision source is rule-only with low confidence"
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_actionable_trigger",
        "rule_only_decision",
        "insufficient_data_coverage",
        "low_confidence_hold"
      ],
      "review_required": true
    },
    {
      "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.72,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSM thesis is constructive for an existing/partial overweight: fundamentals, AI demand evidence, margins, and trend recovery are supportive. Timing is not yet actionable for adding because the plan explicitly says WAIT, price is near Bollinger/prior-high resistance, and confirmation is required via either a volume-backed close above 378.90 or a controlled pullback that holds the 359.54-351.56 support zone.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price has already rebounded sharply and is near 378.90 Bollinger resistance and the 384.67-386.64 prior high zone.",
        "Recent volume has reportedly faded toward the 9 million share range after the April 8 spike, so breakout volume confirmation is still missing.",
        "Elevated ATR and earnings/guidance expectations increase gap and chase risk.",
        "A close below 359.54 or two sessions below 351.56 would weaken the timing and medium-term trend case."
      ],
      "reason_codes": [
        "bullish_thesis_existing_position",
        "entry_action_wait",
        "developing_setup",
        "breakout_needs_volume_confirmation",
        "near_resistance_chase_risk",
        "support_pullback_alternative",
        "event_guidance_confirmation_needed",
        "risk_lines_defined"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VRT",
      "display_name": "VRT",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.76,
      "timing_readiness": 0.42,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.72,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "Medium-term VRT thesis is constructive, supported by trend, momentum, AI data-center demand, improving fundamentals, S&P 500 inclusion, acquisition optionality, and analyst support. Timing is not yet actionable for adding because the stock is extended after a sharp rebound, RSI is overbought, valuation is demanding, and the plan explicitly says to wait for either a volume-backed close above 312.46 or a controlled pullback holding 299.96/295.11 before adding.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price has rebounded about 32.6% from the 234.22 area to 310.51, creating poor short-term asymmetry.",
        "RSI around 70.99 and ATR 13.92 indicate overbought and volatile conditions.",
        "Current price is extended above the 10 EMA at 283.14 and 50 SMA at 250.12.",
        "Valuation is demanding, with cited trailing P/E near 90 and P/B near 29.9.",
        "Some target-price evidence, such as Barclays at 300, is below the latest close.",
        "Intraday same-day snapshot is missing and disclosure coverage is weak."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "breakout_not_confirmed",
        "volume_confirmation_required",
        "overbought_after_sharp_rebound",
        "pullback_support_alternative",
        "valuation_risk_high",
        "held_position_hold_not_add",
        "data_quality_intraday_gap"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VXUS",
      "display_name": "VXUS",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.68,
      "timing_readiness": 0.42,
      "trigger_type": "watch_only",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.58,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "VXUS has a constructive medium-term overweight thesis, supported by recovery above key moving averages, positive MACD, and portfolio diversification logic. Timing is not yet actionable because the recommendation is WAIT, price is near breakout/resistance levels, RSI has risen quickly, ATR is elevated, and adds require either a pullback-and-rebound around 80.10-79.70 or confirmed breakout above 82.90 with volume and follow-through.",
      "counter_evidence": [
        "Entry action is explicitly WAIT, not buy/add now.",
        "Price is near 82.90 breakout threshold and 84.11-84.28 resistance, limiting immediate reward-to-risk.",
        "RSI has risen to 66.06 after a sharp rebound, raising overextension risk.",
        "ATR is elevated and intraday same-day snapshot is missing.",
        "Macro risks include dollar strength, oil, rate-cut repricing, and geopolitical escalation."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "trigger_required_before_add",
        "near_resistance_zone",
        "elevated_momentum_and_volatility",
        "held_position_hold_now",
        "data_quality_intraday_gap"
      ],
      "review_required": false
    }
  ]
}