{
  "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.68,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "AAPL has a constructive hold thesis supported by recovery above key short-term/long-term moving averages, positive MACD turn, cash generation, and franchise quality, but timing is not yet actionable for adding because price remains below the 260.86-262.19 supply zone. The preferred action is to hold existing shares and wait for either a daily close above 262.20 with volume expansion or a clean support retest near 254.87 VWMA / 251-252 before adding.",
      "counter_evidence": [
        "Current price around 259.20 remains below the 50-day SMA near 260.86 and recent high/resistance near 262.19.",
        "Entry action is explicitly WAIT and setup quality is only DEVELOPING.",
        "Additional buying is conditional on breakout volume confirmation or support retest quality, neither of which is confirmed now.",
        "Valuation is demanding, with limited safety margin noted from PER and PBR metrics.",
        "A daily close below 251 or failed breakout followed by loss of the 10-day EMA would invalidate the tactical setup.",
        "Earnings, margin, tariff/input-cost, services growth, and Apple Pay regulatory risks remain unresolved event risks."
      ],
      "reason_codes": [
        "held_position_hold_not_add",
        "constructive_medium_term_thesis",
        "entry_confirmation_missing",
        "below_near_term_resistance",
        "specific_breakout_trigger_defined",
        "volume_confirmation_required",
        "support_retest_alternative",
        "clear_risk_invalidation_level",
        "valuation_limits_sizing",
        "event_risk_pending"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "ETHU",
      "display_name": "ETHU",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.62,
      "timing_readiness": 0.42,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.74,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ETHU has a constructive tactical rebound thesis, with price back above short-term support, improving MACD, non-overbought RSI, and some recent fund inflow evidence. Timing is not yet actionable because the plan explicitly requires either a confirmed daily close above 25.90-26.00 with volume expansion or a controlled support retest before adding. Existing small exposure can be held, but new buying remains conditional.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is only DEVELOPING, not confirmed.",
        "ETHU remains far below the 200 SMA and the 50 SMA is still falling.",
        "25.90-26.00 resistance has not yet been cleared with strong volume.",
        "The 2x Ether structure increases path dependency, gap risk, and downside amplification.",
        "Data coverage is mixed, with fallback vendor calls, no disclosures, and news-derived social sentiment."
      ],
      "reason_codes": [
        "constructive_rebound_unconfirmed",
        "wait_for_daily_close_above_resistance",
        "volume_confirmation_required",
        "support_retest_alternative_trigger",
        "leveraged_etf_path_dependency",
        "clear_downside_invalidation"
      ],
      "review_required": false
    },
    {
      "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.66,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "ETN has a constructive medium-term overweight thesis supported by improving trend, strong recent fundamentals, AI/data-center power demand, cash flow, and balance-sheet quality. Timing is not actionable yet because the plan explicitly says to wait near 407-408 resistance/52-week highs for either a volume-backed daily close above resistance or a controlled pullback that stabilizes near 386 before adding.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, so the thesis is not yet confirmed for immediate add.",
        "Price is near 407-408 resistance and the 52-week high with RSI 67.2581 and elevated ATR 12.7175, reducing near-term entry asymmetry.",
        "Upside target around 415-420 appears limited versus downside risk to 386 and deeper support at 374-369.",
        "Data coverage is limited, with only one company news item, no disclosures, news-derived social input, and multiple vendor fallbacks."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_not_actionable",
        "explicit_breakout_trigger",
        "volume_confirmation_required",
        "near_resistance_52_week_high",
        "elevated_volatility_and_rsi",
        "defined_support_and_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.34,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.72,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "FANG has a constructive medium-term thesis supported by price remaining above the 50-day and 200-day averages, cash flow, debt reduction, and potential oil/geopolitical upside. Timing is not ready because price remains below the 10-day EMA around 190.01 and VWMA around 193.36, RSI is below 50, MACD histogram is negative, and the plan explicitly calls for waiting before any new entry. Actionability depends on daily close confirmation above 190.01 with RSI recovery, preferably above 193.36 with volume and MACD improvement.",
      "counter_evidence": [
        "Current price is below the 10-day EMA near 190.01 and VWMA near 193.36.",
        "RSI is below 50 and MACD histogram remains negative, so short-term buying control is not restored.",
        "Recent high-volume selloff and oil sensitivity increase timing risk.",
        "Q1 earnings, capex, production guidance, and balance sheet risks remain unresolved.",
        "A break below 175.14, especially on volume, would invalidate the tactical setup."
      ],
      "reason_codes": [
        "bullish_thesis_but_wait_entry",
        "below_near_term_moving_averages",
        "momentum_not_confirmed",
        "explicit_breakout_trigger_required",
        "small_starter_only_if_confirmed",
        "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.36,
      "trigger_type": "breakout_confirmation",
      "trigger_horizon": "days_to_weeks",
      "trigger_quality": 0.78,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "GEV has a constructive medium-term thesis tied to AI/data-center power demand, turbine scarcity, grid and transformer bottlenecks, and an intact trend above key moving averages. Timing is not actionable now because the stock is extended into the 999.43-1007.38 resistance area after a sharp run, with RSI near overbought, high ATR, fading high-area volume, and slight MACD histogram weakening. Entry should wait for a confirmed daily close above 1007.38 with stronger volume and renewed momentum, or a controlled pullback that holds 944-952 and reclaims the 10-day EMA.",
      "counter_evidence": [
        "Entry action is explicitly WAIT and setup quality is DEVELOPING, not confirmed.",
        "Price is near the 999.43-1007.38 resistance zone after a rapid move from 817.35 to 991.12.",
        "RSI 68.42, ATR about 38.56, fading volume near highs, and slight MACD histogram weakening argue against chasing.",
        "High valuation, Vineyard Wind liability risk, Prolec integration risk, and working-capital concerns limit immediate position expansion.",
        "No current holding exists, so there is no existing overweight position to maintain."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_wait_explicit",
        "breakout_not_confirmed",
        "extended_near_resistance",
        "momentum_volume_confirmation_needed",
        "pullback_support_alternative",
        "valuation_and_legal_risks"
      ],
      "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": "Held GLDM position has no current-run analysis, no trigger conditions, and no supporting news, macro, disclosure, or social coverage. The HOLD/WAIT stance is rule-only and should be treated as a data-gap watch rather than an actionable timing signal.",
      "counter_evidence": [
        "Held position is missing analysis for this run.",
        "No structured decision, investment plan, or portfolio manager decision is available.",
        "No trigger conditions or triggered action are specified.",
        "Data coverage is effectively zero across company 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": 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": "low_quality",
      "semantic_summary": "GOOGL is a held position, but this run contains no substantive company analysis, portfolio manager decision, investment plan, news, disclosures, macro context, or trigger conditions. The HOLD/WAIT stance appears rule-only and is best treated as a watch-only placeholder rather than an actionable timing signal.",
      "counter_evidence": [
        "Missing analysis for a held position is explicitly flagged.",
        "No trigger conditions or trigger profile are provided.",
        "Decision source is RULE_ONLY with confidence only 0.3.",
        "Company news, disclosures, social, and macro coverage are absent."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "rule_only_decision",
        "no_trigger_conditions",
        "insufficient_data_coverage",
        "low_confidence"
      ],
      "review_required": true
    },
    {
      "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 news/disclosure/macro coverage, and only a rule-only HOLD interpretation. There is not enough evidence to treat the thesis as constructive or timing-ready.",
      "counter_evidence": [
        "Missing analysis for a held position.",
        "No structured decision, investment plan, or portfolio manager decision is available.",
        "No trigger conditions or trigger profile were provided.",
        "Data coverage is effectively zero across company news, disclosures, social, and macro inputs."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_defined",
        "rule_only_decision",
        "insufficient_data_coverage"
      ],
      "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-run analysis, no trigger conditions, no event or breakout confirmation, and only a rule-only HOLD/WAIT interpretation. Timing is not actionable and should remain watch-only until fresh analysis or explicit triggers are available.",
      "counter_evidence": [
        "Missing analysis for a held position",
        "No company news, disclosures, social, or macro coverage in candidate context",
        "No structured decision or investment plan provided",
        "No trigger conditions or trigger profile available",
        "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"
      ],
      "review_required": false
    },
    {
      "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": "neutral_watch",
      "semantic_summary": "Held RSP position has no current analysis, no investment plan, no portfolio manager decision, and no trigger conditions. The rule-only output suggests HOLD/WAIT purely due to missing analysis, so this is a watch-only neutral state rather than an actionable timing setup.",
      "counter_evidence": [
        "No company news, disclosures, social, macro, structured decision, investment plan, or trigger conditions are available for this run.",
        "Quality flag indicates missing analysis for a held position.",
        "Suggested triggered action is NONE and setup quality is WEAK."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "weak_setup_quality",
        "insufficient_data_coverage"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "TSLA",
      "display_name": "TSLA",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.05,
      "timing_readiness": 0.0,
      "trigger_type": "watch_only",
      "trigger_horizon": "unknown",
      "trigger_quality": 0.0,
      "thesis_state": "low_quality",
      "semantic_summary": "TSLA is a held position, but the run contains no substantive company analysis, investment plan, trigger conditions, or event/price confirmation. The only actionable interpretation is to maintain watch-only status until fresh analysis or explicit portfolio instructions are available.",
      "counter_evidence": [
        "No company news, disclosures, macro inputs, social data, or final investment plan were provided.",
        "Quality flag indicates missing analysis for a held position.",
        "Suggested action is HOLD with no triggered action and no trigger conditions."
      ],
      "reason_codes": [
        "missing_analysis_for_held_position",
        "no_trigger_conditions",
        "rule_only_decision",
        "insufficient_data_coverage",
        "watch_only"
      ],
      "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.68,
      "thesis_state": "constructive_but_not_confirmed",
      "semantic_summary": "TSM thesis is constructive for a held position: fundamentals, AI demand, margins, and trend recovery support an OVERWEIGHT/HOLD bias. Timing is not confirmed because price is near Bollinger and prior-high resistance after a sharp rebound, so new ADD action should wait for either a volume-backed close above 378.90 or a controlled pullback holding the 359.54-351.56 support zone.",
      "counter_evidence": [
        "Entry action is explicitly WAIT, not immediate ADD.",
        "Price is near 378.90 Bollinger resistance and the 384.67-386.64 prior high zone after a strong rebound.",
        "Recent volume has reportedly faded toward the 9 million share range after the April 8 spike, so breakout demand still needs confirmation.",
        "ATR is elevated at 12.64, increasing gap and position-sizing risk.",
        "Earnings and guidance expectations around AI/HPC demand, margins, and capex efficiency are high and could disappoint."
      ],
      "reason_codes": [
        "constructive_fundamental_thesis",
        "held_position_overweight_bias",
        "entry_wait_explicit",
        "resistance_nearby",
        "volume_confirmation_required",
        "support_pullback_alternative",
        "earnings_guidance_event_risk",
        "atr_elevated_position_size_risk"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VRT",
      "display_name": "VRT",
      "decision_source": "RULE+DEEP",
      "thesis_strength": 0.76,
      "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": "VRT has a constructive medium-term thesis supported by trend, momentum, improving fundamentals, AI data-center demand, index inclusion, acquisition optionality, and analyst support, but the action plan explicitly says to hold and wait rather than add now. Timing is not confirmed because price is extended after a sharp rebound, RSI is overbought, ATR and beta are high, and the add trigger requires either a volume-backed close above 312.46 or a controlled pullback holding 299.96/295.11.",
      "counter_evidence": [
        "Entry action is WAIT and setup quality is DEVELOPING, not actionable now.",
        "Latest close near 310.51 is extended after roughly 32.6% rebound from around 234.22.",
        "RSI near 70.99 and ATR near 13.92 indicate unfavorable short-term entry asymmetry.",
        "No same-day intraday snapshot was used, reducing timing confidence.",
        "Some valuation and target-price evidence is stretched, including high P/E and P/B and a Barclays target around 300 below the latest close.",
        "Disclosure coverage is thin and several vendor fallbacks occurred."
      ],
      "reason_codes": [
        "bullish_medium_term_thesis",
        "entry_action_wait",
        "developing_setup",
        "breakout_requires_volume_confirmation",
        "overbought_rsi",
        "extended_after_sharp_rebound",
        "high_volatility_beta_atr",
        "support_pullback_alternative",
        "valuation_stretched",
        "intraday_snapshot_missing",
        "thin_disclosure_coverage"
      ],
      "review_required": false
    },
    {
      "canonical_ticker": "VXUS",
      "display_name": "VXUS",
      "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": "VXUS has a constructive medium-term overweight thesis supported by recovery above key moving averages, positive MACD, diversification demand, and potential dollar-weakness tailwinds. Timing is not yet actionable because the plan explicitly says WAIT: price is near the 82.90 breakout threshold and 84.11-84.28 resistance after a sharp rebound, with RSI already elevated and ATR high. Add only after a confirmed pullback rebound near 80.10-79.70 or a volume-backed close above 82.90 with follow-through.",
      "counter_evidence": [
        "Entry action is WAIT rather than buy/add now.",
        "Price is close to 84.11-84.28 resistance after a fast rebound from 74.71 to 82.81.",
        "RSI has risen quickly to about 66 and could approach overbought conditions near resistance.",
        "ATR remains elevated, so position sizing should be reduced and staged.",
        "Same-day intraday snapshot is missing, reducing timing confidence.",
        "Macro risks include dollar strength, oil shocks, reduced rate-cut expectations, and geopolitical escalation."
      ],
      "reason_codes": [
        "constructive_medium_term_thesis",
        "entry_action_wait",
        "near_resistance_zone",
        "breakout_not_confirmed",
        "pullback_retest_preferred",
        "elevated_rsi_after_sharp_rebound",
        "high_atr_requires_staged_sizing",
        "intraday_snapshot_missing"
      ],
      "review_required": false
    }
  ]
}