{
  "symbol": "BTC/USDT",
  "timeframe": "1d",
  "timestamp": "2026-06-16 17:00 KST",
  "last_price": 66341.8,
  "num_candles": 300,
  "stage1_analyses": {
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "neutral",
      "confidence": 0.55,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.58,
      "setup_signals": [
        "7일 범위 EQ $63,973.65 위의 프리미엄 구간에서 거래 중: 현재가 $66,341.80",
        "단기 저항 클러스터: EMA20 $66,680.87 및 7일 고점 $67,255.40 바로 아래",
        "최근 4개 양봉 이후 마지막 캔들 doji@299 발생, 상승 모멘텀 둔화 신호",
        "evening_star@292 약세 후보 존재, 다만 품질 0.459로 강도는 제한적",
        "고거래량 패턴 없음: 최근 bullish engulfing 및 morning star의 신뢰도 보강 부족"
      ],
      "reasoning": "캔들 기준으로는 morning_star@290 품질 0.655와 bullish_engulfing 3회가 확인되어 단기 반등 시도는 분명하지만, 현재가 $66,341.80은 EMA20 $66,680.87 아래에 있어 아직 구조적 회복으로 보기 어렵습니다. 더 큰 구조에서는 EMA120 $74,244.80 대비 -10.6%, EMA240 $81,300.37 대비 -18.4% 낮아 중기 구조_bias는 여전히 bearish입니다. 특히 7일 고점 $67,255.40과 EMA20 $66,680.87이 가까운 저항대로 작용하는 가운데, 마지막 doji@299는 반등 말미의 불확실성 및 매수세 둔화를 시사합니다. 따라서 bullish reversal setup은 존재하지만 거래량 확인이 없고 저항권에서 도지가 발생했기 때문에 최종 신호는 neutral로 판단합니다.",
      "key_levels": {
        "support": [
          63973.65,
          60691.9
        ],
        "resistance": [
          66680.87,
          67255.4,
          74244.8
        ]
      },
      "time_horizon": "short to medium term",
      "invalidation_level": "$67,255.40 상향 돌파 및 일봉 종가 안착 시 약세 setup은 무효화",
      "risk_scenario": "반대로 BTC가 EMA20 $66,680.87을 회복하고 7일 고점 $67,255.40 위에서 일봉 종가를 형성하면, 최근 morning star와 bullish engulfing들이 실제 추세 전환 신호로 재평가될 수 있습니다. 이 경우 다음 저항은 EMA120 $74,244.80이며, 숏 포지션 또는 약세 관점은 빠르게 손실 구간에 진입할 수 있습니다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 135,
        "recent_patterns": 8,
        "pattern_list": [
          "bullish_engulfing@290",
          "bullish_engulfing@294",
          "bullish_engulfing@296",
          "morning_star@290",
          "evening_star@292",
          "doji@293",
          "doji@295",
          "doji@299"
        ],
        "atr_value": 2222.7,
        "vol_avg_20": 197429.65,
        "high_volume_patterns": [],
        "pattern_candidates": [
          {
            "pattern": "morning_star",
            "signal": "bullish",
            "pattern_quality": 0.655,
            "tier": "strict",
            "high_volume": false
          },
          {
            "pattern": "bullish_engulfing",
            "signal": "bullish",
            "pattern_quality": 0.63,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bullish_engulfing",
            "signal": "bullish",
            "pattern_quality": 0.623,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bullish_engulfing",
            "signal": "bullish",
            "pattern_quality": 0.604,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "evening_star",
            "signal": "bearish",
            "pattern_quality": 0.459,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.655,
        "bull_score": 3.05,
        "bear_score": 0.8
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.55,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.58,\n  \"setup_signals\": [\n    \"7일 범위 EQ $63,973.65 위의 프리미엄 구간에서 거래 중: 현재가 $66,341.80\",\n    \"단기 저항 클러스터: EMA20 $66,680.87 및 7일 고점 $67,255.40 바로 아래\",\n    \"최근 4개 양봉 이후 마지막 캔들 doji@299 발생, 상승 모멘텀 둔화 신호\",\n    \"evening_star@292 약세 후보 존재, 다만 품질 0.459로 강도는 제한적\",\n    \"고거래량 패턴 없음: 최근 bullish engulfing 및 morning star의 신뢰도 보강 부족\"\n  ],\n  \"reasoning\": \"캔들 기준으로는 morning_star@290 품질 0.655와 bullish_engulfing 3회가 확인되어 단기 반등 시도는 분명하지만, 현재가 $66,341.80은 EMA20 $66,680.87 아래에 있어 아직 구조적 회복으로 보기 어렵습니다. 더 큰 구조에서는 EMA120 $74,244.80 대비 -10.6%, EMA240 $81,300.37 대비 -18.4% 낮아 중기 구조_bias는 여전히 bearish입니다. 특히 7일 고점 $67,255.40과 EMA20 $66,680.87이 가까운 저항대로 작용하는 가운데, 마지막 doji@299는 반등 말미의 불확실성 및 매수세 둔화를 시사합니다. 따라서 bullish reversal setup은 존재하지만 거래량 확인이 없고 저항권에서 도지가 발생했기 때문에 최종 신호는 neutral로 판단합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      63973.65,\n      60691.9\n    ],\n    \"resistance\": [\n      66680.87,\n      67255.4,\n      74244.8\n    ]\n  },\n  \"time_horizon\": \"short to medium term\",\n  \"invalidation_level\": \"$67,255.40 상향 돌파 및 일봉 종가 안착 시 약세 setup은 무효화\",\n  \"risk_scenario\": \"반대로 BTC가 EMA20 $66,680.87을 회복하고 7일 고점 $67,255.40 위에서 일봉 종가를 형성하면, 최근 morning star와 bullish engulfing들이 실제 추세 전환 신호로 재평가될 수 있습니다. 이 경우 다음 저항은 EMA120 $74,244.80이며, 숏 포지션 또는 약세 관점은 빠르게 손실 구간에 진입할 수 있습니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "neutral",
      "confidence": 0.52,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.45,
      "setup_signals": [
        "현재가 $66,341.80는 0.5 균형가 $70,954.35 아래의 디스카운트 구간에 위치",
        "0.236 되돌림 지지선 $64,684.69 위에서 가격이 유지되고 있으며, 현재 이격은 약 2.50%",
        "최근 5개 일봉 중 4개가 양봉으로, $59,080 저점 이후 단기 반등 시도 진행",
        "상단 0.382 저항 $68,152.00 돌파 전까지는 구조 전환이 확인되지 않은 선행 반등 setup에 불과"
      ],
      "reasoning": "확정 구조는 $82,829 고점에서 $59,080 저점으로 이어진 하락 스윙이 기준이며, 현재가는 EMA120 $74,244.80 및 EMA240 $81,300.37 아래에 있어 구조_bias는 여전히 bearish입니다. 다만 현재가 $66,341.80는 0.236 되돌림 $64,684.69 위에 있고 0.5 균형가 $70,954.35 아래의 디스카운트 영역에 있어, 단기 setup_bias는 $68,152.00 재시험을 노리는 bullish 성격입니다. 핵심 저항은 0.382 $68,152.00, 0.5 $70,954.35, 그리고 가장 중요한 황금비 0.618 $73,756.70이며, 이 구간을 확인 돌파하기 전까지는 하락 구조의 되돌림으로 해석합니다. 현재 fib_reaction_state가 distant이고 reaction_probability가 0.25로 낮아, 강한 방향성보다는 $64,684.69~$68,152.00 사이의 중립적 압축 구간으로 판단합니다.",
      "key_levels": {
        "support": [
          64684.69,
          59080.0,
          52620.35
        ],
        "resistance": [
          68152.0,
          70954.35,
          73756.7
        ]
      },
      "time_horizon": "short/medium term",
      "invalidation_level": "$70,954.35",
      "risk_scenario": "$68,152.00의 0.382 되돌림 저항을 돌파하고 $70,954.35 균형가 위에서 일봉 종가가 안착하면, 현재의 중립-하락 구조 해석은 약화되며 $73,756.70의 0.618 황금비 저항까지 확장 반등할 수 있습니다. 반대로 $64,684.69를 이탈하면 단기 bullish setup은 실패하며 $59,080.00 저점 재시험, 이후 $52,620.35의 1.272 확장 지지까지 하락 리스크가 열립니다.",
      "data_quality": "medium",
      "metrics": {
        "swing_pair": "High→Low: $82,829 → $59,080",
        "direction": "down",
        "nearest_fib": "ret_0.236",
        "nearest_fib_price": 64684.69,
        "nearest_fib_distance": 2.5,
        "golden_ratio_level": 73756.7,
        "fib_ret_382": 68152.0,
        "fib_ret_618": 73756.7,
        "confluence_zones": [
          {
            "price": 59080.0,
            "count": 2,
            "levels": [
              "ext_1.0",
              "ext_1.0"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [
          64684.6932,
          59080.0,
          52620.3536
        ],
        "resistance_levels": [
          68152.0034,
          70954.35,
          73756.6966
        ],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 64684.69,
            "distance_pct": 2.5,
            "is_support": true,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.382",
            "price": 68152.0,
            "distance_pct": 2.73,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.5",
            "price": 70954.35,
            "distance_pct": 6.95,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.618",
            "price": 73756.7,
            "distance_pct": 11.18,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ret_0.786",
            "price": 77746.48,
            "distance_pct": 17.19,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.0",
            "price": 59080.0,
            "distance_pct": 10.95,
            "is_support": true,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.272",
            "price": 52620.35,
            "distance_pct": 20.68,
            "is_support": true,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.414",
            "price": 49248.04,
            "distance_pct": 25.77,
            "is_support": true,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.618",
            "price": 44403.3,
            "distance_pct": 33.07,
            "is_support": true,
            "cluster_score": 0.0
          },
          {
            "name": "ext_2.0",
            "price": 35331.3,
            "distance_pct": 46.74,
            "is_support": true,
            "cluster_score": 0.0
          }
        ],
        "confluence_quality": 0.6,
        "fib_reaction_state": "distant",
        "reaction_probability": 0.25
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.52,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.45,\n  \"setup_signals\": [\n    \"현재가 $66,341.80는 0.5 균형가 $70,954.35 아래의 디스카운트 구간에 위치\",\n    \"0.236 되돌림 지지선 $64,684.69 위에서 가격이 유지되고 있으며, 현재 이격은 약 2.50%\",\n    \"최근 5개 일봉 중 4개가 양봉으로, $59,080 저점 이후 단기 반등 시도 진행\",\n    \"상단 0.382 저항 $68,152.00 돌파 전까지는 구조 전환이 확인되지 않은 선행 반등 setup에 불과\"\n  ],\n  \"reasoning\": \"확정 구조는 $82,829 고점에서 $59,080 저점으로 이어진 하락 스윙이 기준이며, 현재가는 EMA120 $74,244.80 및 EMA240 $81,300.37 아래에 있어 구조_bias는 여전히 bearish입니다. 다만 현재가 $66,341.80는 0.236 되돌림 $64,684.69 위에 있고 0.5 균형가 $70,954.35 아래의 디스카운트 영역에 있어, 단기 setup_bias는 $68,152.00 재시험을 노리는 bullish 성격입니다. 핵심 저항은 0.382 $68,152.00, 0.5 $70,954.35, 그리고 가장 중요한 황금비 0.618 $73,756.70이며, 이 구간을 확인 돌파하기 전까지는 하락 구조의 되돌림으로 해석합니다. 현재 fib_reaction_state가 distant이고 reaction_probability가 0.25로 낮아, 강한 방향성보다는 $64,684.69~$68,152.00 사이의 중립적 압축 구간으로 판단합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      64684.69,\n      59080.0,\n      52620.35\n    ],\n    \"resistance\": [\n      68152.0,\n      70954.35,\n      73756.7\n    ]\n  },\n  \"time_horizon\": \"short/medium term\",\n  \"invalidation_level\": \"$70,954.35\",\n  \"risk_scenario\": \"$68,152.00의 0.382 되돌림 저항을 돌파하고 $70,954.35 균형가 위에서 일봉 종가가 안착하면, 현재의 중립-하락 구조 해석은 약화되며 $73,756.70의 0.618 황금비 저항까지 확장 반등할 수 있습니다. 반대로 $64,684.69를 이탈하면 단기 bullish setup은 실패하며 $59,080.00 저점 재시험, 이후 $52,620.35의 1.272 확장 지지까지 하락 리스크가 열립니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "neutral",
      "confidence": 0.56,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.64,
      "setup_signals": [
        "가격 $66,341.80이 EMA20 $66,680.87 아래에 있어 구조적으로는 약하지만, CVD divergence 0.700과 CVD change +168.7710으로 매수 흡수 가능성이 존재",
        "OI가 24시간 +1.5950% 증가해 신규 포지션 유입이 확인되며, 가격은 24시간 +0.08%로 정체되어 파생 포지셔닝이 가격보다 선행할 가능성",
        "펀딩 평균이 거의 0 이하이고 spot-futures basis가 -0.0455%로 소폭 백워데이션 상태라 과열 롱보다는 반등형 세팅에 가까움",
        "롱 계정 비율은 0.571로 아직 롱 쏠림이 남아 있으나 24시간 -0.0173 감소했고, 숏 계정은 +0.017 상승해 단기적으로 숏 진입이 늘어나는 흐름",
        "가장 강한 청산 레벨이 현재가 바로 아래 $66,100에 있어 하방 유동성 스윕 후 반등하는 spring 후보 구간"
      ],
      "reasoning": "확인된 구조는 여전히 약세입니다. 현재가 $66,341.80은 EMA20 $66,680.87 아래이고, EMA120 $74,244.80 및 EMA240 $81,300.37 대비 각각 -10.6%, -18.4% 낮아 중기 구조 전환은 아직 확인되지 않았습니다. 다만 세팅 측면에서는 CVD divergence 0.700, OI +1.5950%, 중립 이하 펀딩, basis -0.0455%가 동시에 나타나 가격 하락 압력 대비 매수 흡수 가능성을 시사합니다. 단기 핵심은 $66,100 청산 레벨 스윕 이후 $66,400 및 $67,100 상방 유동성을 회수할 수 있는지이며, $63,500 아래로 밀리면 롱 세팅은 실패로 봐야 합니다.",
      "key_levels": {
        "support": [
          66100,
          63500,
          61600,
          60691.9
        ],
        "resistance": [
          66400,
          66680.87,
          67100,
          67255.4,
          69400
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "63500",
      "risk_scenario": "$66,100 하방 청산을 스윕한 뒤 반등하지 못하고 $63,500까지 밀리면, OI 증가분은 신규 숏 또는 롱 손절 물량으로 해석되며 $61,600 및 7일 저점 $60,691.90 재테스트 가능성이 커집니다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.7,
        "cvd_change": 168.771,
        "oi_trend": 0.659,
        "oi_change_pct_24h": 1.595,
        "oi_latest": 103300.779,
        "funding_pressure": 0.508,
        "funding_avg": -7.7e-06,
        "funding_change_24h": -3.236e-05,
        "long_account_ratio": 0.579,
        "short_account_ratio": 0.421,
        "long_account_latest": 0.571,
        "short_account_latest": 0.429,
        "long_account_change_24h": -0.0173,
        "short_account_change_24h": 0.0173,
        "account_flow_label": "short_accounts_rising_long_accounts_falling",
        "account_short_crowding": 0.0,
        "account_long_crowding": 0.66,
        "ls_imbalance": 0.0,
        "ls_imbalance_interpretation": "high=short-account crowding / low=long-account crowding",
        "spot_futures_basis_score": 0.489,
        "spot_futures_basis_pct": -0.0455,
        "basis_change_lookback": -0.0005,
        "aggregate_score": 0.471,
        "bull_signals": 2,
        "bear_signals": 1,
        "liq_below": [
          [
            66100,
            122826.1169306
          ],
          [
            63500,
            109886.1233658
          ],
          [
            61600,
            97966.968495
          ]
        ],
        "liq_above": [
          [
            66400,
            84300.4107152
          ],
          [
            67100,
            99816.29349375
          ],
          [
            69400,
            95355.971676
          ]
        ],
        "strongest_liq_level": 66100,
        "fragility_score": 0.928,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.56,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.64,\n  \"setup_signals\": [\n    \"가격 $66,341.80이 EMA20 $66,680.87 아래에 있어 구조적으로는 약하지만, CVD divergence 0.700과 CVD change +168.7710으로 매수 흡수 가능성이 존재\",\n    \"OI가 24시간 +1.5950% 증가해 신규 포지션 유입이 확인되며, 가격은 24시간 +0.08%로 정체되어 파생 포지셔닝이 가격보다 선행할 가능성\",\n    \"펀딩 평균이 거의 0 이하이고 spot-futures basis가 -0.0455%로 소폭 백워데이션 상태라 과열 롱보다는 반등형 세팅에 가까움\",\n    \"롱 계정 비율은 0.571로 아직 롱 쏠림이 남아 있으나 24시간 -0.0173 감소했고, 숏 계정은 +0.017 상승해 단기적으로 숏 진입이 늘어나는 흐름\",\n    \"가장 강한 청산 레벨이 현재가 바로 아래 $66,100에 있어 하방 유동성 스윕 후 반등하는 spring 후보 구간\"\n  ],\n  \"reasoning\": \"확인된 구조는 여전히 약세입니다. 현재가 $66,341.80은 EMA20 $66,680.87 아래이고, EMA120 $74,244.80 및 EMA240 $81,300.37 대비 각각 -10.6%, -18.4% 낮아 중기 구조 전환은 아직 확인되지 않았습니다. 다만 세팅 측면에서는 CVD divergence 0.700, OI +1.5950%, 중립 이하 펀딩, basis -0.0455%가 동시에 나타나 가격 하락 압력 대비 매수 흡수 가능성을 시사합니다. 단기 핵심은 $66,100 청산 레벨 스윕 이후 $66,400 및 $67,100 상방 유동성을 회수할 수 있는지이며, $63,500 아래로 밀리면 롱 세팅은 실패로 봐야 합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      66100,\n      63500,\n      61600,\n      60691.9\n    ],\n    \"resistance\": [\n      66400,\n      66680.87,\n      67100,\n      67255.4,\n      69400\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"63500\",\n  \"risk_scenario\": \"$66,100 하방 청산을 스윕한 뒤 반등하지 못하고 $63,500까지 밀리면, OI 증가분은 신규 숏 또는 롱 손절 물량으로 해석되며 $61,600 및 7일 저점 $60,691.90 재테스트 가능성이 커집니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "bearish",
      "confidence": 0.78,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.886,
      "setup_signals": [
        "현재가 $66,341.80가 EQ $70,954.35 아래의 discount 영역에 위치해 있으나, EMA20 $66,680.87 아래에서 단기 수용 중",
        "이전일 고가 $67,255.40를 돌파하지 못해 단기 buy-side liquidity 확보 실패",
        "이전일 저가 $65,314.30 및 최근 bearish CHoCH 레벨 $64,918.20 아래의 sell-side liquidity가 근접 타깃으로 존재",
        "상단 $80,651.20-$82,828.70에 candidate bearish OB가 남아 있어 중기 공급 구간으로 작용 가능",
        "최근 구조 이벤트가 CHoCH_bearish $84,408.60 이후 BOS_bullish $75,998.90를 만들었지만, 다시 CHoCH_bearish $64,918.20가 발생해 하방 구조 리스크가 우세"
      ],
      "reasoning": "확정 구조 관점에서는 최근 BOS/CHoCH 시퀀스가 혼재되어 있으나, 마지막 주요 구조 이벤트가 $64,918.20 기준 bearish CHoCH이며 bear_score 9.6이 bull_score 5.0보다 크게 우위라 structure_bias는 bearish로 본다. 현재가는 $66,341.80로 EMA20 $66,680.87 아래에 있으며, EMA120 $74,244.80 및 EMA240 $81,300.37보다 각각 크게 낮아 상위 추세의 공급 압력이 유지된다. 단기적으로는 $67,255.40 이전일 고가를 돌파하지 못했고, 아래에는 $65,314.30 이전일 저가와 $64,918.20 CHoCH 레벨이 있어 기관 관점에서 sell-side liquidity를 먼저 사냥할 가능성이 높다. 다만 현재가가 EQ $70,954.35 아래 discount 영역에 있기 때문에 신규 숏은 프리미엄 숏보다 품질이 낮으며, $67,255.40 위로 수용되면 단기 하방 셋업은 약화된다.",
      "key_levels": {
        "support": [
          65314.3,
          64918.2,
          60691.9,
          59080.0
        ],
        "resistance": [
          66680.87,
          67255.4,
          70954.35,
          75998.9,
          80651.2,
          82828.7
        ]
      },
      "time_horizon": "short/medium term",
      "invalidation_level": "$67,255.40",
      "risk_scenario": "만약 가격이 이전일 고가 $67,255.40를 상향 돌파한 뒤 EMA20 $66,680.87 위에서 재수용된다면, 단기 sell-side liquidity 사냥 시나리오는 실패하고 $70,954.35 EQ까지 되돌림이 열릴 수 있다. 특히 EQ를 회복하면 bearish setup은 중립화되며, 이후 $75,998.90 BOS_bullish 레벨 재테스트 가능성이 커진다.",
      "data_quality": "medium",
      "metrics": {
        "order_blocks_total": 1,
        "confirmed_bullish_ob": 0,
        "confirmed_bearish_ob": 0,
        "candidate_bullish_ob": 0,
        "candidate_bearish_ob": 1,
        "active_bullish_ob": 0,
        "active_bearish_ob": 0,
        "nearest_bull_ob_range": null,
        "nearest_bear_ob_range": {
          "bottom": 80651.2,
          "top": 82828.7,
          "quality": "candidate",
          "score": 0.512
        },
        "active_bullish_ob_list": [],
        "active_bearish_ob_list": [],
        "ob_mitigated_count": 1,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 69,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "CHoCH_bearish",
          "BOS_bearish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish",
          "CHoCH_bearish"
        ],
        "bos_choch_levels": [
          {
            "type": "CHoCH_bearish",
            "level": 108566.0
          },
          {
            "type": "BOS_bearish",
            "level": 101516.5
          },
          {
            "type": "BOS_bullish",
            "level": 94555.0
          },
          {
            "type": "CHoCH_bearish",
            "level": 84408.6
          },
          {
            "type": "BOS_bullish",
            "level": 75998.9
          },
          {
            "type": "CHoCH_bearish",
            "level": 64918.2
          }
        ],
        "bos_sequence": [
          "CHoCH_bullish",
          "CHoCH_bearish",
          "BOS_bearish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish",
          "CHoCH_bearish"
        ],
        "consecutive_bull_bos": 0,
        "consecutive_bear_bos": 0,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [],
        "current_zone": "discount",
        "eq_level": 70954.35,
        "range_high": 82828.7,
        "range_low": 59080.0,
        "bull_score": 5.0,
        "bear_score": 9.6,
        "setup_bias": "bearish",
        "setup_score": 0.886,
        "setup_signals": [
          "bearish CHoCH below $108,566.00",
          "bearish BOS below $101,516.50",
          "bearish CHoCH below $84,408.60",
          "bearish CHoCH below $64,918.20"
        ],
        "retracement_direction": "bearish",
        "current_retracement_pct": 34.4,
        "deepest_retracement_pct": 34.4,
        "previous_day_high": 67255.4,
        "previous_day_low": 65314.3,
        "broken_prev_high": false,
        "broken_prev_low": false,
        "sessions": {}
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.78,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.886,\n  \"setup_signals\": [\n    \"현재가 $66,341.80가 EQ $70,954.35 아래의 discount 영역에 위치해 있으나, EMA20 $66,680.87 아래에서 단기 수용 중\",\n    \"이전일 고가 $67,255.40를 돌파하지 못해 단기 buy-side liquidity 확보 실패\",\n    \"이전일 저가 $65,314.30 및 최근 bearish CHoCH 레벨 $64,918.20 아래의 sell-side liquidity가 근접 타깃으로 존재\",\n    \"상단 $80,651.20-$82,828.70에 candidate bearish OB가 남아 있어 중기 공급 구간으로 작용 가능\",\n    \"최근 구조 이벤트가 CHoCH_bearish $84,408.60 이후 BOS_bullish $75,998.90를 만들었지만, 다시 CHoCH_bearish $64,918.20가 발생해 하방 구조 리스크가 우세\"\n  ],\n  \"reasoning\": \"확정 구조 관점에서는 최근 BOS/CHoCH 시퀀스가 혼재되어 있으나, 마지막 주요 구조 이벤트가 $64,918.20 기준 bearish CHoCH이며 bear_score 9.6이 bull_score 5.0보다 크게 우위라 structure_bias는 bearish로 본다. 현재가는 $66,341.80로 EMA20 $66,680.87 아래에 있으며, EMA120 $74,244.80 및 EMA240 $81,300.37보다 각각 크게 낮아 상위 추세의 공급 압력이 유지된다. 단기적으로는 $67,255.40 이전일 고가를 돌파하지 못했고, 아래에는 $65,314.30 이전일 저가와 $64,918.20 CHoCH 레벨이 있어 기관 관점에서 sell-side liquidity를 먼저 사냥할 가능성이 높다. 다만 현재가가 EQ $70,954.35 아래 discount 영역에 있기 때문에 신규 숏은 프리미엄 숏보다 품질이 낮으며, $67,255.40 위로 수용되면 단기 하방 셋업은 약화된다.\",\n  \"key_levels\": {\n    \"support\": [\n      65314.3,\n      64918.2,\n      60691.9,\n      59080.0\n    ],\n    \"resistance\": [\n      66680.87,\n      67255.4,\n      70954.35,\n      75998.9,\n      80651.2,\n      82828.7\n    ]\n  },\n  \"time_horizon\": \"short/medium term\",\n  \"invalidation_level\": \"$67,255.40\",\n  \"risk_scenario\": \"만약 가격이 이전일 고가 $67,255.40를 상향 돌파한 뒤 EMA20 $66,680.87 위에서 재수용된다면, 단기 sell-side liquidity 사냥 시나리오는 실패하고 $70,954.35 EQ까지 되돌림이 열릴 수 있다. 특히 EQ를 회복하면 bearish setup은 중립화되며, 이후 $75,998.90 BOS_bullish 레벨 재테스트 가능성이 커진다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "neutral",
      "confidence": 0.44,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.55,
      "setup_signals": [
        "현재가 $66,341.80가 고품질 strict bullish Gartley 활성 PRZ $65,999.53-$67,113.44 내부에 위치",
        "해당 Gartley PRZ는 XAD + BC_EXT + ABCD 3중 Fib confluence이며 PRZ score 1.0, pattern score 0.942",
        "Gartley 핵심 비율 XAB 0.6129로 표준 0.618에 근접, ABC 0.7366으로 구조적 대칭 양호",
        "D 예상가 $66,556.49와 현재가의 괴리 약 0.32%로 PRZ 반응 관찰 구간",
        "아직 PRZ rejection, sweep→reclaim, 15m/1h MSS·CHoCH, CVD divergence 또는 OI squeeze 확인은 없음"
      ],
      "reasoning": "1일봉 기준 가장 중요한 하모닉은 bullish Gartley이며, PRZ $65,999.53-$67,113.44가 현재가 $66,341.80을 포함하고 있어 단기 반등 후보 구간이다. 다만 harmonic_vote_state가 pre_confirmation_reversal_candidate이고 confirmed_reaction=false이므로, 이 패턴은 아직 메인 경로를 뒤집을 수 없는 약한 반전 후보에 불과하다. 구조적으로는 가격이 EMA20 $66,680.87 바로 아래에 있고 EMA120 $74,244.80 및 EMA240 $81,300.37보다 크게 낮아 상위 추세 압박은 남아 있으나, 제공 데이터상 확정 BOS·CHoCH·구조적 수용이 없어 structure_bias는 neutral로 둔다. setup 측면에서는 고품질 3중 confluence PRZ 내부 진입이 확인되어 bullish setup은 존재하지만, 반응 확인이 없으므로 신호 자체는 neutral 유지가 타당하다.",
      "key_levels": {
        "support": [
          65999.53,
          65595.7,
          65604.43,
          60691.9
        ],
        "resistance": [
          67113.44,
          67255.4,
          67871.53,
          68683.96,
          69999.0
        ]
      },
      "time_horizon": "short/medium term",
      "invalidation_level": "$65,595.70 일봉 종가 이탈",
      "risk_scenario": "가격이 $65,999.53-$67,113.44 PRZ에서 반등하지 못하고 X 저점 $65,595.70 아래로 일봉 종가 이탈하면 bullish Gartley 반전 후보는 실패로 간주된다. 이 경우 $64,324.68-$65,323.41 부근의 하위 bullish Bat/Butterfly 후보 PRZ가 다음 반응 구간이 될 수 있으나, 품질이 낮거나 nearby/watch 등급이라 단독 매수 근거로는 부족하다. 반대로 $67,113.44 상단을 회복하고 $67,871.53, $68,683.96을 순차 돌파하면 Gartley TP ladder가 활성화되며 $69,999.00 구조 유동성까지 반등 여지가 열린다.",
      "data_quality": "medium",
      "metrics": {
        "patterns_found": 208,
        "completed_patterns_found": 81,
        "forming_d_prz_found": 127,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 30,
        "multiscale_swings_scanned": 59,
        "swing_highs_scanned": 28,
        "swing_lows_scanned": 31,
        "timeframe": "1d",
        "prz_active_threshold_pct": 1.0,
        "prz_nearby_threshold_pct": 2.0,
        "prz_watch_threshold_pct": 4.0,
        "prz_max_width_pct": 1.8,
        "quality_counts": {
          "high": 3,
          "medium": 53,
          "low": 152
        },
        "prz_status_counts": {
          "active": 25,
          "nearby": 11,
          "watch": 19,
          "far": 153,
          "forming": 94
        },
        "high_confluence_prz_count": 21,
        "strict_patterns_found": 56,
        "candidate_patterns_found": 152,
        "active_patterns_at_prz": 25,
        "nearby_patterns": 11,
        "all_patterns": [
          "gartley",
          "bat",
          "shark",
          "butterfly",
          "crab",
          "gartley",
          "butterfly",
          "butterfly",
          "bat",
          "bat",
          "butterfly",
          "gartley",
          "gartley",
          "bat",
          "butterfly",
          "butterfly",
          "gartley",
          "shark",
          "gartley",
          "shark",
          "shark",
          "bat",
          "gartley",
          "shark",
          "shark",
          "gartley",
          "bat",
          "crab",
          "crab",
          "crab",
          "crab",
          "crab",
          "crab",
          "shark",
          "butterfly",
          "shark",
          "butterfly",
          "gartley",
          "bat",
          "shark",
          "gartley",
          "bat",
          "bat",
          "crab",
          "shark",
          "butterfly",
          "bat",
          "shark",
          "butterfly",
          "bat",
          "butterfly",
          "bat",
          "butterfly",
          "bat",
          "shark",
          "crab",
          "crab",
          "crab",
          "shark",
          "butterfly",
          "crab",
          "gartley",
          "bat",
          "gartley",
          "shark",
          "butterfly",
          "bat",
          "butterfly",
          "crab",
          "shark",
          "shark",
          "butterfly",
          "crab",
          "shark",
          "bat",
          "butterfly",
          "crab",
          "crab",
          "gartley",
          "bat",
          "butterfly",
          "crab",
          "crab",
          "gartley",
          "shark",
          "crab",
          "gartley",
          "shark",
          "shark",
          "crab",
          "crab",
          "crab",
          "shark",
          "butterfly",
          "butterfly",
          "shark",
          "crab",
          "gartley",
          "shark",
          "shark",
          "crab",
          "butterfly",
          "crab",
          "shark",
          "shark",
          "shark",
          "shark",
          "crab",
          "bat",
          "butterfly",
          "crab",
          "bat",
          "butterfly",
          "shark",
          "gartley",
          "butterfly",
          "butterfly",
          "crab",
          "butterfly",
          "bat",
          "crab",
          "crab",
          "shark",
          "bat",
          "bat",
          "bat",
          "shark",
          "crab",
          "crab",
          "butterfly",
          "shark",
          "butterfly",
          "butterfly",
          "gartley",
          "crab",
          "crab",
          "shark",
          "butterfly",
          "bat",
          "crab",
          "crab",
          "crab",
          "crab",
          "butterfly",
          "butterfly",
          "butterfly",
          "butterfly",
          "shark",
          "butterfly",
          "butterfly",
          "bat",
          "butterfly",
          "crab",
          "shark",
          "butterfly",
          "gartley",
          "gartley",
          "crab",
          "shark",
          "bat",
          "shark",
          "bat",
          "crab",
          "gartley",
          "crab",
          "crab",
          "butterfly",
          "shark",
          "crab",
          "butterfly",
          "crab",
          "shark",
          "crab",
          "shark",
          "crab",
          "butterfly",
          "butterfly",
          "crab",
          "bat",
          "gartley",
          "crab",
          "crab",
          "crab",
          "butterfly",
          "bat",
          "bat",
          "butterfly",
          "bat",
          "butterfly",
          "gartley",
          "butterfly",
          "gartley",
          "shark",
          "shark",
          "shark",
          "shark",
          "crab",
          "butterfly",
          "crab",
          "crab",
          "crab",
          "shark",
          "gartley",
          "crab",
          "butterfly",
          "crab",
          "shark",
          "crab"
        ],
        "all_signals": [
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish"
        ],
        "best_pattern": "gartley",
        "best_pattern_quality": "strict",
        "best_quality": "high",
        "best_pattern_score": 0.942,
        "best_completion_status": "forming",
        "nearest_pattern": "gartley",
        "nearest_prz": 66358.83,
        "price_to_prz": 0.03,
        "prz_range": [
          65604.43,
          67113.23
        ],
        "council_relevant_prz_count": 1,
        "directional_influence_prz_count": 1,
        "confirmed_reaction_prz_count": 0,
        "validated_harmonic_tp_count": 0,
        "pattern_candidates": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.942,
            "ratio_score": 0.97,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 66556.49,
            "prz_range": [
              65999.53,
              67113.44
            ],
            "prz_width_pct": 1.674,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.32,
            "price_to_prz_pct_raw": 0.3236,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 66556.49,
              "a_price": 69999.0,
              "tp1_ad_382": 67871.53,
              "tp2_ad_618": 68683.96,
              "tp3_a_or_structure_liquidity": 69999.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6129,
              "ABC": 0.7366
            },
            "x_price": 65595.7,
            "x_idx": 182,
            "x_order": 3,
            "a_price": 69999.0,
            "a_idx": 188,
            "a_order": 3,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 69288.0,
            "c_idx": 223,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.86,
            "ratio_score": 0.979,
            "prz_score": 0.861,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 68541.75,
            "prz_range": [
              67557.47,
              69526.03
            ],
            "prz_width_pct": 2.872,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 3.32,
            "price_to_prz_pct_raw": 3.3161,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 68541.75,
              "a_price": 82828.7,
              "tp1_ad_382": 73999.36,
              "tp2_ad_618": 77371.08,
              "tp3_a_or_structure_liquidity": 82828.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5028,
              "ABC": 0.4491
            },
            "x_price": 65676.1,
            "x_idx": 224,
            "x_order": 3,
            "a_price": 82828.7,
            "a_idx": 258,
            "a_order": 8,
            "b_price": 74203.6,
            "b_idx": 275,
            "b_order": 3,
            "c_price": 78077.1,
            "c_idx": 278,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "low",
            "pattern_score": 0.776,
            "ratio_score": 0.776,
            "prz_score": 0.87,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 63574.32,
            "prz_range": [
              62684.52,
              64464.12
            ],
            "prz_width_pct": 2.799,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.17,
            "price_to_prz_pct_raw": -4.1715,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 63574.32,
              "a_price": 75998.9,
              "tp1_ad_382": 68320.51,
              "tp2_ad_618": 71252.71,
              "tp3_a_or_structure_liquidity": 75998.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.8341,
              "ABC": 0.5403
            },
            "x_price": 65569.2,
            "x_idx": 199,
            "x_order": 5,
            "a_price": 75998.9,
            "a_idx": 208,
            "a_order": 8,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 71999.9,
            "c_idx": 216,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.768,
            "ratio_score": 0.766,
            "prz_score": 0.922,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 69629.3,
            "prz_range": [
              68792.11,
              70466.5
            ],
            "prz_width_pct": 2.405,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 4.96,
            "price_to_prz_pct_raw": 4.9554,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 69629.3,
              "a_price": 65595.7,
              "tp1_ad_382": 68088.47,
              "tp2_ad_618": 67136.54,
              "tp3_a_or_structure_liquidity": 65595.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5786,
              "ABC": 0.4487
            },
            "x_price": 70938.5,
            "x_idx": 178,
            "x_order": 5,
            "a_price": 65595.7,
            "a_idx": 182,
            "a_order": 3,
            "b_price": 68687.0,
            "b_idx": 184,
            "b_order": 3,
            "c_price": 67300.0,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.69,
            "ratio_score": 0.663,
            "prz_score": 0.922,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 69288.0,
            "prz_range": [
              68792.11,
              70466.5
            ],
            "prz_width_pct": 2.405,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 4.96,
            "price_to_prz_pct_raw": 4.9554,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected"
              ],
              "reaction_score": 0.8,
              "reaction_detail": {
                "reaction_score": 0.8,
                "reaction_move_ratio_ad": 0.978,
                "adverse_move_ratio_ad": 1.512,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected"
                ]
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 69629.3,
              "a_price": 65595.7,
              "tp1_ad_382": 68088.47,
              "tp2_ad_618": 67136.54,
              "tp3_a_or_structure_liquidity": 65595.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5786,
              "ABC": 0.4487,
              "BCD": 1.4333,
              "XAD": 0.6911
            },
            "x_price": 70938.5,
            "x_idx": 178,
            "x_order": 5,
            "a_price": 65595.7,
            "a_idx": 182,
            "a_order": 3,
            "b_price": 68687.0,
            "b_idx": 184,
            "b_order": 3,
            "c_price": 67300.0,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": 223
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.673,
            "ratio_score": 0.452,
            "prz_score": 0.939,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 65676.1,
            "prz_range": [
              65604.43,
              67113.23
            ],
            "prz_width_pct": 2.274,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.03,
            "price_to_prz_pct_raw": 0.0257,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "post_D_close_progress"
              ],
              "reaction_score": 0.9,
              "reaction_detail": {
                "reaction_score": 0.9,
                "reaction_move_ratio_ad": 2.39,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 66358.83,
              "a_price": 69999.0,
              "tp1_ad_382": 67749.37,
              "tp2_ad_618": 68608.46,
              "tp3_a_or_structure_liquidity": 69999.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6129,
              "ABC": 0.7366,
              "BCD": 1.8169,
              "XAD": 0.9817
            },
            "x_price": 65595.7,
            "x_idx": 182,
            "x_order": 3,
            "a_price": 69999.0,
            "a_idx": 188,
            "a_order": 3,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 69288.0,
            "c_idx": 223,
            "c_order": 3,
            "d_idx": 224
          },
          {
            "pattern": "shark",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.855,
            "ratio_score": 1.0,
            "prz_score": 0.783,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 67139.89,
            "prz_range": [
              66685.67,
              67594.11
            ],
            "prz_width_pct": 1.353,
            "prz_confluence_count": 2,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT"
            ],
            "price_to_prz_pct": 1.2,
            "price_to_prz_pct_raw": 1.203,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "shark",
              "d_price": 67139.89,
              "a_price": 74046.5,
              "tp1_ad_382": 69778.22,
              "tp2_ad_618": 71408.18,
              "tp3_a_or_structure_liquidity": 74046.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.595,
              "ABC": 1.2303
            },
            "x_price": 59800.0,
            "x_idx": 169,
            "x_order": 8,
            "a_price": 74046.5,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 65569.2,
            "b_idx": 199,
            "b_order": 5,
            "c_price": 75998.9,
            "c_idx": 208,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.841,
            "ratio_score": 0.95,
            "prz_score": 0.752,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 65542.24,
            "prz_range": [
              64324.68,
              66759.8
            ],
            "prz_width_pct": 3.715,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.21,
            "price_to_prz_pct_raw": -1.2052,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 65542.24,
              "a_price": 74046.5,
              "tp1_ad_382": 68790.87,
              "tp2_ad_618": 70797.87,
              "tp3_a_or_structure_liquidity": 74046.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6096,
              "ABC": 0.6966
            },
            "x_price": 62979.5,
            "x_idx": 191,
            "x_order": 3,
            "a_price": 74046.5,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 71999.9,
            "c_idx": 216,
            "c_order": 5,
            "d_idx": null
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.942,
            "ratio_score": 0.97,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 66556.49,
            "prz_range": [
              65999.53,
              67113.44
            ],
            "prz_width_pct": 1.674,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.32,
            "price_to_prz_pct_raw": 0.3236,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 66556.49,
              "a_price": 69999.0,
              "tp1_ad_382": 67871.53,
              "tp2_ad_618": 68683.96,
              "tp3_a_or_structure_liquidity": 69999.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6129,
              "ABC": 0.7366
            },
            "x_price": 65595.7,
            "x_idx": 182,
            "x_order": 3,
            "a_price": 69999.0,
            "a_idx": 188,
            "a_order": 3,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 69288.0,
            "c_idx": 223,
            "c_order": 3,
            "d_idx": null
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.942,
            "ratio_score": 0.97,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 66556.49,
            "prz_range": [
              65999.53,
              67113.44
            ],
            "prz_width_pct": 1.674,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.32,
            "price_to_prz_pct_raw": 0.3236,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 66556.49,
              "a_price": 69999.0,
              "tp1_ad_382": 67871.53,
              "tp2_ad_618": 68683.96,
              "tp3_a_or_structure_liquidity": 69999.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6129,
              "ABC": 0.7366
            },
            "x_price": 65595.7,
            "x_idx": 182,
            "x_order": 3,
            "a_price": 69999.0,
            "a_idx": 188,
            "a_order": 3,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 69288.0,
            "c_idx": 223,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.86,
            "ratio_score": 0.979,
            "prz_score": 0.861,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 68541.75,
            "prz_range": [
              67557.47,
              69526.03
            ],
            "prz_width_pct": 2.872,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 3.32,
            "price_to_prz_pct_raw": 3.3161,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 68541.75,
              "a_price": 82828.7,
              "tp1_ad_382": 73999.36,
              "tp2_ad_618": 77371.08,
              "tp3_a_or_structure_liquidity": 82828.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5028,
              "ABC": 0.4491
            },
            "x_price": 65676.1,
            "x_idx": 224,
            "x_order": 3,
            "a_price": 82828.7,
            "a_idx": 258,
            "a_order": 8,
            "b_price": 74203.6,
            "b_idx": 275,
            "b_order": 3,
            "c_price": 78077.1,
            "c_idx": 278,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "low",
            "pattern_score": 0.776,
            "ratio_score": 0.776,
            "prz_score": 0.87,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 63574.32,
            "prz_range": [
              62684.52,
              64464.12
            ],
            "prz_width_pct": 2.799,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -4.17,
            "price_to_prz_pct_raw": -4.1715,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 63574.32,
              "a_price": 75998.9,
              "tp1_ad_382": 68320.51,
              "tp2_ad_618": 71252.71,
              "tp3_a_or_structure_liquidity": 75998.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.8341,
              "ABC": 0.5403
            },
            "x_price": 65569.2,
            "x_idx": 199,
            "x_order": 5,
            "a_price": 75998.9,
            "a_idx": 208,
            "a_order": 8,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 71999.9,
            "c_idx": 216,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.768,
            "ratio_score": 0.766,
            "prz_score": 0.922,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 69629.3,
            "prz_range": [
              68792.11,
              70466.5
            ],
            "prz_width_pct": 2.405,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 4.96,
            "price_to_prz_pct_raw": 4.9554,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 69629.3,
              "a_price": 65595.7,
              "tp1_ad_382": 68088.47,
              "tp2_ad_618": 67136.54,
              "tp3_a_or_structure_liquidity": 65595.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5786,
              "ABC": 0.4487
            },
            "x_price": 70938.5,
            "x_idx": 178,
            "x_order": 5,
            "a_price": 65595.7,
            "a_idx": 182,
            "a_order": 3,
            "b_price": 68687.0,
            "b_idx": 184,
            "b_order": 3,
            "c_price": 67300.0,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.69,
            "ratio_score": 0.663,
            "prz_score": 0.922,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 69288.0,
            "prz_range": [
              68792.11,
              70466.5
            ],
            "prz_width_pct": 2.405,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 4.96,
            "price_to_prz_pct_raw": 4.9554,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected"
              ],
              "reaction_score": 0.8,
              "reaction_detail": {
                "reaction_score": 0.8,
                "reaction_move_ratio_ad": 0.978,
                "adverse_move_ratio_ad": 1.512,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected"
                ]
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "gartley",
              "d_price": 69629.3,
              "a_price": 65595.7,
              "tp1_ad_382": 68088.47,
              "tp2_ad_618": 67136.54,
              "tp3_a_or_structure_liquidity": 65595.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5786,
              "ABC": 0.4487,
              "BCD": 1.4333,
              "XAD": 0.6911
            },
            "x_price": 70938.5,
            "x_idx": 178,
            "x_order": 5,
            "a_price": 65595.7,
            "a_idx": 182,
            "a_order": 3,
            "b_price": 68687.0,
            "b_idx": 184,
            "b_order": 3,
            "c_price": 67300.0,
            "c_idx": 213,
            "c_order": 3,
            "d_idx": 223
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.673,
            "ratio_score": 0.452,
            "prz_score": 0.939,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 65676.1,
            "prz_range": [
              65604.43,
              67113.23
            ],
            "prz_width_pct": 2.274,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.03,
            "price_to_prz_pct_raw": 0.0257,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_touch_or_entry",
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "post_D_close_progress"
              ],
              "reaction_score": 0.9,
              "reaction_detail": {
                "reaction_score": 0.9,
                "reaction_move_ratio_ad": 2.39,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "post_D_close_progress"
                ]
              },
              "path_role": "medium confluence / weak-consensus tie-breaker; no standalone path override",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.58,
            "confirmed_reaction": true,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 66358.83,
              "a_price": 69999.0,
              "tp1_ad_382": 67749.37,
              "tp2_ad_618": 68608.46,
              "tp3_a_or_structure_liquidity": 69999.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6129,
              "ABC": 0.7366,
              "BCD": 1.8169,
              "XAD": 0.9817
            },
            "x_price": 65595.7,
            "x_idx": 182,
            "x_order": 3,
            "a_price": 69999.0,
            "a_idx": 188,
            "a_order": 3,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 69288.0,
            "c_idx": 223,
            "c_order": 3,
            "d_idx": 224
          },
          {
            "pattern": "shark",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.855,
            "ratio_score": 1.0,
            "prz_score": 0.783,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 67139.89,
            "prz_range": [
              66685.67,
              67594.11
            ],
            "prz_width_pct": 1.353,
            "prz_confluence_count": 2,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT"
            ],
            "price_to_prz_pct": 1.2,
            "price_to_prz_pct_raw": 1.203,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "shark",
              "d_price": 67139.89,
              "a_price": 74046.5,
              "tp1_ad_382": 69778.22,
              "tp2_ad_618": 71408.18,
              "tp3_a_or_structure_liquidity": 74046.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.595,
              "ABC": 1.2303
            },
            "x_price": 59800.0,
            "x_idx": 169,
            "x_order": 8,
            "a_price": 74046.5,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 65569.2,
            "b_idx": 199,
            "b_order": 5,
            "c_price": 75998.9,
            "c_idx": 208,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.841,
            "ratio_score": 0.95,
            "prz_score": 0.752,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 65542.24,
            "prz_range": [
              64324.68,
              66759.8
            ],
            "prz_width_pct": 3.715,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.21,
            "price_to_prz_pct_raw": -1.2052,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 65542.24,
              "a_price": 74046.5,
              "tp1_ad_382": 68790.87,
              "tp2_ad_618": 70797.87,
              "tp3_a_or_structure_liquidity": 74046.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6096,
              "ABC": 0.6966
            },
            "x_price": 62979.5,
            "x_idx": 191,
            "x_order": 3,
            "a_price": 74046.5,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 71999.9,
            "c_idx": 216,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.835,
            "ratio_score": 0.942,
            "prz_score": 0.814,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": false,
            "d_price": 64283.69,
            "prz_range": [
              63244.56,
              65322.83
            ],
            "prz_width_pct": 3.233,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -3.1,
            "price_to_prz_pct_raw": -3.1023,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "butterfly",
              "d_price": 64283.69,
              "a_price": 74046.5,
              "tp1_ad_382": 68013.08,
              "tp2_ad_618": 70317.11,
              "tp3_a_or_structure_liquidity": 74046.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7983,
              "ABC": 0.6966
            },
            "x_price": 65595.7,
            "x_idx": 182,
            "x_order": 3,
            "a_price": 74046.5,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 71999.9,
            "c_idx": 216,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.834,
            "ratio_score": 1.0,
            "prz_score": 0.783,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": false,
            "d_price": 64824.43,
            "prz_range": [
              64325.45,
              65323.41
            ],
            "prz_width_pct": 1.539,
            "prz_confluence_count": 2,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT"
            ],
            "price_to_prz_pct": -2.29,
            "price_to_prz_pct_raw": -2.2872,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 64824.43,
              "a_price": 74046.5,
              "tp1_ad_382": 68347.26,
              "tp2_ad_618": 70523.67,
              "tp3_a_or_structure_liquidity": 74046.5,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4736,
              "ABC": 0.6966
            },
            "x_price": 59800.0,
            "x_idx": 169,
            "x_order": 8,
            "a_price": 74046.5,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 67300.0,
            "b_idx": 213,
            "b_order": 3,
            "c_price": 71999.9,
            "c_idx": 216,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.834,
            "ratio_score": 1.0,
            "prz_score": 0.732,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 68206.0,
            "prz_range": [
              66886.33,
              69525.66
            ],
            "prz_width_pct": 3.87,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 2.81,
            "price_to_prz_pct_raw": 2.81,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 68206.0,
              "a_price": 82828.7,
              "tp1_ad_382": 73791.87,
              "tp2_ad_618": 77242.83,
              "tp3_a_or_structure_liquidity": 82828.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4816,
              "ABC": 0.4491
            },
            "x_price": 64918.2,
            "x_idx": 220,
            "x_order": 8,
            "a_price": 82828.7,
            "a_idx": 258,
            "a_order": 8,
            "b_price": 74203.6,
            "b_idx": 275,
            "b_order": 3,
            "c_price": 78077.1,
            "c_idx": 278,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.829,
            "ratio_score": 0.992,
            "prz_score": 0.783,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": false,
            "d_price": 67591.59,
            "prz_range": [
              67173.9,
              68009.28
            ],
            "prz_width_pct": 1.236,
            "prz_confluence_count": 2,
            "prz_fib_families": [
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 1.88,
            "price_to_prz_pct_raw": 1.8839,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 67591.59,
              "a_price": 79455.0,
              "tp1_ad_382": 72123.41,
              "tp2_ad_618": 74923.18,
              "tp3_a_or_structure_liquidity": 79455.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.3811,
              "ABC": 0.7376
            },
            "x_price": 65676.1,
            "x_idx": 224,
            "x_order": 3,
            "a_price": 79455.0,
            "a_idx": 249,
            "a_order": 5,
            "b_price": 74203.6,
            "b_idx": 275,
            "b_order": 3,
            "c_price": 78077.1,
            "c_idx": 278,
            "c_order": 3,
            "d_idx": null
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.942,
            "prz_proximity": "active",
            "prz_range": [
              65999.53,
              67113.44
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": 0.32,
            "high_confluence_prz": true,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.35,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "gartley",
              "d_price": 66556.49,
              "a_price": 69999.0,
              "tp1_ad_382": 67871.53,
              "tp2_ad_618": 68683.96,
              "tp3_a_or_structure_liquidity": 69999.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $65,999.53-$67,113.44: expected reversal UP if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "gartley",
          "signal": "bullish",
          "completion_status": "forming",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.942,
          "ratio_score": 0.97,
          "prz_score": 1.0,
          "prz_proximity": "active",
          "action_status": "active",
          "high_confluence_prz": true,
          "d_price": 66556.49,
          "prz_range": [
            65999.53,
            67113.44
          ],
          "prz_width_pct": 1.674,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": 0.32,
          "price_to_prz_pct_raw": 0.3236,
          "harmonic_vote_state": {
            "authority": "pre_confirmation_reversal_candidate",
            "directional_vote_weight": 0.35,
            "confirmed_reaction": false,
            "confirmation_reasons": [],
            "reaction_score": 0.0,
            "reaction_detail": {
              "reaction_score": 0.0,
              "reasons": []
            },
            "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
            "standalone_path_override_allowed": false
          },
          "directional_vote_weight": 0.35,
          "confirmed_reaction": false,
          "standalone_path_override_allowed": false,
          "tp_ladder": {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 66556.49,
            "a_price": 69999.0,
            "tp1_ad_382": 67871.53,
            "tp2_ad_618": 68683.96,
            "tp3_a_or_structure_liquidity": 69999.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.6129,
            "ABC": 0.7366
          },
          "x_price": 65595.7,
          "x_idx": 182,
          "x_order": 3,
          "a_price": 69999.0,
          "a_idx": 188,
          "a_order": 3,
          "b_price": 67300.0,
          "b_idx": 213,
          "b_order": 3,
          "c_price": 69288.0,
          "c_idx": 223,
          "c_order": 3,
          "d_idx": null
        },
        "best_tp_ladder": {
          "direction": "bullish",
          "source": "gartley",
          "d_price": 66556.49,
          "a_price": 69999.0,
          "tp1_ad_382": 67871.53,
          "tp2_ad_618": 68683.96,
          "tp3_a_or_structure_liquidity": 69999.0,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 66556.49,
            "a_price": 69999.0,
            "tp1_ad_382": 67871.53,
            "tp2_ad_618": 68683.96,
            "tp3_a_or_structure_liquidity": 69999.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          }
        ],
        "validated_tp_ladder": [],
        "harmonic_governance": {
          "role": "PRZ reaction + TP ladder confluence, not standalone path engine",
          "pre_confirmation_weight_range": [
            0.25,
            0.35
          ],
          "post_confirmation_vote_weight_range": [
            0.5,
            0.6
          ],
          "standalone_path_override_allowed": false,
          "opposes_core_path_policy": "branch/reversal-risk/reaction-zone unless lower-TF structure and derivatives also confirm",
          "aligns_with_core_path_policy": "modest confidence lift plus strong TP ladder influence"
        },
        "execution_readiness": "ready",
        "directional_scores": {
          "bullish": 0.199,
          "bearish": 0
        },
        "directional_score_total": 0.199,
        "directional_dominance": 1.0
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.44,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.55,\n  \"setup_signals\": [\n    \"현재가 $66,341.80가 고품질 strict bullish Gartley 활성 PRZ $65,999.53-$67,113.44 내부에 위치\",\n    \"해당 Gartley PRZ는 XAD + BC_EXT + ABCD 3중 Fib confluence이며 PRZ score 1.0, pattern score 0.942\",\n    \"Gartley 핵심 비율 XAB 0.6129로 표준 0.618에 근접, ABC 0.7366으로 구조적 대칭 양호\",\n    \"D 예상가 $66,556.49와 현재가의 괴리 약 0.32%로 PRZ 반응 관찰 구간\",\n    \"아직 PRZ rejection, sweep→reclaim, 15m/1h MSS·CHoCH, CVD divergence 또는 OI squeeze 확인은 없음\"\n  ],\n  \"reasoning\": \"1일봉 기준 가장 중요한 하모닉은 bullish Gartley이며, PRZ $65,999.53-$67,113.44가 현재가 $66,341.80을 포함하고 있어 단기 반등 후보 구간이다. 다만 harmonic_vote_state가 pre_confirmation_reversal_candidate이고 confirmed_reaction=false이므로, 이 패턴은 아직 메인 경로를 뒤집을 수 없는 약한 반전 후보에 불과하다. 구조적으로는 가격이 EMA20 $66,680.87 바로 아래에 있고 EMA120 $74,244.80 및 EMA240 $81,300.37보다 크게 낮아 상위 추세 압박은 남아 있으나, 제공 데이터상 확정 BOS·CHoCH·구조적 수용이 없어 structure_bias는 neutral로 둔다. setup 측면에서는 고품질 3중 confluence PRZ 내부 진입이 확인되어 bullish setup은 존재하지만, 반응 확인이 없으므로 신호 자체는 neutral 유지가 타당하다.\",\n  \"key_levels\": {\n    \"support\": [\n      65999.53,\n      65595.7,\n      65604.43,\n      60691.9\n    ],\n    \"resistance\": [\n      67113.44,\n      67255.4,\n      67871.53,\n      68683.96,\n      69999.0\n    ]\n  },\n  \"time_horizon\": \"short/medium term\",\n  \"invalidation_level\": \"$65,595.70 일봉 종가 이탈\",\n  \"risk_scenario\": \"가격이 $65,999.53-$67,113.44 PRZ에서 반등하지 못하고 X 저점 $65,595.70 아래로 일봉 종가 이탈하면 bullish Gartley 반전 후보는 실패로 간주된다. 이 경우 $64,324.68-$65,323.41 부근의 하위 bullish Bat/Butterfly 후보 PRZ가 다음 반응 구간이 될 수 있으나, 품질이 낮거나 nearby/watch 등급이라 단독 매수 근거로는 부족하다. 반대로 $67,113.44 상단을 회복하고 $67,871.53, $68,683.96을 순차 돌파하면 Gartley TP ladder가 활성화되며 $69,999.00 구조 유동성까지 반등 여지가 열린다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "bearish",
      "confidence": 0.58,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.55,
      "setup_signals": [
        "현재 활성 구조는 1d_cycle_2로, BC $81,999.00 → AR $59,080.00 → ST $67,255.40의 분배 후보 구조가 확인됨",
        "현재가 $66,341.80은 ST 저항 $67,255.40 바로 아래에 위치하여 상단 테스트 후 거절 가능성이 남아 있음",
        "EMA20 $66,680.87 아래에서 거래 중이며, 단기 회복 실패 시 ST 이후 LPSY 성격의 재공급 테스트로 해석될 수 있음",
        "이전 축적 구조의 SOS $82,828.70 이후 가격이 다시 $59,080.00까지 밀리며, prior accumulation의 Phase D 강세 연속성은 현재 가격 행동으로 약화됨"
      ],
      "reasoning": "상위 요약 지표는 regime=ACC, acc_score 92.5로 축적 우위를 표시하지만, 실제 활성 구조는 1d_cycle_2이며 BC $81,999.00, AR $59,080.00, ST $67,255.40로 구성된 현재 분배 후보가 확인되어 있다. 현재가 $66,341.80은 ST $67,255.40 바로 아래이고 EMA20 $66,680.87도 회복하지 못해, 즉각적인 경로는 상단 재공급/거절 테스트 쪽이 우세하다. 다만 가격은 분배 범위의 EQ 약 $70,539.50 아래에 있어 프리미엄 추격 매도 구간은 아니므로, 구조적 약세는 인정하되 setup 강도는 중간 수준으로 제한한다. $67,255.40을 일봉 기준 회복하면 단기 약세 setup은 약화되고, $81,999.00~$82,828.70 재진입 전까지는 완전한 강세 구조 전환으로 보기는 어렵다.",
      "key_levels": {
        "support": [
          59080.0,
          65595.7,
          66341.8
        ],
        "resistance": [
          66680.87,
          67255.4,
          81999.0,
          82828.7,
          93080.0
        ]
      },
      "time_horizon": "short/medium term",
      "invalidation_level": "$67,255.40 일봉 종가 회복",
      "risk_scenario": "만약 가격이 $67,255.40 ST를 회복하고 EMA20 $66,680.87 위에서 안착하면 단기 분배형 거절 setup은 실패로 간주된다. 이후 $81,999.00 BC와 이전 SOS $82,828.70까지 회복하면 현재 분배 후보는 약화되고, prior accumulation 구조의 재평가가 필요하다.",
      "data_quality": "medium",
      "metrics": {
        "acc_score": 92.5,
        "dis_score": 85.0,
        "regime": "ACC",
        "regime_state": "acc_candidate",
        "structure_bias": "bullish",
        "phase_context": "acc_candidate / accumulation / Phase D",
        "phases_detected": [
          "SC",
          "AR",
          "ST",
          "Spring",
          "TERMINAL_SPRING",
          "SOS"
        ],
        "last_phase": "SOS",
        "phase_candidates": [
          {
            "label": "SC",
            "side": "low",
            "idx": 92,
            "price": 80600.0,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "high",
            "idx": 99,
            "price": 93080.0,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "low",
            "idx": 119,
            "price": 84408.6,
            "color": "#118ab2"
          },
          {
            "label": "Spring",
            "side": "low",
            "idx": 182,
            "price": 65595.7,
            "color": "#f9844a"
          },
          {
            "label": "TERMINAL_SPRING",
            "side": "low",
            "idx": 251,
            "price": 74868.0,
            "color": "#f3722c"
          },
          {
            "label": "SOS",
            "side": "high",
            "idx": 258,
            "price": 82828.7,
            "color": "#06d6a0"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "1d_cycle_1",
            "sequence": 1,
            "timeframe": "1d",
            "regime": "accumulation",
            "role": "prior_completed_structure",
            "is_active": false,
            "is_completed": true,
            "is_confirmed": true,
            "structure_bias": "bullish",
            "phase_context": "accumulation",
            "start_idx": 92,
            "end_idx": 258,
            "phase_count": 6,
            "phases": [
              {
                "label": "SC",
                "side": "low",
                "idx": 92,
                "price": 80600.0,
                "color": "#ffd166",
                "dt": "2025-11-21 09:00:00+09:00"
              },
              {
                "label": "AR",
                "side": "high",
                "idx": 99,
                "price": 93080.0,
                "color": "#06d6a0",
                "dt": "2025-11-28 09:00:00+09:00"
              },
              {
                "label": "ST",
                "side": "low",
                "idx": 119,
                "price": 84408.6,
                "color": "#118ab2",
                "dt": "2025-12-18 09:00:00+09:00"
              },
              {
                "label": "Spring",
                "side": "low",
                "idx": 182,
                "price": 65595.7,
                "color": "#f9844a",
                "dt": "2026-02-19 09:00:00+09:00"
              },
              {
                "label": "TERMINAL_SPRING",
                "side": "low",
                "idx": 251,
                "price": 74868.0,
                "color": "#f3722c",
                "dt": "2026-04-29 09:00:00+09:00"
              },
              {
                "label": "SOS",
                "side": "high",
                "idx": 258,
                "price": 82828.7,
                "color": "#06d6a0",
                "dt": "2026-05-06 09:00:00+09:00"
              }
            ]
          },
          {
            "structure_id": "1d_cycle_2",
            "sequence": 2,
            "timeframe": "1d",
            "regime": "distribution",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "distribution",
            "start_idx": 266,
            "end_idx": 298,
            "phase_count": 3,
            "phases": [
              {
                "label": "BC",
                "side": "high",
                "idx": 266,
                "price": 81999.0,
                "color": "#ffd166",
                "dt": "2026-05-14 09:00:00+09:00"
              },
              {
                "label": "AR",
                "side": "low",
                "idx": 288,
                "price": 59080.0,
                "color": "#06d6a0",
                "dt": "2026-06-05 09:00:00+09:00"
              },
              {
                "label": "ST",
                "side": "high",
                "idx": 298,
                "price": 67255.4,
                "color": "#118ab2",
                "dt": "2026-06-15 09:00:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "1d_cycle_2",
        "primary_structure_id": "1d_cycle_1",
        "structure_count": 2,
        "regime_fitness": 0.9249999999999999,
        "current_event": "SOS",
        "major_phase": "D",
        "pos_in_range": 0.5,
        "main_range_low": 80600.0,
        "main_range_high": 93080.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.55,\n  \"setup_signals\": [\n    \"현재 활성 구조는 1d_cycle_2로, BC $81,999.00 → AR $59,080.00 → ST $67,255.40의 분배 후보 구조가 확인됨\",\n    \"현재가 $66,341.80은 ST 저항 $67,255.40 바로 아래에 위치하여 상단 테스트 후 거절 가능성이 남아 있음\",\n    \"EMA20 $66,680.87 아래에서 거래 중이며, 단기 회복 실패 시 ST 이후 LPSY 성격의 재공급 테스트로 해석될 수 있음\",\n    \"이전 축적 구조의 SOS $82,828.70 이후 가격이 다시 $59,080.00까지 밀리며, prior accumulation의 Phase D 강세 연속성은 현재 가격 행동으로 약화됨\"\n  ],\n  \"reasoning\": \"상위 요약 지표는 regime=ACC, acc_score 92.5로 축적 우위를 표시하지만, 실제 활성 구조는 1d_cycle_2이며 BC $81,999.00, AR $59,080.00, ST $67,255.40로 구성된 현재 분배 후보가 확인되어 있다. 현재가 $66,341.80은 ST $67,255.40 바로 아래이고 EMA20 $66,680.87도 회복하지 못해, 즉각적인 경로는 상단 재공급/거절 테스트 쪽이 우세하다. 다만 가격은 분배 범위의 EQ 약 $70,539.50 아래에 있어 프리미엄 추격 매도 구간은 아니므로, 구조적 약세는 인정하되 setup 강도는 중간 수준으로 제한한다. $67,255.40을 일봉 기준 회복하면 단기 약세 setup은 약화되고, $81,999.00~$82,828.70 재진입 전까지는 완전한 강세 구조 전환으로 보기는 어렵다.\",\n  \"key_levels\": {\n    \"support\": [\n      59080.0,\n      65595.7,\n      66341.8\n    ],\n    \"resistance\": [\n      66680.87,\n      67255.4,\n      81999.0,\n      82828.7,\n      93080.0\n    ]\n  },\n  \"time_horizon\": \"short/medium term\",\n  \"invalidation_level\": \"$67,255.40 일봉 종가 회복\",\n  \"risk_scenario\": \"만약 가격이 $67,255.40 ST를 회복하고 EMA20 $66,680.87 위에서 안착하면 단기 분배형 거절 setup은 실패로 간주된다. 이후 $81,999.00 BC와 이전 SOS $82,828.70까지 회복하면 현재 분배 후보는 약화되고, prior accumulation 구조의 재평가가 필요하다.\",\n  \"data_quality\": \"medium\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bearish",
    "overall_confidence": 0.68,
    "execution_setup": {
      "setup_bias": "bearish",
      "setup_strength": 0.66,
      "active_setups": [
        "가격 $66,341.80이 EMA20 $66,680.87 아래에서 수용 중이며, 여러 분석가가 이 구간을 단기 구조 저항으로 식별",
        "Wyckoff 기준 현재 활성 구조는 BC $81,999.00 → AR $59,080.00 → ST $67,255.40의 분배 후보이며, 가격은 ST $67,255.40 바로 아래에 위치",
        "ICT 기준 이전일 고가 $67,255.40 돌파 실패 후 이전일 저가 $65,314.30 및 bearish CHoCH $64,918.20 아래 sell-side liquidity가 구조 리스크로 존재",
        "캔들 기준 최근 4개 양봉 이후 doji가 발생했고, $66,680.87~$67,255.40 저항 클러스터에서 반등 모멘텀 둔화 신호가 확인",
        "반대 조건으로는 bullish Gartley PRZ $65,999.53~$67,113.44 내부 진입과 CVD divergence 0.700, OI +1.5950%가 있어 하방 구조 내 단기 반등 리스크가 존재"
      ],
      "setup_vs_structure": "실행 셋업은 구조적 약세와 대체로 정렬되어 있으나, 파생 CVD/OI와 하모닉 PRZ는 단기 반등형 반대 신호를 제공한다. 따라서 구조는 bearish이나, 현재 가격대는 추격형 약세보다 저항 수용 여부를 확인해야 하는 혼합 구간이다."
    },
    "signal_breakdown": {
      "bullish_count": 0,
      "bearish_count": 2,
      "neutral_count": 4
    },
    "key_levels": {
      "support": [
        66100,
        65999.53,
        65595.7,
        65314.3,
        64918.2,
        64684.69,
        63973.65,
        60691.9,
        59080
      ],
      "resistance": [
        66680.87,
        67113.44,
        67255.4,
        68152,
        68683.96,
        69400,
        69999,
        70954.35,
        73756.7,
        74244.8,
        81999,
        82828.7
      ]
    },
    "confluences": [
      "EMA20 $66,680.87은 Candlestick, Derivatives, ICT, Wyckoff가 모두 단기 구조 저항으로 언급한 핵심 공통 레벨이다.",
      "$67,255.40은 Candlestick의 7일 고점, ICT의 이전일 고가, Wyckoff의 ST 레벨, Derivatives의 상방 유동성 $67,100 인접 구간이 겹치는 주요 상단 검증 레벨이다.",
      "$59,080.00은 Fibonacci 하락 스윙 저점, ICT range low, Wyckoff AR로 반복 식별되어 하위 구조의 주요 기준 저점이다.",
      "$64,918.20~$64,684.69 구간은 ICT bearish CHoCH $64,918.20과 Fibonacci 0.236 지지 $64,684.69가 근접해 있으며, 단기 구조 훼손 여부를 판단하는 하단 클러스터다.",
      "$65,999.53~$67,113.44는 Harmonic의 strict bullish Gartley 활성 PRZ이며, 현재가 $66,341.80 및 EMA20 $66,680.87 저항권과 겹쳐 반등 후보이자 저항 검증 구간으로 동시에 작용한다.",
      "$73,756.70~$74,244.80은 Fibonacci 0.618 되돌림과 EMA120이 인접한 중기 구조 회복 검증대다."
    ],
    "conflicts": [
      "ICT와 Wyckoff는 현재 구조를 bearish로 평가하지만, Harmonic은 고품질 bullish Gartley PRZ $65,999.53~$67,113.44를 제시해 현 가격대에서 반등 리스크를 강조한다.",
      "Derivatives는 CVD divergence 0.700, OI +1.5950%, 약한 백워데이션을 근거로 매수 흡수 가능성을 제시하지만, 가격은 여전히 EMA20 $66,680.87 아래에 있어 구조 전환은 확인되지 않았다.",
      "Fibonacci는 가격이 $70,954.35 EQ 아래의 discount 영역에 있어 단기 반등 여지를 인정하지만, 전체 스윙은 $82,829 → $59,080 하락 되돌림 구조로 남아 있어 구조 판단은 bearish다.",
      "Wyckoff의 상위 요약 지표는 축적 성격을 일부 보이나, 현재 활성 구조는 별도의 분배 후보 1d_cycle_2로 해석되어 단기 구조 진단에서는 bearish 쪽에 더 큰 비중을 둔다."
    ],
    "executive_summary": "현재 BTC/USDT 1일 구조는 $82,829 고점에서 $59,080 저점으로 형성된 하락 스윙의 되돌림 국면이며, 가격은 EMA20 $66,680.87 아래에서 수용되어 구조적 회복이 아직 확인되지 않았다. Wyckoff 기준으로는 이전 축적 구조 이후 새 활성 구조가 BC $81,999.00 → AR $59,080.00 → ST $67,255.40의 분배 후보로 전개 중이며, 현재 위치는 ST 저항 바로 아래의 재공급 테스트 구간에 가깝다. ICT도 마지막 주요 구조 이벤트를 bearish CHoCH $64,918.20로 해석하며, $67,255.40 상단 돌파 실패와 $65,314.30 / $64,918.20 하단 유동성을 구조 조건으로 제시한다. 다만 Harmonic의 bullish Gartley PRZ $65,999.53~$67,113.44와 Derivatives의 CVD/OI 흡수 신호가 있어 현 구간은 약세 구조 안의 반등 리스크가 큰 압축 구간이다. 단기 약세 조건은 $67,255.40 상방 수용 시 약화되며, 구조적 bearish 진단의 핵심 무효화는 $81,999.00~$82,828.70 분배 상단 회복이다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bearish\",\n  \"overall_confidence\": 0.68,\n  \"execution_setup\": {\n    \"setup_bias\": \"bearish\",\n    \"setup_strength\": 0.66,\n    \"active_setups\": [\n      \"가격 $66,341.80이 EMA20 $66,680.87 아래에서 수용 중이며, 여러 분석가가 이 구간을 단기 구조 저항으로 식별\",\n      \"Wyckoff 기준 현재 활성 구조는 BC $81,999.00 → AR $59,080.00 → ST $67,255.40의 분배 후보이며, 가격은 ST $67,255.40 바로 아래에 위치\",\n      \"ICT 기준 이전일 고가 $67,255.40 돌파 실패 후 이전일 저가 $65,314.30 및 bearish CHoCH $64,918.20 아래 sell-side liquidity가 구조 리스크로 존재\",\n      \"캔들 기준 최근 4개 양봉 이후 doji가 발생했고, $66,680.87~$67,255.40 저항 클러스터에서 반등 모멘텀 둔화 신호가 확인\",\n      \"반대 조건으로는 bullish Gartley PRZ $65,999.53~$67,113.44 내부 진입과 CVD divergence 0.700, OI +1.5950%가 있어 하방 구조 내 단기 반등 리스크가 존재\"\n    ],\n    \"setup_vs_structure\": \"실행 셋업은 구조적 약세와 대체로 정렬되어 있으나, 파생 CVD/OI와 하모닉 PRZ는 단기 반등형 반대 신호를 제공한다. 따라서 구조는 bearish이나, 현재 가격대는 추격형 약세보다 저항 수용 여부를 확인해야 하는 혼합 구간이다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 0,\n    \"bearish_count\": 2,\n    \"neutral_count\": 4\n  },\n  \"key_levels\": {\n    \"support\": [\n      66100,\n      65999.53,\n      65595.7,\n      65314.3,\n      64918.2,\n      64684.69,\n      63973.65,\n      60691.9,\n      59080\n    ],\n    \"resistance\": [\n      66680.87,\n      67113.44,\n      67255.4,\n      68152,\n      68683.96,\n      69400,\n      69999,\n      70954.35,\n      73756.7,\n      74244.8,\n      81999,\n      82828.7\n    ]\n  },\n  \"confluences\": [\n    \"EMA20 $66,680.87은 Candlestick, Derivatives, ICT, Wyckoff가 모두 단기 구조 저항으로 언급한 핵심 공통 레벨이다.\",\n    \"$67,255.40은 Candlestick의 7일 고점, ICT의 이전일 고가, Wyckoff의 ST 레벨, Derivatives의 상방 유동성 $67,100 인접 구간이 겹치는 주요 상단 검증 레벨이다.\",\n    \"$59,080.00은 Fibonacci 하락 스윙 저점, ICT range low, Wyckoff AR로 반복 식별되어 하위 구조의 주요 기준 저점이다.\",\n    \"$64,918.20~$64,684.69 구간은 ICT bearish CHoCH $64,918.20과 Fibonacci 0.236 지지 $64,684.69가 근접해 있으며, 단기 구조 훼손 여부를 판단하는 하단 클러스터다.\",\n    \"$65,999.53~$67,113.44는 Harmonic의 strict bullish Gartley 활성 PRZ이며, 현재가 $66,341.80 및 EMA20 $66,680.87 저항권과 겹쳐 반등 후보이자 저항 검증 구간으로 동시에 작용한다.\",\n    \"$73,756.70~$74,244.80은 Fibonacci 0.618 되돌림과 EMA120이 인접한 중기 구조 회복 검증대다.\"\n  ],\n  \"conflicts\": [\n    \"ICT와 Wyckoff는 현재 구조를 bearish로 평가하지만, Harmonic은 고품질 bullish Gartley PRZ $65,999.53~$67,113.44를 제시해 현 가격대에서 반등 리스크를 강조한다.\",\n    \"Derivatives는 CVD divergence 0.700, OI +1.5950%, 약한 백워데이션을 근거로 매수 흡수 가능성을 제시하지만, 가격은 여전히 EMA20 $66,680.87 아래에 있어 구조 전환은 확인되지 않았다.\",\n    \"Fibonacci는 가격이 $70,954.35 EQ 아래의 discount 영역에 있어 단기 반등 여지를 인정하지만, 전체 스윙은 $82,829 → $59,080 하락 되돌림 구조로 남아 있어 구조 판단은 bearish다.\",\n    \"Wyckoff의 상위 요약 지표는 축적 성격을 일부 보이나, 현재 활성 구조는 별도의 분배 후보 1d_cycle_2로 해석되어 단기 구조 진단에서는 bearish 쪽에 더 큰 비중을 둔다.\"\n  ],\n  \"highest_conviction_analyst\": \"ICT Trader — confidence 78%로 가장 높고, bearish CHoCH $64,918.20, 이전일 고가 $67,255.40 돌파 실패, 이전일 저가 $65,314.30 하방 유동성 등 구조 레벨을 가장 명확하게 제시한다. 또한 EMA20 $66,680.87 아래 수용과 상위 EMA120 $74,244.80 / EMA240 $81,300.37 하회까지 함께 반영해 구조적 약세 판단의 정합성이 높다.\",\n  \"invalidation_level\": \"$82,828.70 일봉 회복 및 수용. 단기 bearish 실행 셋업은 $67,255.40 상방 수용 시 약화되지만, 구조적 bearish 진단 자체는 $81,999.00~$82,828.70 분배 상단 회복 전까지 유지된다.\",\n  \"executive_summary\": \"현재 BTC/USDT 1일 구조는 $82,829 고점에서 $59,080 저점으로 형성된 하락 스윙의 되돌림 국면이며, 가격은 EMA20 $66,680.87 아래에서 수용되어 구조적 회복이 아직 확인되지 않았다. Wyckoff 기준으로는 이전 축적 구조 이후 새 활성 구조가 BC $81,999.00 → AR $59,080.00 → ST $67,255.40의 분배 후보로 전개 중이며, 현재 위치는 ST 저항 바로 아래의 재공급 테스트 구간에 가깝다. ICT도 마지막 주요 구조 이벤트를 bearish CHoCH $64,918.20로 해석하며, $67,255.40 상단 돌파 실패와 $65,314.30 / $64,918.20 하단 유동성을 구조 조건으로 제시한다. 다만 Harmonic의 bullish Gartley PRZ $65,999.53~$67,113.44와 Derivatives의 CVD/OI 흡수 신호가 있어 현 구간은 약세 구조 안의 반등 리스크가 큰 압축 구간이다. 단기 약세 조건은 $67,255.40 상방 수용 시 약화되며, 구조적 bearish 진단의 핵심 무효화는 $81,999.00~$82,828.70 분배 상단 회복이다.\"\n}"
  },
  "overall_signal": "bearish",
  "overall_confidence": 0.68,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.6,
    "reasoning": "구조(BEARISH 68%)와 실행 셋업(BEARISH 66%)이 모두 약세로 정렬되어 경로의 방향성은 하락이다. 다만 현재가 $66,341.80이 하모닉 bullish Gartley PRZ $65,999.53~$67,113.44 내부에 있고 CVD divergence 0.700·OI +1.5950%의 매수 흡수 신호가 동시에 존재해, 'Setup vs Structure'가 명시한 대로 추격형 약세가 아니라 저항 수용 여부를 먼저 확인해야 하는 혼합 구간이다. 따라서 경로는 단일 추세형이 아니라 corrective(반등→거절→하락) 복합 경로로 설정한다. 1단계는 반등 리스크가 ST·EMA20·PRZ 상단 클러스터($66,680.87~$67,255.40)까지 전개되며 buy-side liquidity를 스윕한 뒤 거절되는 구간(=기간 고점), 2~3단계는 ICT의 핵심 시나리오인 하단 sell-side liquidity 사냥($65,314.30→$64,918.20→$63,973.65)이다. 신뢰도는 구조·셋업 정렬로 상향 요인이 있으나, 6개 분석 중 3개가 NEUTRAL 신호이고 파생·하모닉의 단기 반등형 반대 신호와 압축 국면의 방향 불확실성으로 0.6로 제한한다.",
    "key_insight": "이 구간의 핵심은 '약세 구조 안의 반등 거절'이다. EMA20 $66,680.87~ST $67,255.40 저항 클러스터를 일봉 수용하지 못하고 거절될 때 비로소 ICT의 하단 sell-side liquidity 사냥($65,314.30 이탈)이 본격화된다. 반대로 이 클러스터를 수용하면 경로 자체가 무효화된다.",
    "waypoints": [
      {
        "seq": 1,
        "price": 67255.4,
        "type": "liquidity_sweep",
        "source": "Wyckoff(ST $67,255.40 재공급 테스트), ICT(이전일 고가·buy-side liquidity $67,255.40), Candlestick(7일 고점 $67,255.40), Harmonic(Gartley PRZ 상단 $67,113.44), Derivatives(상방 유동성 $67,100·$66,100 청산 스윕)",
        "description": "현재가 $66,341.80은 EMA20 $66,680.87 아래 수용 중이나 Gartley PRZ 내부 진입과 CVD/OI 흡수 신호로 단기 반등 리스크가 큼. 첫 경로는 Derivatives가 제시한 $66,100 청산 레벨 스윕 이후 ST $67,255.40(=이전일 고가·7일 고점·EMA20~PRZ 상단 클러스터)까지 반등하며 buy-side liquidity를 스윕한 뒤 거절되는 흐름. ICT의 '이전일 고가 돌파 실패' 및 Wyckoff ST 거절 시나리오와 일치하는 기간 고점.",
        "est_hours": 4.0,
        "turning_zone": [
          67255.4,
          68152.0
        ],
        "likely_wick": 67800.0,
        "rejection_confirm": 66680.87,
        "invalid_overshoot": 68683.96,
        "calibration_reasoning": "이전일 고가·7일 고점 클러스터 $67,255.40(buy-side 유동성)를 하단, Fib 0.382 저항 $68,152을 상단으로 zone 설정(폭 $896 ≈ 0.40 ATR). likely_wick은 스윕 직후 조건부 Harmonic TP1 $67,871.53 부근·$68k 라운드넘버 아래로 편향했으며, Gartley PRZ는 pre-confirmation이라 base는 이동시키지 않음. EMA20 $66,680.87 재이탈이 거절 확정."
      },
      {
        "seq": 2,
        "price": 65314.3,
        "type": "support_test",
        "source": "ICT(이전일 저가·sell-side liquidity $65,314.30), Wyckoff/Candlestick(EMA20 아래 수용·중기 추세 약세)",
        "description": "ST·EMA20 저항 클러스터에서 거절 후 ICT 핵심 시나리오인 하단 유동성 사냥 전개. 이전일 저가 $65,314.30 하향 이탈로 1차 sell-side liquidity 스윕 개시. EMA120 $74,244.80(-10.6%)·EMA240 $81,300.37(-18.4%) 대비 열위로 구조적 공급 압력이 하락을 지지.",
        "est_hours": 12.0,
        "turning_zone": [
          64918.2,
          65314.3
        ],
        "likely_wick": 65000.0,
        "rejection_confirm": 65595.7,
        "invalid_overshoot": 64684.69,
        "calibration_reasoning": "1차 sell-side 스윕 대상인 이전일 저가 $65,314.30을 상단, bearish CHoCH $64,918.20을 구조적 바닥으로 한 얕은 중간 테스트 zone(폭 $396, 의도적으로 타이트). likely_wick은 라운드넘버 자석 $65,000. CHoCH 하향 이탈로 Fib 0.236 $64,684.69까지 진행 시 WP3로 전환되어 본 turn은 무효."
      },
      {
        "seq": 3,
        "price": 63973.65,
        "type": "swing_low",
        "source": "ICT(CHoCH $64,918.20 sell-side liquidity), Fibonacci(0.236 $64,684.69·7일 EQ $63,973.65), Candlestick(7일 범위 EQ $63,973.65), Derivatives($63,500 롱 실패 레벨)",
        "description": "bearish CHoCH $64,918.20 및 Fibonacci 0.236 $64,684.69의 sell-side liquidity 클러스터를 추가 스윕하며 7일 범위 EQ $63,973.65(Fibonacci·Candlestick 공통 균형가)까지 하락. 24시간 경로의 swing low이며, 추가 모멘텀 발생 시 Derivatives 롱 실패 레벨 $63,500 하향 확장 가능.",
        "est_hours": 22.0,
        "turning_zone": [
          62800.0,
          63973.65
        ],
        "likely_wick": 63500.0,
        "rejection_confirm": 64918.2,
        "invalid_overshoot": 62500.0,
        "calibration_reasoning": "터미널 waypoint로 7일 EQ $63,973.65(≈$64k 라운드)를 상단, Derivatives 롱 실패·청산 레벨 $63,500을 포함하도록 ~0.53 ATR(폭 $1,174)로 확장. likely_wick은 청산 클러스터 자석 $63,500. CHoCH $64,918.20 재탈환 시 bullish 반전 확정, zone 하향 이탈($62,500) 시 $60,691.90 향한 추가 하락으로 무효."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 67255.4,
        "expected_low": 66100.0,
        "high_first": false
      },
      "8h": {
        "expected_high": 67255.4,
        "expected_low": 65595.7,
        "high_first": true
      },
      "24h": {
        "expected_high": 67255.4,
        "expected_low": 63973.65,
        "high_first": true
      }
    },
    "triggers": {
      "bullish": {
        "price": 67255.4,
        "description": "ST $67,255.40(이전일 고가)을 일봉 기준 회복·수용하면 Wyckoff·ICT 모두 단기 약세 셋업 약화로 판단. 이후 $68,152.00(Fib 0.382) 상방 수용 시 EQ $70,954.35로 반등 확장."
      },
      "bearish": {
        "price": 65314.3,
        "description": "이전일 저가 $65,314.30 하향 이탈 시 sell-side liquidity 사냥 가속. $64,918.20 CHoCH 및 $63,973.65 EQ, 이어 $60,691.90·$59,080 하단 구조로 하락 확장 확인."
      }
    },
    "scenario_invalidation": 68152.0,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.6,\n  \"reasoning\": \"구조(BEARISH 68%)와 실행 셋업(BEARISH 66%)이 모두 약세로 정렬되어 경로의 방향성은 하락이다. 다만 현재가 $66,341.80이 하모닉 bullish Gartley PRZ $65,999.53~$67,113.44 내부에 있고 CVD divergence 0.700·OI +1.5950%의 매수 흡수 신호가 동시에 존재해, 'Setup vs Structure'가 명시한 대로 추격형 약세가 아니라 저항 수용 여부를 먼저 확인해야 하는 혼합 구간이다. 따라서 경로는 단일 추세형이 아니라 corrective(반등→거절→하락) 복합 경로로 설정한다. 1단계는 반등 리스크가 ST·EMA20·PRZ 상단 클러스터($66,680.87~$67,255.40)까지 전개되며 buy-side liquidity를 스윕한 뒤 거절되는 구간(=기간 고점), 2~3단계는 ICT의 핵심 시나리오인 하단 sell-side liquidity 사냥($65,314.30→$64,918.20→$63,973.65)이다. 신뢰도는 구조·셋업 정렬로 상향 요인이 있으나, 6개 분석 중 3개가 NEUTRAL 신호이고 파생·하모닉의 단기 반등형 반대 신호와 압축 국면의 방향 불확실성으로 0.6로 제한한다.\",\n  \"key_insight\": \"이 구간의 핵심은 '약세 구조 안의 반등 거절'이다. EMA20 $66,680.87~ST $67,255.40 저항 클러스터를 일봉 수용하지 못하고 거절될 때 비로소 ICT의 하단 sell-side liquidity 사냥($65,314.30 이탈)이 본격화된다. 반대로 이 클러스터를 수용하면 경로 자체가 무효화된다.\",\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 67255.4,\n      \"type\": \"liquidity_sweep\",\n      \"source\": \"Wyckoff(ST $67,255.40 재공급 테스트), ICT(이전일 고가·buy-side liquidity $67,255.40), Candlestick(7일 고점 $67,255.40), Harmonic(Gartley PRZ 상단 $67,113.44), Derivatives(상방 유동성 $67,100·$66,100 청산 스윕)\",\n      \"description\": \"현재가 $66,341.80은 EMA20 $66,680.87 아래 수용 중이나 Gartley PRZ 내부 진입과 CVD/OI 흡수 신호로 단기 반등 리스크가 큼. 첫 경로는 Derivatives가 제시한 $66,100 청산 레벨 스윕 이후 ST $67,255.40(=이전일 고가·7일 고점·EMA20~PRZ 상단 클러스터)까지 반등하며 buy-side liquidity를 스윕한 뒤 거절되는 흐름. ICT의 '이전일 고가 돌파 실패' 및 Wyckoff ST 거절 시나리오와 일치하는 기간 고점.\",\n      \"est_hours\": 4.0\n    },\n    {\n      \"seq\": 2,\n      \"price\": 65314.3,\n      \"type\": \"support_test\",\n      \"source\": \"ICT(이전일 저가·sell-side liquidity $65,314.30), Wyckoff/Candlestick(EMA20 아래 수용·중기 추세 약세)\",\n      \"description\": \"ST·EMA20 저항 클러스터에서 거절 후 ICT 핵심 시나리오인 하단 유동성 사냥 전개. 이전일 저가 $65,314.30 하향 이탈로 1차 sell-side liquidity 스윕 개시. EMA120 $74,244.80(-10.6%)·EMA240 $81,300.37(-18.4%) 대비 열위로 구조적 공급 압력이 하락을 지지.\",\n      \"est_hours\": 12.0\n    },\n    {\n      \"seq\": 3,\n      \"price\": 63973.65,\n      \"type\": \"swing_low\",\n      \"source\": \"ICT(CHoCH $64,918.20 sell-side liquidity), Fibonacci(0.236 $64,684.69·7일 EQ $63,973.65), Candlestick(7일 범위 EQ $63,973.65), Derivatives($63,500 롱 실패 레벨)\",\n      \"description\": \"bearish CHoCH $64,918.20 및 Fibonacci 0.236 $64,684.69의 sell-side liquidity 클러스터를 추가 스윕하며 7일 범위 EQ $63,973.65(Fibonacci·Candlestick 공통 균형가)까지 하락. 24시간 경로의 swing low이며, 추가 모멘텀 발생 시 Derivatives 롱 실패 레벨 $63,500 하향 확장 가능.\",\n      \"est_hours\": 22.0\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 67255.4, \"expected_low\": 66100.0, \"high_first\": false},\n    \"8h\":  {\"expected_high\": 67255.4, \"expected_low\": 65595.7, \"high_first\": true},\n    \"24h\": {\"expected_high\": 67255.4, \"expected_low\": 63973.65, \"high_first\": true}\n  },\n  \"triggers\": {\n    \"bullish\": {\"price\": 67255.4, \"description\": \"ST $67,255.40(이전일 고가)을 일봉 기준 회복·수용하면 Wyckoff·ICT 모두 단기 약세 셋업 약화로 판단. 이후 $68,152.00(Fib 0.382) 상방 수용 시 EQ $70,954.35로 반등 확장.\"},\n    \"bearish\": {\"price\": 65314.3, \"description\": \"이전일 저가 $65,314.30 하향 이탈 시 sell-side liquidity 사냥 가속. $64,918.20 CHoCH 및 $63,973.65 EQ, 이어 $60,691.90·$59,080 하단 구조로 하락 확장 확인.\"}\n  },\n  \"scenario_invalidation\": 68152.0\n}\n```"
  },
  "tp_calibration": {
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 67255.4,
        "turning_zone": [
          67255.4,
          68152.0
        ],
        "likely_wick": 67800.0,
        "rejection_confirm": 66680.87,
        "invalid_overshoot": 68683.96,
        "calibration_reasoning": "이전일 고가·7일 고점 클러스터 $67,255.40(buy-side 유동성)를 하단, Fib 0.382 저항 $68,152을 상단으로 zone 설정(폭 $896 ≈ 0.40 ATR). likely_wick은 스윕 직후 조건부 Harmonic TP1 $67,871.53 부근·$68k 라운드넘버 아래로 편향했으며, Gartley PRZ는 pre-confirmation이라 base는 이동시키지 않음. EMA20 $66,680.87 재이탈이 거절 확정."
      },
      {
        "seq": 2,
        "base_target": 65314.3,
        "turning_zone": [
          64918.2,
          65314.3
        ],
        "likely_wick": 65000.0,
        "rejection_confirm": 65595.7,
        "invalid_overshoot": 64684.69,
        "calibration_reasoning": "1차 sell-side 스윕 대상인 이전일 저가 $65,314.30을 상단, bearish CHoCH $64,918.20을 구조적 바닥으로 한 얕은 중간 테스트 zone(폭 $396, 의도적으로 타이트). likely_wick은 라운드넘버 자석 $65,000. CHoCH 하향 이탈로 Fib 0.236 $64,684.69까지 진행 시 WP3로 전환되어 본 turn은 무효."
      },
      {
        "seq": 3,
        "base_target": 63973.65,
        "turning_zone": [
          62800.0,
          63973.65
        ],
        "likely_wick": 63500.0,
        "rejection_confirm": 64918.2,
        "invalid_overshoot": 62500.0,
        "calibration_reasoning": "터미널 waypoint로 7일 EQ $63,973.65(≈$64k 라운드)를 상단, Derivatives 롱 실패·청산 레벨 $63,500을 포함하도록 ~0.53 ATR(폭 $1,174)로 확장. likely_wick은 청산 클러스터 자석 $63,500. CHoCH $64,918.20 재탈환 시 bullish 반전 확정, zone 하향 이탈($62,500) 시 $60,691.90 향한 추가 하락으로 무효."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 67255.40,\n      \"turning_zone\": [67255.40, 68152.00],\n      \"likely_wick\": 67800.00,\n      \"rejection_confirm\": 66680.87,\n      \"invalid_overshoot\": 68683.96,\n      \"calibration_reasoning\": \"이전일 고가·7일 고점 클러스터 $67,255.40(buy-side 유동성)를 하단, Fib 0.382 저항 $68,152을 상단으로 zone 설정(폭 $896 ≈ 0.40 ATR). likely_wick은 스윕 직후 조건부 Harmonic TP1 $67,871.53 부근·$68k 라운드넘버 아래로 편향했으며, Gartley PRZ는 pre-confirmation이라 base는 이동시키지 않음. EMA20 $66,680.87 재이탈이 거절 확정.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 65314.30,\n      \"turning_zone\": [64918.20, 65314.30],\n      \"likely_wick\": 65000.00,\n      \"rejection_confirm\": 65595.70,\n      \"invalid_overshoot\": 64684.69,\n      \"calibration_reasoning\": \"1차 sell-side 스윕 대상인 이전일 저가 $65,314.30을 상단, bearish CHoCH $64,918.20을 구조적 바닥으로 한 얕은 중간 테스트 zone(폭 $396, 의도적으로 타이트). likely_wick은 라운드넘버 자석 $65,000. CHoCH 하향 이탈로 Fib 0.236 $64,684.69까지 진행 시 WP3로 전환되어 본 turn은 무효.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 63973.65,\n      \"turning_zone\": [62800.00, 63973.65],\n      \"likely_wick\": 63500.00,\n      \"rejection_confirm\": 64918.20,\n      \"invalid_overshoot\": 62500.00,\n      \"calibration_reasoning\": \"터미널 waypoint로 7일 EQ $63,973.65(≈$64k 라운드)를 상단, Derivatives 롱 실패·청산 레벨 $63,500을 포함하도록 ~0.53 ATR(폭 $1,174)로 확장. likely_wick은 청산 클러스터 자석 $63,500. CHoCH $64,918.20 재탈환 시 bullish 반전 확정, zone 하향 이탈($62,500) 시 $60,691.90 향한 추가 하락으로 무효.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 41.6,
      "chairman": 41.2,
      "operating_path": 326.5,
      "tp_calibrator": 199.0
    },
    "agents": {},
    "total_s": 608.4
  }
}