{
  "ticker": "LHX",
  "ticker_name": "L3Harris Technologies",
  "status": "success",
  "trade_date": "2026-04-16",
  "analysis_date": "2026-04-17",
  "decision": "{\n  \"rating\": \"OVERWEIGHT\",\n  \"portfolio_stance\": \"BULLISH\",\n  \"entry_action\": \"WAIT\",\n  \"setup_quality\": \"DEVELOPING\",\n  \"confidence\": 0.68,\n  \"time_horizon\": \"medium\",\n  \"entry_logic\": \"LHX의 중기 투자 관점은 유지한다. 공격적 분석가는 Virginia 고체 로켓 모터 증설, 보고된 $1B 정부 지원, 미사일 재고 보충과 hypersonics 수요, 최근 $1.804B 자유현금흐름, 순부채 $11.383B에서 $10.047B로 감소를 근거로 구조적 방산 수혜를 강조했다. 중립 분석가도 이 촉매들이 실질적이며 200일 이동평균 약 304 위에서 장기 구조가 훼손되지 않았다고 평가했다. 다만 보수적 분석가와 중립 분석가 모두 현재 가격이 340-365 박스권 중간, 50일 이동평균 약 354.6 부근, RSI 48.79, MACD 0.28로 모멘텀이 확정되지 않았다고 지적했다. 따라서 오늘 즉시 매수하지 않고 WAIT한다. 신규 진입은 365 위 일간 종가와 최근 1.0M-1.4M 주 거래량을 뚜렷하게 넘는 거래량이 동반되거나, 343-346 조정에서 340을 지키고 RSI가 40 부근에서 안정되며 반전 거래량이 개선될 때 starter로만 정당화된다.\",\n  \"exit_logic\": \"신규 전술 포지션은 LHX가 340 아래 일간 종가를 내면 현재 박스권 하단 이탈로 보고 축소 또는 청산한다. 365 돌파 진입의 경우 돌파 실패 후 354 아래 종가가 나오면 50일 이동평균과 VWMA 부근의 균형 회복 실패로 판단해 줄이거나 청산한다. 중기 논리는 다음 실적에서 영업마진 회복이 확인되지 않거나, $1.804B 자유현금흐름 중 약 $1.201B가 운전자본 기여였다는 우려가 반복 가능성 결여로 드러나거나, CAPEX 지연과 비용 초과, 인증 병목, 수주 전환 약화가 나타나면 하향한다.\",\n  \"position_sizing\": \"기존 보유자는 OVERWEIGHT 노출을 유지할 수 있지만 340-365 박스권 중간에서는 추가 매수를 피한다. 신규 자금은 확인 신호 후에도 full position보다 작은 starter로 시작한다. ATR 약 8.8로 일간 변동 위험이 크고 trailing P/E 약 41.5, forward P/E 약 26으로 회복 기대가 이미 상당 부분 반영되어 있어 실망 허용 폭이 좁다. 추가 매수는 365 돌파 후 지지 재확인, 또는 실적에서 마진 회복, 반복 가능한 자유현금흐름, 추가 부채 축소가 확인될 때로 제한한다.\",\n  \"risk_limits\": \"340 일간 종가를 핵심 기술적 손절 기준으로 둔다. 365 돌파 매수는 354 아래 종가를 실패 기준으로 삼아 더 빠르게 축소한다. 실적, 방산 예산, 정책, 계약, 생산 증설 관련 뉴스 전후에는 갭 위험이 기술적 손절을 무력화할 수 있으므로 포지션을 보수적으로 유지한다. 밸류에이션이 추가 확장되는데 EPS, 마진, 현금흐름 개선이 뒤따르지 않으면 OVERWEIGHT 유지 근거를 재평가한다.\",\n  \"catalysts\": [\n    \"$1.27B-$1.3B Virginia 고체 로켓 모터 증설과 Patriot, Tomahawk, hypersonics, 우주 발사 수요 연결\",\n    \"방산 산업 기반 확대를 지원하는 것으로 보고된 $1B 미국 정부 commitment\",\n    \"잠재적 $465M 미국 육군 차세대 야간투시 프로그램 선정 가능성\",\n    \"순부채가 $11.383B에서 $10.047B로 감소하고 최근 분기 자유현금흐름이 $1.804B로 개선된 점\",\n    \"지속적인 방산 예산, 미사일 재고 보충, 지정학적 수요 narrative\"\n  ],\n  \"invalidators\": [\n    \"340 아래 일간 종가로 340-365 박스권 하단 이탈\",\n    \"최근 약 6.7%까지 하락한 영업마진의 회복 실패\",\n    \"최근 자유현금흐름 강세가 대부분 비반복 운전자본 timing으로 확인되는 경우\",\n    \"로켓 모터 증설에서 CAPEX 지연, 비용 초과, 인증 병목, 노동 제약, 약한 수주 전환 발생\",\n    \"52주 고점 부근에서 추가 내부자 매도 또는 EPS와 마진 확인 없는 밸류에이션 압축\"\n  ],\n  \"watchlist_triggers\": [\n    \"365 위 일간 종가와 최근 1.0M-1.4M 주 범위를 뚜렷하게 넘는 거래량\",\n    \"RSI 55 상회, MACD 재가속, 가격의 VWMA 상회가 함께 나타나는 경우\",\n    \"343-346 조정에서 340을 지키고 개선된 거래량으로 반전하는 경우\",\n    \"다음 실적에서 마진 회복, 반복 가능한 자유현금흐름, 지속적 부채 감소 확인\",\n    \"Virginia 로켓 모터 증설의 funding, 생산 일정, 고객 수요 전환 확인\"\n  ],\n  \"data_coverage\": {\n    \"company_news_count\": 3,\n    \"disclosures_count\": 0,\n    \"social_source\": \"news_derived\",\n    \"macro_items_count\": 1\n  }\n}",
  "started_at": "2026-04-17T18:44:40.400705+09:00",
  "finished_at": "2026-04-17T18:58:25.662448+09:00",
  "duration_seconds": 825.26,
  "metrics": {
    "llm_calls": 60,
    "tool_calls": 18,
    "tokens_in": 0,
    "tokens_out": 0,
    "tokens_available": false,
    "calls_by_model": {
      "gpt-5.4": 60
    }
  },
  "tool_telemetry": {
    "total_tool_calls": 18,
    "vendor_calls": {
      "yfinance": 15,
      "alpha_vantage": 3
    },
    "fallback_count": 1,
    "events": [
      {
        "method": "get_stock_data",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_indicators",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_social_sentiment",
        "vendor": "yfinance",
        "status": "fallback",
        "fallback": true,
        "note": "yfinance: empty or unusable result"
      },
      {
        "method": "get_company_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_company_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_macro_news",
        "vendor": "alpha_vantage",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_cashflow",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_income_statement",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_balance_sheet",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_insider_transactions",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      },
      {
        "method": "get_fundamentals",
        "vendor": "yfinance",
        "status": "success",
        "fallback": false,
        "note": null
      }
    ],
    "called_tools": [],
    "intraday_snapshot_used": false
  },
  "quality_flags": [
    "token_usage_unavailable"
  ],
  "report_writer": {
    "status": "success",
    "scope": "ticker",
    "provider": "codex",
    "model": "gpt-5.4"
  },
  "provider": "codex",
  "models": {
    "quick_model": "gpt-5.4",
    "deep_model": "gpt-5.4",
    "output_model": "gpt-5.4"
  },
  "intraday_snapshot_attempts": [
    {
      "ticker": "LHX",
      "attempted": true,
      "success": true,
      "checkpoint": "05:05",
      "interval": "5m",
      "attempted_at": "2026-04-17T21:03:00.330095+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:55:00-04:00"
    },
    {
      "ticker": "LHX",
      "attempted": true,
      "success": true,
      "checkpoint": "selective_rerun",
      "interval": "5m",
      "attempted_at": "2026-04-17T22:25:13.983512+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-16T15:55:00-04:00"
    },
    {
      "ticker": "LHX",
      "attempted": true,
      "success": true,
      "checkpoint": "05:05",
      "interval": "5m",
      "attempted_at": "2026-04-18T06:00:39.484940+09:00",
      "provider": "yfinance_intraday",
      "market_data_asof": "2026-04-17T15:55:00-04:00"
    }
  ],
  "latest_intraday_snapshot_attempt": {
    "ticker": "LHX",
    "attempted": true,
    "success": true,
    "checkpoint": "05:05",
    "interval": "5m",
    "attempted_at": "2026-04-18T06:00:39.484940+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T15:55:00-04:00"
  },
  "intraday_snapshot_latest_attempt": {
    "ticker": "LHX",
    "attempted": true,
    "success": true,
    "checkpoint": "05:05",
    "interval": "5m",
    "attempted_at": "2026-04-18T06:00:39.484940+09:00",
    "provider": "yfinance_intraday",
    "market_data_asof": "2026-04-17T15:55:00-04:00"
  }
}