{
  "symbol": "BTC/USDT",
  "timeframe": "15m",
  "timestamp": "2026-06-06 13:00 KST",
  "last_price": 60662.6,
  "num_candles": 300,
  "stage1_analyses": {
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "bearish",
      "confidence": 0.64,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.7,
      "setup_signals": [
        "현재가 $60,662.60이 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 위치해 구조적 할인/약세 구간에 머무름",
        "가격은 24시간 -3.25% 하락했는데 OI는 24시간 +1.64% 증가하여 하락 방향 신규 포지션 유입 가능성",
        "CVD 변화가 -14,138.2740으로 음수이며 cvd_divergence 0.300으로 매수 참여 회복이 약함",
        "롱 계정 비율이 0.658로 여전히 높고 account_long_crowding 1.000으로 롱 포지셔닝이 혼잡해 반대매매 리스크 존재",
        "가까운 하방 청산 유동성이 $60,300, $59,600, $58,400에 집중되어 있어 단기 자석 역할 가능"
      ],
      "reasoning": "확정 구조는 현재가 $60,662.60이 EMA20 $60,947.34와 EMA120 $61,786.58 아래에서 거래되고 있고, 7일 고점 $67,493.80 이후 $59,080.00 저점권을 테스트한 상태라 약세로 판단한다. 셋업 측면에서도 가격 하락 중 OI가 24시간 +1.64% 증가했고 CVD가 -14,138.2740 감소해, 매도 주도 신규 포지션이 가격을 누르는 구간으로 보인다. funding_avg는 거의 0에 가까워 과도한 숏 과열은 아니지만, 롱 계정 비율 0.658 및 account_long_crowding 1.000은 아직 롱 쪽 포지셔닝이 충분히 정리되지 않았음을 시사한다. 단기적으로 $60,300 이탈 시 $59,600, 이후 $58,400 청산 유동성까지 가격이 끌릴 수 있으며, 반대로 $61,500-$62,100 회복 시 약세 셋업은 약화된다.",
      "key_levels": {
        "support": [
          60300,
          59600,
          59080,
          58400
        ],
        "resistance": [
          60947.34,
          61500,
          61786.58,
          62100,
          63300
        ]
      },
      "time_horizon": "단기 4-8시간",
      "invalidation_level": "$62,100 상방 안착",
      "risk_scenario": "$61,500 위로 빠르게 회복하고 $62,100 청산 구간까지 돌파하면, 최근 증가한 숏성 OI가 역으로 숏 스퀴즈 연료가 되어 $63,300 상단 유동성까지 반등할 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.3,
        "cvd_change": -14138.274,
        "oi_trend": 0.664,
        "oi_change_pct_24h": 1.64,
        "oi_latest": 101730.958,
        "funding_pressure": 0.512,
        "funding_avg": -1.176e-05,
        "funding_change_24h": 1.97e-06,
        "long_account_ratio": 0.674,
        "short_account_ratio": 0.326,
        "long_account_latest": 0.658,
        "short_account_latest": 0.342,
        "long_account_change_24h": -0.0218,
        "short_account_change_24h": 0.0218,
        "account_flow_label": "short_accounts_rising_long_accounts_falling",
        "account_short_crowding": 0.0,
        "account_long_crowding": 1.0,
        "ls_imbalance": 0.0,
        "ls_imbalance_interpretation": "high=short-account crowding / low=long-account crowding",
        "spot_futures_basis_score": 0.49,
        "spot_futures_basis_pct": -0.0403,
        "basis_change_lookback": 0.0039,
        "aggregate_score": 0.393,
        "bull_signals": 1,
        "bear_signals": 2,
        "liq_below": [
          [
            60300,
            3762.4489551
          ],
          [
            59600,
            3512.4767235000004
          ],
          [
            58400,
            4056.573048000001
          ]
        ],
        "liq_above": [
          [
            61500,
            3622.1362644
          ],
          [
            62100,
            4476.4199916
          ],
          [
            63300,
            5166.374634
          ]
        ],
        "strongest_liq_level": 54800,
        "fragility_score": 0.733,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.64,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.70,\n  \"setup_signals\": [\n    \"현재가 $60,662.60이 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 위치해 구조적 할인/약세 구간에 머무름\",\n    \"가격은 24시간 -3.25% 하락했는데 OI는 24시간 +1.64% 증가하여 하락 방향 신규 포지션 유입 가능성\",\n    \"CVD 변화가 -14,138.2740으로 음수이며 cvd_divergence 0.300으로 매수 참여 회복이 약함\",\n    \"롱 계정 비율이 0.658로 여전히 높고 account_long_crowding 1.000으로 롱 포지셔닝이 혼잡해 반대매매 리스크 존재\",\n    \"가까운 하방 청산 유동성이 $60,300, $59,600, $58,400에 집중되어 있어 단기 자석 역할 가능\"\n  ],\n  \"reasoning\": \"확정 구조는 현재가 $60,662.60이 EMA20 $60,947.34와 EMA120 $61,786.58 아래에서 거래되고 있고, 7일 고점 $67,493.80 이후 $59,080.00 저점권을 테스트한 상태라 약세로 판단한다. 셋업 측면에서도 가격 하락 중 OI가 24시간 +1.64% 증가했고 CVD가 -14,138.2740 감소해, 매도 주도 신규 포지션이 가격을 누르는 구간으로 보인다. funding_avg는 거의 0에 가까워 과도한 숏 과열은 아니지만, 롱 계정 비율 0.658 및 account_long_crowding 1.000은 아직 롱 쪽 포지셔닝이 충분히 정리되지 않았음을 시사한다. 단기적으로 $60,300 이탈 시 $59,600, 이후 $58,400 청산 유동성까지 가격이 끌릴 수 있으며, 반대로 $61,500-$62,100 회복 시 약세 셋업은 약화된다.\",\n  \"key_levels\": {\n    \"support\": [\n      60300,\n      59600,\n      59080,\n      58400\n    ],\n    \"resistance\": [\n      60947.34,\n      61500,\n      61786.58,\n      62100,\n      63300\n    ]\n  },\n  \"time_horizon\": \"단기 4-8시간\",\n  \"invalidation_level\": \"$62,100 상방 안착\",\n  \"risk_scenario\": \"$61,500 위로 빠르게 회복하고 $62,100 청산 구간까지 돌파하면, 최근 증가한 숏성 OI가 역으로 숏 스퀴즈 연료가 되어 $63,300 상단 유동성까지 반등할 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "neutral",
      "confidence": 0.55,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.58,
      "setup_signals": [
        "현재가 $60,662.60은 7일 범위 EQ $63,286.90 아래의 할인 구간에 위치",
        "hammer@298 발생, 패턴 품질 0.612로 최근 후보 중 최상위이나 고거래량 동반 없음",
        "bullish_harami@291 및 doji@291/@295 출현으로 하락 압력 둔화 신호",
        "현재가가 7일 저점 $59,080.00 위에서 유지되고 있어 단기 매도 유동성 흡수 가능성 존재",
        "EMA20 $60,947.34 바로 아래에서 가격이 압축되어 있으며, 돌파 전까지는 반등 setup만 존재"
      ],
      "reasoning": "구조적으로는 현재가 $60,662.60이 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 모두 아래에 있어 하락 구조가 우세합니다. 다만 최근 hammer@298의 품질이 0.612로 가장 높고, bullish_harami와 doji가 함께 나타나면서 $59,080.00 7일 저점 부근에서 단기 매도세 둔화가 관찰됩니다. bull_score 1.25가 bear_score 0.75보다 높지만, high_volume_patterns가 없고 최근 5개 캔들이 대부분 약한 음봉이어서 강한 반전 확정으로 보기는 어렵습니다. 따라서 확정 구조는 bearish, 그러나 실행 관점의 사전 setup은 $59,080.00 지지 기반의 단기 bullish 반등 후보로 판단합니다.",
      "key_levels": {
        "support": [
          60322.67,
          59080.0
        ],
        "resistance": [
          60947.34,
          61786.58,
          62848.5,
          63286.9,
          67493.8
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$59,080.00",
      "risk_scenario": "$59,080.00이 15분봉 종가 기준으로 이탈되면 hammer 및 bullish harami 기반의 반등 setup은 실패로 보며, 다음 구간에서는 EMA20 $60,947.34 회복 실패와 함께 하락 추세 재개 가능성이 커집니다. 반대로 $60,947.34를 회복하고 $61,786.58 위로 안착하면 단기 구조 전환 시도가 강화될 수 있습니다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 147,
        "recent_patterns": 5,
        "pattern_list": [
          "hammer@298",
          "bearish_engulfing@292",
          "doji@291",
          "doji@295",
          "bullish_harami@291"
        ],
        "atr_value": 339.93,
        "vol_avg_20": 1880.31,
        "high_volume_patterns": [],
        "pattern_candidates": [
          {
            "pattern": "hammer",
            "signal": "bullish",
            "pattern_quality": 0.612,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bullish_harami",
            "signal": "bullish",
            "pattern_quality": 0.496,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bearish_engulfing",
            "signal": "bearish",
            "pattern_quality": 0.481,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "doji",
            "signal": "neutral",
            "pattern_quality": 0.355,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "doji",
            "signal": "neutral",
            "pattern_quality": 0.355,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.612,
        "bull_score": 1.25,
        "bear_score": 0.75
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.55,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.58,\n  \"setup_signals\": [\n    \"현재가 $60,662.60은 7일 범위 EQ $63,286.90 아래의 할인 구간에 위치\",\n    \"hammer@298 발생, 패턴 품질 0.612로 최근 후보 중 최상위이나 고거래량 동반 없음\",\n    \"bullish_harami@291 및 doji@291/@295 출현으로 하락 압력 둔화 신호\",\n    \"현재가가 7일 저점 $59,080.00 위에서 유지되고 있어 단기 매도 유동성 흡수 가능성 존재\",\n    \"EMA20 $60,947.34 바로 아래에서 가격이 압축되어 있으며, 돌파 전까지는 반등 setup만 존재\"\n  ],\n  \"reasoning\": \"구조적으로는 현재가 $60,662.60이 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 모두 아래에 있어 하락 구조가 우세합니다. 다만 최근 hammer@298의 품질이 0.612로 가장 높고, bullish_harami와 doji가 함께 나타나면서 $59,080.00 7일 저점 부근에서 단기 매도세 둔화가 관찰됩니다. bull_score 1.25가 bear_score 0.75보다 높지만, high_volume_patterns가 없고 최근 5개 캔들이 대부분 약한 음봉이어서 강한 반전 확정으로 보기는 어렵습니다. 따라서 확정 구조는 bearish, 그러나 실행 관점의 사전 setup은 $59,080.00 지지 기반의 단기 bullish 반등 후보로 판단합니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60322.67,\n      59080.0\n    ],\n    \"resistance\": [\n      60947.34,\n      61786.58,\n      62848.5,\n      63286.9,\n      67493.8\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$59,080.00\",\n  \"risk_scenario\": \"$59,080.00이 15분봉 종가 기준으로 이탈되면 hammer 및 bullish harami 기반의 반등 setup은 실패로 보며, 다음 구간에서는 EMA20 $60,947.34 회복 실패와 함께 하락 추세 재개 가능성이 커집니다. 반대로 $60,947.34를 회복하고 $61,786.58 위로 안착하면 단기 구조 전환 시도가 강화될 수 있습니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "neutral",
      "confidence": 0.62,
      "structure_bias": "bullish",
      "setup_bias": "bearish",
      "setup_score": 0.56,
      "setup_signals": [
        "현재가 $60,662.60은 메인 레인지 저점/SC $61,344.80 아래에 있어 SOS 이후 수용이 아직 확인되지 않음",
        "SOS 고점 $61,500.00 회복 실패 상태로, 단기적으로는 터미널 스프링 $60,458.00 재시험 위험이 남아 있음",
        "EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에서 거래되어 즉시 경로는 공급 우위",
        "터미널 스프링 $60,458.00은 아직 훼손되지 않았으나, 현재 가격이 그 위에서 약하게 머무는 LPS/테스트 후보 구간"
      ],
      "reasoning": "지표상 regime은 ACC이고 regime_fitness는 0.925로 높으며, 라벨 체인은 SC $61,344.80 → AR $64,739.80 → ST $62,150.80 → Spring $61,330.50 → TERMINAL_SPRING $60,458.00 → SOS $61,500.00로 누적 Phase D 후보 구조를 형성한다. 따라서 구조적 해석은 bullish이나, 현재가 $60,662.60은 메인 레인지 저점 $61,344.80 및 SOS $61,500.00 아래에 있어 Phase D의 수용이 아직 확정적이지 않다. 즉시 경로는 $61,344.80~$61,500.00 회복 전까지 터미널 스프링 $60,458.00 재시험 또는 LPS 확인 과정이 우선이며, 이 구간을 방어해야 누적 구조가 유지된다. $61,500.00을 재탈환하고 그 위에서 수용되면 SOS 이후 LPS/BU 진행 가능성이 커지지만, $60,458.00 이탈은 현재 Phase D 해석을 약화시킨다.",
      "key_levels": {
        "support": [
          60458.0,
          59080.0
        ],
        "resistance": [
          61344.8,
          61500.0,
          62150.8,
          64739.8
        ]
      },
      "time_horizon": "단기~중기",
      "invalidation_level": "$60,458.00 아래 15분봉 종가 수용",
      "risk_scenario": "$61,344.80~$61,500.00 회복에 실패하고 $60,458.00 터미널 스프링 저점을 이탈하면, 현재 SOS 라벨은 실패한 반등으로 재해석될 수 있으며 $59,080.00 7일 저점까지 추가 유동성 테스트가 열릴 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "acc_score": 92.5,
        "dis_score": 87.3,
        "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": 100,
            "price": 61344.8,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "high",
            "idx": 109,
            "price": 64739.8,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "low",
            "idx": 138,
            "price": 62150.8,
            "color": "#118ab2"
          },
          {
            "label": "Spring",
            "side": "low",
            "idx": 216,
            "price": 61330.5,
            "color": "#f9844a"
          },
          {
            "label": "TERMINAL_SPRING",
            "side": "low",
            "idx": 282,
            "price": 60458.0,
            "color": "#f3722c"
          },
          {
            "label": "SOS",
            "side": "high",
            "idx": 285,
            "price": 61500.0,
            "color": "#06d6a0"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "15m_cycle_1",
            "sequence": 1,
            "timeframe": "15m",
            "regime": "accumulation",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bullish",
            "phase_context": "accumulation",
            "start_idx": 100,
            "end_idx": 285,
            "phase_count": 6,
            "phases": [
              {
                "label": "SC",
                "side": "low",
                "idx": 100,
                "price": 61344.8,
                "color": "#ffd166",
                "dt": "2026-06-04 11:00:00+09:00"
              },
              {
                "label": "AR",
                "side": "high",
                "idx": 109,
                "price": 64739.8,
                "color": "#06d6a0",
                "dt": "2026-06-04 13:15:00+09:00"
              },
              {
                "label": "ST",
                "side": "low",
                "idx": 138,
                "price": 62150.8,
                "color": "#118ab2",
                "dt": "2026-06-04 20:30:00+09:00"
              },
              {
                "label": "Spring",
                "side": "low",
                "idx": 216,
                "price": 61330.5,
                "color": "#f9844a",
                "dt": "2026-06-05 16:00:00+09:00"
              },
              {
                "label": "TERMINAL_SPRING",
                "side": "low",
                "idx": 282,
                "price": 60458.0,
                "color": "#f3722c",
                "dt": "2026-06-06 08:30:00+09:00"
              },
              {
                "label": "SOS",
                "side": "high",
                "idx": 285,
                "price": 61500.0,
                "color": "#06d6a0",
                "dt": "2026-06-06 09:15:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "15m_cycle_1",
        "primary_structure_id": "15m_cycle_1",
        "structure_count": 1,
        "regime_fitness": 0.9249999999999999,
        "current_event": "SOS",
        "major_phase": "D",
        "pos_in_range": 0.5,
        "main_range_low": 61344.8,
        "main_range_high": 64739.8
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"bullish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.56,\n  \"setup_signals\": [\n    \"현재가 $60,662.60은 메인 레인지 저점/SC $61,344.80 아래에 있어 SOS 이후 수용이 아직 확인되지 않음\",\n    \"SOS 고점 $61,500.00 회복 실패 상태로, 단기적으로는 터미널 스프링 $60,458.00 재시험 위험이 남아 있음\",\n    \"EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에서 거래되어 즉시 경로는 공급 우위\",\n    \"터미널 스프링 $60,458.00은 아직 훼손되지 않았으나, 현재 가격이 그 위에서 약하게 머무는 LPS/테스트 후보 구간\"\n  ],\n  \"reasoning\": \"지표상 regime은 ACC이고 regime_fitness는 0.925로 높으며, 라벨 체인은 SC $61,344.80 → AR $64,739.80 → ST $62,150.80 → Spring $61,330.50 → TERMINAL_SPRING $60,458.00 → SOS $61,500.00로 누적 Phase D 후보 구조를 형성한다. 따라서 구조적 해석은 bullish이나, 현재가 $60,662.60은 메인 레인지 저점 $61,344.80 및 SOS $61,500.00 아래에 있어 Phase D의 수용이 아직 확정적이지 않다. 즉시 경로는 $61,344.80~$61,500.00 회복 전까지 터미널 스프링 $60,458.00 재시험 또는 LPS 확인 과정이 우선이며, 이 구간을 방어해야 누적 구조가 유지된다. $61,500.00을 재탈환하고 그 위에서 수용되면 SOS 이후 LPS/BU 진행 가능성이 커지지만, $60,458.00 이탈은 현재 Phase D 해석을 약화시킨다.\",\n  \"key_levels\": {\n    \"support\": [\n      60458.0,\n      59080.0\n    ],\n    \"resistance\": [\n      61344.8,\n      61500.0,\n      62150.8,\n      64739.8\n    ]\n  },\n  \"time_horizon\": \"단기~중기\",\n  \"invalidation_level\": \"$60,458.00 아래 15분봉 종가 수용\",\n  \"risk_scenario\": \"$61,344.80~$61,500.00 회복에 실패하고 $60,458.00 터미널 스프링 저점을 이탈하면, 현재 SOS 라벨은 실패한 반등으로 재해석될 수 있으며 $59,080.00 7일 저점까지 추가 유동성 테스트가 열릴 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "bearish",
      "confidence": 0.87,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.92,
      "setup_signals": [
        "가격 $60,662.60이 EQ $60,532.55 위의 premium 구간에 위치하여 숏 재진입 조건 우세",
        "EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에서 거래되어 단기·중기 추세 압력 bearish",
        "전일 저점 $60,300.00이 이미 하향 이탈되었고, 재차 $60,458.00 런던 저점 및 $60,300.00 아래 유동성으로 끌릴 가능성",
        "최근 구조 이벤트가 $66,620.00, $65,508.30, $63,040.00, $62,300.00, $61,067.60에서 5연속 bearish BOS",
        "활성 bullish OB 및 미체결 bullish FVG가 없고, 상단 $67,032.60-$67,448.00에는 candidate bearish OB만 존재"
      ],
      "reasoning": "확정 구조는 명확히 bearish입니다. 최근 BOS/CHoCH 시퀀스가 5회 연속 bearish BOS이며 마지막 구조 이탈 레벨은 $61,067.60으로, 현재가 $60,662.60은 그 아래에서 수용되고 있습니다. 셋업 관점에서도 가격은 EQ $60,532.55 위 premium 영역에 있어 반등 매도 조건이 유효하고, EMA20 $60,947.34 및 EMA120 $61,786.58 아래에서 매수 방어가 약합니다. 전일 저점 $60,300.00이 이미 깨졌고, 런던 저점 $60,458.00 및 레인지 저점 $59,080.00이 다음 sell-side liquidity 목표로 보입니다.",
      "key_levels": {
        "support": [
          60532.55,
          60458.0,
          60300.0,
          59080.0
        ],
        "resistance": [
          60947.34,
          61067.6,
          61985.1,
          62300.0,
          63040.0,
          67032.6,
          67448.0,
          67470.9
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$61,985.10",
      "risk_scenario": "반대 시나리오는 가격이 $61,067.60을 회복한 뒤 런던 고점 $61,942.40과 레인지 고점 $61,985.10 위에서 15분봉 종가 수용을 만드는 경우입니다. 이 경우 단기 bearish setup은 실패로 보고, $62,300.00 및 $63,040.00의 이전 bearish BOS 레벨까지 숏 청산성 반등이 열릴 수 있습니다.",
      "data_quality": "high",
      "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": 67032.6,
          "top": 67448.0,
          "quality": "candidate",
          "score": 0.549
        },
        "active_bullish_ob_list": [],
        "active_bearish_ob_list": [],
        "ob_mitigated_count": 0,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 68,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish"
        ],
        "bos_choch_levels": [
          {
            "type": "BOS_bearish",
            "level": 66620.0
          },
          {
            "type": "BOS_bearish",
            "level": 65508.3
          },
          {
            "type": "BOS_bearish",
            "level": 63040.0
          },
          {
            "type": "BOS_bearish",
            "level": 62300.0
          },
          {
            "type": "BOS_bearish",
            "level": 61067.6
          }
        ],
        "bos_sequence": [
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish",
          "BOS_bearish"
        ],
        "consecutive_bull_bos": 0,
        "consecutive_bear_bos": 5,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [
          {
            "type": "BSL",
            "level": 67470.9
          }
        ],
        "current_zone": "premium",
        "eq_level": 60532.55,
        "range_high": 61985.1,
        "range_low": 59080.0,
        "bull_score": 0.5,
        "bear_score": 14.8,
        "setup_bias": "bearish",
        "setup_score": 0.92,
        "setup_signals": [
          "bearish BOS below $66,620.00",
          "bearish BOS below $65,508.30",
          "bearish BOS below $63,040.00",
          "bearish BOS below $62,300.00",
          "bearish BOS below $61,067.60"
        ],
        "retracement_direction": "bearish",
        "current_retracement_pct": 20.3,
        "deepest_retracement_pct": 68.2,
        "previous_day_high": 64380.0,
        "previous_day_low": 60300.0,
        "broken_prev_high": false,
        "broken_prev_low": true,
        "sessions": {
          "London": {
            "active": true,
            "high": 61942.4,
            "low": 60458.0
          },
          "New York": {
            "active": false,
            "high": null,
            "low": null
          },
          "Asian kill zone": {
            "active": false,
            "high": null,
            "low": null
          }
        }
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.87,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.92,\n  \"setup_signals\": [\n    \"가격 $60,662.60이 EQ $60,532.55 위의 premium 구간에 위치하여 숏 재진입 조건 우세\",\n    \"EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에서 거래되어 단기·중기 추세 압력 bearish\",\n    \"전일 저점 $60,300.00이 이미 하향 이탈되었고, 재차 $60,458.00 런던 저점 및 $60,300.00 아래 유동성으로 끌릴 가능성\",\n    \"최근 구조 이벤트가 $66,620.00, $65,508.30, $63,040.00, $62,300.00, $61,067.60에서 5연속 bearish BOS\",\n    \"활성 bullish OB 및 미체결 bullish FVG가 없고, 상단 $67,032.60-$67,448.00에는 candidate bearish OB만 존재\"\n  ],\n  \"reasoning\": \"확정 구조는 명확히 bearish입니다. 최근 BOS/CHoCH 시퀀스가 5회 연속 bearish BOS이며 마지막 구조 이탈 레벨은 $61,067.60으로, 현재가 $60,662.60은 그 아래에서 수용되고 있습니다. 셋업 관점에서도 가격은 EQ $60,532.55 위 premium 영역에 있어 반등 매도 조건이 유효하고, EMA20 $60,947.34 및 EMA120 $61,786.58 아래에서 매수 방어가 약합니다. 전일 저점 $60,300.00이 이미 깨졌고, 런던 저점 $60,458.00 및 레인지 저점 $59,080.00이 다음 sell-side liquidity 목표로 보입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60532.55,\n      60458.0,\n      60300.0,\n      59080.0\n    ],\n    \"resistance\": [\n      60947.34,\n      61067.6,\n      61985.1,\n      62300.0,\n      63040.0,\n      67032.6,\n      67448.0,\n      67470.9\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$61,985.10\",\n  \"risk_scenario\": \"반대 시나리오는 가격이 $61,067.60을 회복한 뒤 런던 고점 $61,942.40과 레인지 고점 $61,985.10 위에서 15분봉 종가 수용을 만드는 경우입니다. 이 경우 단기 bearish setup은 실패로 보고, $62,300.00 및 $63,040.00의 이전 bearish BOS 레벨까지 숏 청산성 반등이 열릴 수 있습니다.\",\n  \"data_quality\": \"high\"\n}"
    },
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "bearish",
      "confidence": 0.58,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.55,
      "setup_signals": [
        "가격이 스윙 EQ인 $61,200.20 아래에 위치해 단기 디스카운트 구간에 있음",
        "현재가 $60,662.60이 하락 스윙 저점 및 ext_1.0 지지 $60,458.00 근처에서 테스트 중",
        "fib_reaction_state가 testing이며 반응 확률 0.65로 단기 반등 시도 가능성 존재",
        "상단 $60,808.32 ret_0.236 및 $61,025.04 ret_0.382가 가까운 미확인 반등 목표로 작용"
      ],
      "reasoning": "확정 구조는 $61,942 고점에서 $60,458 저점으로 이어진 하락 스윙이며, 현재가 $60,662.60은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 모두 아래에 있어 구조적으로는 약세가 우위입니다. 가장 가까운 피보나치 저항은 ret_0.236 $60,808.32이며, 그 위 $61,025.04 ret_0.382와 $61,200.20 ret_0.5가 연속 저항으로 배치되어 반등이 나와도 아직은 되돌림 성격입니다. 다만 현재가는 스윙 EQ $61,200.20 아래의 디스카운트 영역이고 ext_1.0 $60,458.00 지지에 근접해 있어, 구조 전환 전 단기 반등 setup은 존재합니다. 핵심 고확률 저항은 골든비율 ret_0.618 $61,375.36이며, 이 가격을 회복하지 못하면 반등은 매도 재진입 구간으로 해석됩니다.",
      "key_levels": {
        "support": [
          60458.0,
          60054.24,
          59843.46,
          59540.64,
          58973.6
        ],
        "resistance": [
          60808.32,
          61025.04,
          61200.2,
          61375.36,
          61624.74
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$61,375.36",
      "risk_scenario": "반대 시나리오는 가격이 $60,808.32 ret_0.236과 $61,025.04 ret_0.382를 순차적으로 회복한 뒤 골든비율 $61,375.36 위에서 안착하는 경우입니다. 이 경우 현재 하락 구조는 약화되고, $61,624.74 ret_0.786 및 스윙 고점 $61,942 재테스트로 숏 커버링이 확대될 수 있습니다. 반대로 $60,458.00이 이탈되면 반등 setup은 실패하며 $60,054.24, $59,843.46, 최종적으로 $58,973.60 ext_2.0까지 하락 확장이 열립니다.",
      "data_quality": "medium",
      "metrics": {
        "swing_pair": "High→Low: $61,942 → $60,458",
        "direction": "down",
        "nearest_fib": "ret_0.236",
        "nearest_fib_price": 60808.32,
        "nearest_fib_distance": 0.24,
        "golden_ratio_level": 61375.36,
        "fib_ret_382": 61025.04,
        "fib_ret_618": 61375.36,
        "confluence_zones": [
          {
            "price": 60966.34,
            "count": 3,
            "levels": [
              "ret_0.236",
              "ret_0.382",
              "ret_0.236"
            ],
            "cluster_score": 0.85
          },
          {
            "price": 59026.8,
            "count": 2,
            "levels": [
              "ext_2.0",
              "ext_1.0"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 59948.85,
            "count": 2,
            "levels": [
              "ext_1.414",
              "ext_1.272"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 61287.78,
            "count": 2,
            "levels": [
              "ret_0.5",
              "ret_0.618"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [
          60458.0,
          60054.2432,
          59843.4584
        ],
        "resistance_levels": [
          60808.318400000004,
          61025.0408,
          61200.2
        ],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 60808.32,
            "distance_pct": 0.24,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.382",
            "price": 61025.04,
            "distance_pct": 0.6,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.5",
            "price": 61200.2,
            "distance_pct": 0.89,
            "is_support": false,
            "cluster_score": 0.85
          },
          {
            "name": "ret_0.618",
            "price": 61375.36,
            "distance_pct": 1.17,
            "is_support": false,
            "cluster_score": 0.6
          },
          {
            "name": "ret_0.786",
            "price": 61624.74,
            "distance_pct": 1.59,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.0",
            "price": 60458.0,
            "distance_pct": 0.34,
            "is_support": true,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.272",
            "price": 60054.24,
            "distance_pct": 1.0,
            "is_support": true,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.414",
            "price": 59843.46,
            "distance_pct": 1.35,
            "is_support": true,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.618",
            "price": 59540.64,
            "distance_pct": 1.85,
            "is_support": true,
            "cluster_score": 0.0
          },
          {
            "name": "ext_2.0",
            "price": 58973.6,
            "distance_pct": 2.78,
            "is_support": true,
            "cluster_score": 0.6
          }
        ],
        "confluence_quality": 0.85,
        "fib_reaction_state": "testing",
        "reaction_probability": 0.65
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.58,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.55,\n  \"setup_signals\": [\n    \"가격이 스윙 EQ인 $61,200.20 아래에 위치해 단기 디스카운트 구간에 있음\",\n    \"현재가 $60,662.60이 하락 스윙 저점 및 ext_1.0 지지 $60,458.00 근처에서 테스트 중\",\n    \"fib_reaction_state가 testing이며 반응 확률 0.65로 단기 반등 시도 가능성 존재\",\n    \"상단 $60,808.32 ret_0.236 및 $61,025.04 ret_0.382가 가까운 미확인 반등 목표로 작용\"\n  ],\n  \"reasoning\": \"확정 구조는 $61,942 고점에서 $60,458 저점으로 이어진 하락 스윙이며, 현재가 $60,662.60은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 모두 아래에 있어 구조적으로는 약세가 우위입니다. 가장 가까운 피보나치 저항은 ret_0.236 $60,808.32이며, 그 위 $61,025.04 ret_0.382와 $61,200.20 ret_0.5가 연속 저항으로 배치되어 반등이 나와도 아직은 되돌림 성격입니다. 다만 현재가는 스윙 EQ $61,200.20 아래의 디스카운트 영역이고 ext_1.0 $60,458.00 지지에 근접해 있어, 구조 전환 전 단기 반등 setup은 존재합니다. 핵심 고확률 저항은 골든비율 ret_0.618 $61,375.36이며, 이 가격을 회복하지 못하면 반등은 매도 재진입 구간으로 해석됩니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60458.0,\n      60054.24,\n      59843.46,\n      59540.64,\n      58973.6\n    ],\n    \"resistance\": [\n      60808.32,\n      61025.04,\n      61200.2,\n      61375.36,\n      61624.74\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$61,375.36\",\n  \"risk_scenario\": \"반대 시나리오는 가격이 $60,808.32 ret_0.236과 $61,025.04 ret_0.382를 순차적으로 회복한 뒤 골든비율 $61,375.36 위에서 안착하는 경우입니다. 이 경우 현재 하락 구조는 약화되고, $61,624.74 ret_0.786 및 스윙 고점 $61,942 재테스트로 숏 커버링이 확대될 수 있습니다. 반대로 $60,458.00이 이탈되면 반등 setup은 실패하며 $60,054.24, $59,843.46, 최종적으로 $58,973.60 ext_2.0까지 하락 확장이 열립니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "bullish",
      "confidence": 0.46,
      "structure_bias": "bearish",
      "setup_bias": "bullish",
      "setup_score": 0.62,
      "setup_signals": [
        "현재가 $60,662.60이 확인 반응이 나온 bullish Crab 완료 PRZ $60,433.72-$60,965.28 내부에 위치",
        "완료 Crab 후보는 PRZ 진입/방어 후 AD 0.236 반응 도달, PRZ 중심 재탈환/방어, D 실패구간 방어로 reaction_score 0.95",
        "엄격·고품질 forming bullish Crab PRZ $60,715.42-$60,965.34가 바로 위에 활성화되어 있으며 XAD·BC_EXT·ABCD 3개 Fib family confluence",
        "추가 하단 bullish Gartley strict/high PRZ $59,997.31-$60,390.23가 대기 중이며 D 예상가 $60,193.77",
        "가격은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 있어 구조 전환 전에는 반등 후보일 뿐 추세 반전 확정은 아님"
      ],
      "reasoning": "하모닉 관점에서는 bullish 쪽 PRZ 밀집도가 뚜렷하며, 특히 완료된 Crab 후보가 $60,433.72-$60,965.28 PRZ에서 reaction_score 0.95로 방어 반응을 확인했습니다. 다만 베스트 패턴인 strict/high forming Crab은 $60,715.42-$60,965.34 PRZ의 사전확인 반전 후보 상태이며 directional_vote_weight가 0.35에 불과해 단독으로 메인 경로를 뒤집을 수 없습니다. 구조적으로는 현재가 $60,662.60이 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 있고 24h -3.25%라 확인된 상승 구조보다는 약세 구조 압력이 우세합니다. 따라서 결론은 ‘구조는 약세, 셋업은 PRZ 방어 기반의 단기 bullish 반응 후보’이며, $60,965 상단 회복 후 $61,031-$61,550을 돌파해야 반등 신뢰도가 올라갑니다.",
      "key_levels": {
        "support": [
          60433.72,
          60390.23,
          59997.31,
          59080.0
        ],
        "resistance": [
          60965.34,
          61031.92,
          61550.0,
          62192.51,
          63027.87,
          64380.0
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "15분 종가 기준 $59,997.31 하회",
      "risk_scenario": "$60,433.72-$60,390.23 방어가 실패하고 $59,997.31 아래로 수용되면 bullish Crab/Gartley PRZ 클러스터가 무효화되며, 7일 저점 $59,080.00 재테스트 또는 하방 유동성 확장으로 전개될 수 있습니다. 반대로 $60,965.34를 회복하고 $61,031.92-$61,550.00 위에서 유지되면 Crab/Gartley TP 래더가 활성화되어 $62,192.51, $63,027.87, 최종 $64,380.00까지 반등 경로를 열 수 있습니다.",
      "data_quality": "high",
      "metrics": {
        "patterns_found": 109,
        "completed_patterns_found": 33,
        "forming_d_prz_found": 76,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 34,
        "multiscale_swings_scanned": 53,
        "swing_highs_scanned": 25,
        "swing_lows_scanned": 28,
        "timeframe": "15m",
        "prz_active_threshold_pct": 0.3,
        "prz_nearby_threshold_pct": 0.6,
        "prz_watch_threshold_pct": 1.2,
        "prz_max_width_pct": 0.6,
        "quality_counts": {
          "high": 3,
          "medium": 52,
          "low": 54
        },
        "prz_status_counts": {
          "active": 11,
          "nearby": 9,
          "watch": 8,
          "far": 81,
          "forming": 59
        },
        "high_confluence_prz_count": 24,
        "strict_patterns_found": 52,
        "candidate_patterns_found": 57,
        "active_patterns_at_prz": 11,
        "nearby_patterns": 9,
        "all_patterns": [
          "crab",
          "bat",
          "butterfly",
          "gartley",
          "bat",
          "crab",
          "butterfly",
          "bat",
          "crab",
          "gartley",
          "gartley",
          "gartley",
          "bat",
          "crab",
          "butterfly",
          "butterfly",
          "crab",
          "shark",
          "bat",
          "bat",
          "bat",
          "gartley",
          "bat",
          "crab",
          "crab",
          "crab",
          "gartley",
          "shark",
          "bat",
          "crab",
          "bat",
          "bat",
          "butterfly",
          "crab",
          "crab",
          "crab",
          "crab",
          "crab",
          "butterfly",
          "crab",
          "bat",
          "butterfly",
          "shark",
          "bat",
          "bat",
          "crab",
          "bat",
          "shark",
          "bat",
          "butterfly",
          "crab",
          "gartley",
          "shark",
          "butterfly",
          "butterfly",
          "butterfly",
          "butterfly",
          "shark",
          "shark",
          "shark",
          "crab",
          "crab",
          "gartley",
          "crab",
          "crab",
          "crab",
          "shark",
          "butterfly",
          "gartley",
          "bat",
          "bat",
          "crab",
          "shark",
          "crab",
          "gartley",
          "crab",
          "butterfly",
          "gartley",
          "shark",
          "butterfly",
          "crab",
          "gartley",
          "shark",
          "crab",
          "butterfly",
          "crab",
          "gartley",
          "butterfly",
          "gartley",
          "gartley",
          "shark",
          "shark",
          "butterfly",
          "crab",
          "shark",
          "crab",
          "butterfly",
          "butterfly",
          "crab",
          "crab",
          "shark",
          "crab",
          "crab",
          "shark",
          "crab",
          "shark",
          "crab",
          "gartley",
          "crab"
        ],
        "all_signals": [
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish"
        ],
        "best_pattern": "crab",
        "best_pattern_quality": "strict",
        "best_quality": "high",
        "best_pattern_score": 0.959,
        "best_completion_status": "forming",
        "nearest_pattern": "crab",
        "nearest_prz": 60699.5,
        "price_to_prz": 0.06,
        "prz_range": [
          60433.72,
          60965.28
        ],
        "council_relevant_prz_count": 2,
        "directional_influence_prz_count": 2,
        "confirmed_reaction_prz_count": 0,
        "validated_harmonic_tp_count": 0,
        "pattern_candidates": [
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.959,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60840.38,
            "prz_range": [
              60715.42,
              60965.34
            ],
            "prz_width_pct": 0.411,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.29,
            "price_to_prz_pct_raw": 0.2931,
            "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": "crab",
              "d_price": 60840.38,
              "a_price": 64380.0,
              "tp1_ad_382": 62192.51,
              "tp2_ad_618": 63027.87,
              "tp3_a_or_structure_liquidity": 64380.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.5121
            },
            "x_price": 62150.8,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 64380.0,
            "a_idx": 153,
            "a_order": 3,
            "b_price": 63011.0,
            "b_idx": 192,
            "b_order": 3,
            "c_price": 62310.0,
            "c_idx": 242,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.895,
            "ratio_score": 0.911,
            "prz_score": 0.979,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60193.77,
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_width_pct": 0.653,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.77,
            "price_to_prz_pct_raw": -0.7729,
            "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.603,
              "ABC": 0.647
            },
            "x_price": 59739.1,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 253,
            "a_order": 8,
            "b_price": 60458.0,
            "b_idx": 282,
            "b_order": 8,
            "c_price": 61164.5,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.807,
            "ratio_score": 0.636,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 61045.34,
            "prz_range": [
              60940.19,
              61150.5
            ],
            "prz_width_pct": 0.345,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.63,
            "price_to_prz_pct_raw": 0.6309,
            "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": 61045.34,
              "a_price": 61550.0,
              "tp1_ad_382": 61238.12,
              "tp2_ad_618": 61357.22,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5566,
              "ABC": 0.8687
            },
            "x_price": 62234.3,
            "x_idx": 223,
            "x_order": 3,
            "a_price": 61550.0,
            "a_idx": 253,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 276,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 285,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.922,
            "ratio_score": 1.0,
            "prz_score": 0.9,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60728.35,
            "prz_range": [
              60467.81,
              60988.9
            ],
            "prz_width_pct": 0.858,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.11,
            "price_to_prz_pct_raw": 0.1084,
            "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": 60728.35,
              "a_price": 61985.1,
              "tp1_ad_382": 61208.43,
              "tp2_ad_618": 61505.02,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4842,
              "ABC": 0.4055
            },
            "x_price": 60300.0,
            "x_idx": 245,
            "x_order": 3,
            "a_price": 61985.1,
            "a_idx": 272,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 276,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 285,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.913,
            "ratio_score": 0.983,
            "prz_score": 0.892,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60876.4,
            "prz_range": [
              60609.35,
              61143.45
            ],
            "prz_width_pct": 0.877,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.35,
            "price_to_prz_pct_raw": 0.3524,
            "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": 60876.4,
              "a_price": 61550.0,
              "tp1_ad_382": 61133.72,
              "tp2_ad_618": 61292.69,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7896,
              "ABC": 0.8687
            },
            "x_price": 61067.6,
            "x_idx": 213,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 253,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 276,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 285,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.872,
            "ratio_score": 1.0,
            "prz_score": 0.864,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60058.69,
            "prz_range": [
              59773.62,
              60343.77
            ],
            "prz_width_pct": 0.949,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.0,
            "price_to_prz_pct_raw": -0.9955,
            "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": 60058.69,
              "a_price": 61500.0,
              "tp1_ad_382": 60609.27,
              "tp2_ad_618": 60949.42,
              "tp3_a_or_structure_liquidity": 61500.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.487,
              "ABC": 0.6088
            },
            "x_price": 59739.1,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 61500.0,
            "a_idx": 285,
            "a_order": 3,
            "b_price": 60642.4,
            "b_idx": 293,
            "b_order": 3,
            "c_price": 61164.5,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.859,
            "ratio_score": 0.974,
            "prz_score": 0.864,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60058.69,
            "prz_range": [
              59773.62,
              60343.77
            ],
            "prz_width_pct": 0.949,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.0,
            "price_to_prz_pct_raw": -0.9955,
            "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": 60058.69,
              "a_price": 61942.4,
              "tp1_ad_382": 60778.27,
              "tp2_ad_618": 61222.82,
              "tp3_a_or_structure_liquidity": 61942.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7915,
              "ABC": 0.4016
            },
            "x_price": 60300.0,
            "x_idx": 245,
            "x_order": 3,
            "a_price": 61942.4,
            "a_idx": 279,
            "a_order": 5,
            "b_price": 60642.4,
            "b_idx": 293,
            "b_order": 3,
            "c_price": 61164.5,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.834,
            "ratio_score": 0.829,
            "prz_score": 0.893,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60458.0,
            "prz_range": [
              60433.72,
              60965.28
            ],
            "prz_width_pct": 0.876,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.06,
            "price_to_prz_pct_raw": 0.0608,
            "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.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.266,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.236_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "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": "crab",
              "d_price": 60699.5,
              "a_price": 64380.0,
              "tp1_ad_382": 62105.45,
              "tp2_ad_618": 62974.05,
              "tp3_a_or_structure_liquidity": 64380.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.5121,
              "BCD": 2.6419,
              "XAD": 1.7594
            },
            "x_price": 62150.8,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 64380.0,
            "a_idx": 153,
            "a_order": 3,
            "b_price": 63011.0,
            "b_idx": 192,
            "b_order": 3,
            "c_price": 62310.0,
            "c_idx": 242,
            "c_order": 3,
            "d_idx": 282
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.959,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60840.38,
            "prz_range": [
              60715.42,
              60965.34
            ],
            "prz_width_pct": 0.411,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.29,
            "price_to_prz_pct_raw": 0.2931,
            "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": "crab",
              "d_price": 60840.38,
              "a_price": 64380.0,
              "tp1_ad_382": 62192.51,
              "tp2_ad_618": 63027.87,
              "tp3_a_or_structure_liquidity": 64380.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.5121
            },
            "x_price": 62150.8,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 64380.0,
            "a_idx": 153,
            "a_order": 3,
            "b_price": 63011.0,
            "b_idx": 192,
            "b_order": 3,
            "c_price": 62310.0,
            "c_idx": 242,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.895,
            "ratio_score": 0.911,
            "prz_score": 0.979,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60193.77,
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_width_pct": 0.653,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.77,
            "price_to_prz_pct_raw": -0.7729,
            "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.603,
              "ABC": 0.647
            },
            "x_price": 59739.1,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 253,
            "a_order": 8,
            "b_price": 60458.0,
            "b_idx": 282,
            "b_order": 8,
            "c_price": 61164.5,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.959,
            "ratio_score": 1.0,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60840.38,
            "prz_range": [
              60715.42,
              60965.34
            ],
            "prz_width_pct": 0.411,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.29,
            "price_to_prz_pct_raw": 0.2931,
            "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": "crab",
              "d_price": 60840.38,
              "a_price": 64380.0,
              "tp1_ad_382": 62192.51,
              "tp2_ad_618": 63027.87,
              "tp3_a_or_structure_liquidity": 64380.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.5121
            },
            "x_price": 62150.8,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 64380.0,
            "a_idx": 153,
            "a_order": 3,
            "b_price": 63011.0,
            "b_idx": 192,
            "b_order": 3,
            "c_price": 62310.0,
            "c_idx": 242,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.895,
            "ratio_score": 0.911,
            "prz_score": 0.979,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60193.77,
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_width_pct": 0.653,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.77,
            "price_to_prz_pct_raw": -0.7729,
            "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.603,
              "ABC": 0.647
            },
            "x_price": 59739.1,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 253,
            "a_order": 8,
            "b_price": 60458.0,
            "b_idx": 282,
            "b_order": 8,
            "c_price": 61164.5,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.807,
            "ratio_score": 0.636,
            "prz_score": 1.0,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 61045.34,
            "prz_range": [
              60940.19,
              61150.5
            ],
            "prz_width_pct": 0.345,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.63,
            "price_to_prz_pct_raw": 0.6309,
            "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": 61045.34,
              "a_price": 61550.0,
              "tp1_ad_382": 61238.12,
              "tp2_ad_618": 61357.22,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5566,
              "ABC": 0.8687
            },
            "x_price": 62234.3,
            "x_idx": 223,
            "x_order": 3,
            "a_price": 61550.0,
            "a_idx": 253,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 276,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 285,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.922,
            "ratio_score": 1.0,
            "prz_score": 0.9,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60728.35,
            "prz_range": [
              60467.81,
              60988.9
            ],
            "prz_width_pct": 0.858,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.11,
            "price_to_prz_pct_raw": 0.1084,
            "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": 60728.35,
              "a_price": 61985.1,
              "tp1_ad_382": 61208.43,
              "tp2_ad_618": 61505.02,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4842,
              "ABC": 0.4055
            },
            "x_price": 60300.0,
            "x_idx": 245,
            "x_order": 3,
            "a_price": 61985.1,
            "a_idx": 272,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 276,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 285,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.913,
            "ratio_score": 0.983,
            "prz_score": 0.892,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60876.4,
            "prz_range": [
              60609.35,
              61143.45
            ],
            "prz_width_pct": 0.877,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.35,
            "price_to_prz_pct_raw": 0.3524,
            "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": 60876.4,
              "a_price": 61550.0,
              "tp1_ad_382": 61133.72,
              "tp2_ad_618": 61292.69,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7896,
              "ABC": 0.8687
            },
            "x_price": 61067.6,
            "x_idx": 213,
            "x_order": 8,
            "a_price": 61550.0,
            "a_idx": 253,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 276,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 285,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.872,
            "ratio_score": 1.0,
            "prz_score": 0.864,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60058.69,
            "prz_range": [
              59773.62,
              60343.77
            ],
            "prz_width_pct": 0.949,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.0,
            "price_to_prz_pct_raw": -0.9955,
            "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": 60058.69,
              "a_price": 61500.0,
              "tp1_ad_382": 60609.27,
              "tp2_ad_618": 60949.42,
              "tp3_a_or_structure_liquidity": 61500.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.487,
              "ABC": 0.6088
            },
            "x_price": 59739.1,
            "x_idx": 252,
            "x_order": 8,
            "a_price": 61500.0,
            "a_idx": 285,
            "a_order": 3,
            "b_price": 60642.4,
            "b_idx": 293,
            "b_order": 3,
            "c_price": 61164.5,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.859,
            "ratio_score": 0.974,
            "prz_score": 0.864,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 60058.69,
            "prz_range": [
              59773.62,
              60343.77
            ],
            "prz_width_pct": 0.949,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.0,
            "price_to_prz_pct_raw": -0.9955,
            "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": 60058.69,
              "a_price": 61942.4,
              "tp1_ad_382": 60778.27,
              "tp2_ad_618": 61222.82,
              "tp3_a_or_structure_liquidity": 61942.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.7915,
              "ABC": 0.4016
            },
            "x_price": 60300.0,
            "x_idx": 245,
            "x_order": 3,
            "a_price": 61942.4,
            "a_idx": 279,
            "a_order": 5,
            "b_price": 60642.4,
            "b_idx": 293,
            "b_order": 3,
            "c_price": 61164.5,
            "c_idx": 295,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.834,
            "ratio_score": 0.829,
            "prz_score": 0.893,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60458.0,
            "prz_range": [
              60433.72,
              60965.28
            ],
            "prz_width_pct": 0.876,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.06,
            "price_to_prz_pct_raw": 0.0608,
            "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.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 0.95,
              "reaction_detail": {
                "reaction_score": 0.95,
                "reaction_move_ratio_ad": 0.266,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.236_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "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": "crab",
              "d_price": 60699.5,
              "a_price": 64380.0,
              "tp1_ad_382": 62105.45,
              "tp2_ad_618": 62974.05,
              "tp3_a_or_structure_liquidity": 64380.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6141,
              "ABC": 0.5121,
              "BCD": 2.6419,
              "XAD": 1.7594
            },
            "x_price": 62150.8,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 64380.0,
            "a_idx": 153,
            "a_order": 3,
            "b_price": 63011.0,
            "b_idx": 192,
            "b_order": 3,
            "c_price": 62310.0,
            "c_idx": 242,
            "c_order": 3,
            "d_idx": 282
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "medium",
            "pattern_score": 0.824,
            "ratio_score": 0.803,
            "prz_score": 0.9,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60642.4,
            "prz_range": [
              60467.81,
              60988.9
            ],
            "prz_width_pct": 0.858,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.11,
            "price_to_prz_pct_raw": 0.1084,
            "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": 0.389,
                "adverse_move_ratio_ad": 0.114,
                "bars_after_d": 6,
                "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": "bat",
              "d_price": 60728.35,
              "a_price": 61985.1,
              "tp1_ad_382": 61208.43,
              "tp2_ad_618": 61505.02,
              "tp3_a_or_structure_liquidity": 61985.1,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4842,
              "ABC": 0.4055,
              "BCD": 2.5917,
              "XAD": 0.7968
            },
            "x_price": 60300.0,
            "x_idx": 245,
            "x_order": 3,
            "a_price": 61985.1,
            "a_idx": 272,
            "a_order": 8,
            "b_price": 61169.1,
            "b_idx": 276,
            "b_order": 3,
            "c_price": 61500.0,
            "c_idx": 285,
            "c_order": 3,
            "d_idx": 293
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.866,
            "ratio_score": 1.0,
            "prz_score": 0.768,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 61080.93,
            "prz_range": [
              60715.33,
              61446.53
            ],
            "prz_width_pct": 1.197,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.69,
            "price_to_prz_pct_raw": 0.6896,
            "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": "crab",
              "d_price": 61080.93,
              "a_price": 63898.9,
              "tp1_ad_382": 62157.39,
              "tp2_ad_618": 62822.44,
              "tp3_a_or_structure_liquidity": 63898.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5079,
              "ABC": 0.7895
            },
            "x_price": 62150.8,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 63898.9,
            "a_idx": 159,
            "a_order": 3,
            "b_price": 63011.0,
            "b_idx": 192,
            "b_order": 3,
            "c_price": 62310.0,
            "c_idx": 242,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.853,
            "ratio_score": 0.998,
            "prz_score": 0.783,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": false,
            "d_price": 61067.6,
            "prz_range": [
              60883.1,
              61094.87
            ],
            "prz_width_pct": 0.347,
            "prz_confluence_count": 2,
            "prz_fib_families": [
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.54,
            "price_to_prz_pct_raw": 0.538,
            "harmonic_vote_state": {
              "authority": "post_confirmation_vote_eligible",
              "directional_vote_weight": 0.58,
              "confirmed_reaction": true,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 0.764,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.382_reaction_reached",
                  "PRZ_center_reclaimed_or_rejected",
                  "D_PRZ_failure_zone_defended",
                  "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": "crab",
              "d_price": 60988.98,
              "a_price": 63898.9,
              "tp1_ad_382": 62100.57,
              "tp2_ad_618": 62787.31,
              "tp3_a_or_structure_liquidity": 63898.9,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5657,
              "ABC": 0.7735,
              "BCD": 3.4087,
              "XAD": 1.6196
            },
            "x_price": 62150.8,
            "x_idx": 138,
            "x_order": 8,
            "a_price": 63898.9,
            "a_idx": 159,
            "a_order": 3,
            "b_price": 62910.0,
            "b_idx": 163,
            "b_order": 8,
            "c_price": 63674.9,
            "c_idx": 208,
            "c_order": 8,
            "d_idx": 213
          },
          {
            "pattern": "butterfly",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.832,
            "ratio_score": 0.956,
            "prz_score": 0.734,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": false,
            "d_price": 60458.0,
            "prz_range": [
              60370.37,
              61150.58
            ],
            "prz_width_pct": 1.284,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.16,
            "price_to_prz_pct_raw": 0.1613,
            "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.236_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "post_D_close_progress"
              ],
              "reaction_score": 0.75,
              "reaction_detail": {
                "reaction_score": 0.75,
                "reaction_move_ratio_ad": 0.376,
                "adverse_move_ratio_ad": 0.0,
                "bars_after_d": 12,
                "reasons": [
                  "AD0.236_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": "butterfly",
              "d_price": 60760.47,
              "a_price": 63231.8,
              "tp1_ad_382": 61704.52,
              "tp2_ad_618": 62287.75,
              "tp3_a_or_structure_liquidity": 63231.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.764,
              "ABC": 0.4425,
              "BCD": 2.5314,
              "XAD": 1.2817
            },
            "x_price": 61067.6,
            "x_idx": 213,
            "x_order": 8,
            "a_price": 63231.8,
            "a_idx": 225,
            "a_order": 8,
            "b_price": 61578.4,
            "b_idx": 238,
            "b_order": 3,
            "c_price": 62310.0,
            "c_idx": 242,
            "c_order": 3,
            "d_idx": 282
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.959,
            "prz_proximity": "active",
            "prz_range": [
              60715.42,
              60965.34
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": 0.29,
            "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": "crab",
              "d_price": 60840.38,
              "a_price": 64380.0,
              "tp1_ad_382": 62192.51,
              "tp2_ad_618": 63027.87,
              "tp3_a_or_structure_liquidity": 64380.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "CRAB FORMING HIGH PRZ $60,715.42-$60,965.34: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.895,
            "prz_proximity": "nearby",
            "prz_range": [
              59997.31,
              60390.23
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.77,
            "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": 60193.77,
              "a_price": 61550.0,
              "tp1_ad_382": 60711.85,
              "tp2_ad_618": 61031.92,
              "tp3_a_or_structure_liquidity": 61550.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $59,997.31-$60,390.23: expected reversal UP if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "crab",
          "signal": "bullish",
          "completion_status": "forming",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.959,
          "ratio_score": 1.0,
          "prz_score": 1.0,
          "prz_proximity": "active",
          "action_status": "active",
          "high_confluence_prz": true,
          "d_price": 60840.38,
          "prz_range": [
            60715.42,
            60965.34
          ],
          "prz_width_pct": 0.411,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": 0.29,
          "price_to_prz_pct_raw": 0.2931,
          "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": "crab",
            "d_price": 60840.38,
            "a_price": 64380.0,
            "tp1_ad_382": 62192.51,
            "tp2_ad_618": 63027.87,
            "tp3_a_or_structure_liquidity": 64380.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.6141,
            "ABC": 0.5121
          },
          "x_price": 62150.8,
          "x_idx": 138,
          "x_order": 8,
          "a_price": 64380.0,
          "a_idx": 153,
          "a_order": 3,
          "b_price": 63011.0,
          "b_idx": 192,
          "b_order": 3,
          "c_price": 62310.0,
          "c_idx": 242,
          "c_order": 3,
          "d_idx": null
        },
        "best_tp_ladder": {
          "direction": "bullish",
          "source": "crab",
          "d_price": 60840.38,
          "a_price": 64380.0,
          "tp1_ad_382": 62192.51,
          "tp2_ad_618": 63027.87,
          "tp3_a_or_structure_liquidity": 64380.0,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bullish",
            "source": "crab",
            "d_price": 60840.38,
            "a_price": 64380.0,
            "tp1_ad_382": 62192.51,
            "tp2_ad_618": 63027.87,
            "tp3_a_or_structure_liquidity": 64380.0,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 60193.77,
            "a_price": 61550.0,
            "tp1_ad_382": 60711.85,
            "tp2_ad_618": 61031.92,
            "tp3_a_or_structure_liquidity": 61550.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.336,
          "bearish": 0
        },
        "directional_score_total": 0.336,
        "directional_dominance": 1.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.46,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.62,\n  \"setup_signals\": [\n    \"현재가 $60,662.60이 확인 반응이 나온 bullish Crab 완료 PRZ $60,433.72-$60,965.28 내부에 위치\",\n    \"완료 Crab 후보는 PRZ 진입/방어 후 AD 0.236 반응 도달, PRZ 중심 재탈환/방어, D 실패구간 방어로 reaction_score 0.95\",\n    \"엄격·고품질 forming bullish Crab PRZ $60,715.42-$60,965.34가 바로 위에 활성화되어 있으며 XAD·BC_EXT·ABCD 3개 Fib family confluence\",\n    \"추가 하단 bullish Gartley strict/high PRZ $59,997.31-$60,390.23가 대기 중이며 D 예상가 $60,193.77\",\n    \"가격은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 있어 구조 전환 전에는 반등 후보일 뿐 추세 반전 확정은 아님\"\n  ],\n  \"reasoning\": \"하모닉 관점에서는 bullish 쪽 PRZ 밀집도가 뚜렷하며, 특히 완료된 Crab 후보가 $60,433.72-$60,965.28 PRZ에서 reaction_score 0.95로 방어 반응을 확인했습니다. 다만 베스트 패턴인 strict/high forming Crab은 $60,715.42-$60,965.34 PRZ의 사전확인 반전 후보 상태이며 directional_vote_weight가 0.35에 불과해 단독으로 메인 경로를 뒤집을 수 없습니다. 구조적으로는 현재가 $60,662.60이 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 있고 24h -3.25%라 확인된 상승 구조보다는 약세 구조 압력이 우세합니다. 따라서 결론은 ‘구조는 약세, 셋업은 PRZ 방어 기반의 단기 bullish 반응 후보’이며, $60,965 상단 회복 후 $61,031-$61,550을 돌파해야 반등 신뢰도가 올라갑니다.\",\n  \"key_levels\": {\n    \"support\": [\n      60433.72,\n      60390.23,\n      59997.31,\n      59080.0\n    ],\n    \"resistance\": [\n      60965.34,\n      61031.92,\n      61550.0,\n      62192.51,\n      63027.87,\n      64380.0\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"15분 종가 기준 $59,997.31 하회\",\n  \"risk_scenario\": \"$60,433.72-$60,390.23 방어가 실패하고 $59,997.31 아래로 수용되면 bullish Crab/Gartley PRZ 클러스터가 무효화되며, 7일 저점 $59,080.00 재테스트 또는 하방 유동성 확장으로 전개될 수 있습니다. 반대로 $60,965.34를 회복하고 $61,031.92-$61,550.00 위에서 유지되면 Crab/Gartley TP 래더가 활성화되어 $62,192.51, $63,027.87, 최종 $64,380.00까지 반등 경로를 열 수 있습니다.\",\n  \"data_quality\": \"high\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bearish",
    "overall_confidence": 0.72,
    "execution_setup": {
      "setup_bias": "bearish",
      "setup_strength": 0.68,
      "active_setups": [
        "ICT: 가격 $60,662.60이 마지막 bearish BOS 레벨 $61,067.60 아래에서 수용 중이며, 5회 연속 bearish BOS 구조가 유지됨",
        "ICT: 현재가가 단기 EQ $60,532.55 위 premium 구간에 있어 반등 매도 조건이 우세함",
        "Derivatives: 24시간 가격 -3.25% 하락 중 OI +1.64% 증가, CVD -14,138.2740으로 하락 방향 신규 포지션 유입 가능성",
        "Wyckoff: 현재가가 메인 레인지 저점 $61,344.80 및 SOS $61,500.00 아래에 있어 Phase D 수용이 미확정",
        "Fibonacci: $60,458.00 ext_1.0 지지 테스트 구간이나, $60,808.32-$61,375.36 되돌림 저항대가 촘촘함",
        "Harmonic: bullish Crab PRZ $60,433.72-$60,965.28 내부에 있으나 단독 구조 전환 권한은 낮음"
      ],
      "setup_vs_structure": "구조적 판정과 실행 셋업은 모두 약세 쪽으로 정렬되어 있다. 다만 $60,458-$60,965 구간에는 Wyckoff 터미널 스프링, 피보나치 지지, 하모닉 PRZ가 겹쳐 있어 즉시 약세 구조 내부의 반등·방어 리스크는 별도로 관리해야 한다."
    },
    "signal_breakdown": {
      "bullish_count": 1,
      "bearish_count": 5,
      "neutral_count": 0
    },
    "key_levels": {
      "support": [
        60458.0,
        60300.0,
        60054.24,
        59843.46,
        59600.0,
        59080.0,
        58400.0
      ],
      "resistance": [
        60808.32,
        60947.34,
        61067.6,
        61344.8,
        61500.0,
        61786.58,
        62150.8,
        62848.5
      ]
    },
    "confluences": [
      "현재가 $60,662.60은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 있으며, Derivatives·Candlestick·ICT·Fibonacci·Harmonic 모두 이를 구조적 약세 근거로 인식한다.",
      "ICT의 마지막 bearish BOS 레벨 $61,067.60과 Fibonacci ret_0.382 $61,025.04, Harmonic 저항 $61,031.92가 $61,025-$61,068 부근에 밀집해 단기 구조 저항으로 겹친다.",
      "Wyckoff의 터미널 스프링 $60,458.00, ICT 런던 저점 $60,458.00, Fibonacci ext_1.0 $60,458.00이 동일 가격에 수렴한다.",
      "Derivatives와 ICT가 모두 $60,300.00을 핵심 하방 유동성·전일 저점 관련 레벨로 제시한다.",
      "Derivatives·Candlestick·ICT·Fibonacci가 모두 $59,080.00을 주요 하단 구조 기준 또는 레인지 저점으로 제시한다.",
      "Wyckoff SOS $61,500.00, Derivatives 저항 $61,500.00, Harmonic 구조 저항 $61,550.00이 $61,500-$61,550 회복 여부를 핵심 구조 조건으로 만든다."
    ],
    "conflicts": [
      "Wyckoff는 고적합도의 accumulation Phase D 후보를 제시해 구조 해석상 bullish 가능성을 열어두지만, 가격이 메인 레인지 저점 $61,344.80 및 SOS $61,500.00 아래에 있어 해당 누적 구조의 수용은 아직 확인되지 않았다.",
      "Candlestick·Fibonacci·Harmonic은 $60,458-$60,965 구간에서 hammer, fib reaction, bullish Crab PRZ 등 단기 반등 후보를 제시하지만, 이들은 대부분 후보·반응 구간 성격이며 ICT의 5연속 bearish BOS와 EMA 하방 구조를 뒤집지는 못한다.",
      "Harmonic은 bullish 신호를 내지만 자체 거버넌스상 PRZ 반응 및 TP 사다리 보조 역할이며, 독립적으로 메인 구조를 bullish로 전환할 수 없다고 명시되어 있다.",
      "Derivatives는 롱 계정 비율 0.658 및 롱 crowded 상태를 약세 리스크로 해석하는 반면, funding은 거의 중립이어서 과도한 숏 과열에 따른 반대 방향 강제 청산 구조는 아직 뚜렷하지 않다."
    ],
    "executive_summary": "현재 BTC 15분 구조는 다수 전문가 기준으로 bearish이며, 가격은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에서 거래되고 있다. Wyckoff상으로는 SC→AR→ST→Spring→Terminal Spring→SOS의 accumulation Phase D 후보가 존재하지만, 현재가는 메인 레인지 저점 $61,344.80과 SOS $61,500.00 아래에 있어 누적 수용이 확인되지 않은 ‘압박받는 Phase D 후보’ 상태다. 핵심 구조 충돌 구간은 $60,458.00으로, Wyckoff 터미널 스프링·ICT 런던 저점·Fibonacci ext_1.0이 모두 겹치는 방어 기준이다. 반대로 $61,025-$61,068, $61,344-$61,500, $61,786-$62,150 구간은 약세 구조가 해소되기 위해 순차적으로 회복해야 하는 저항 밀집대다. 구조적 약세 판정의 주요 무효화 조건은 $62,150.80 상회 후 수용이다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bearish\",\n  \"overall_confidence\": 0.72,\n  \"execution_setup\": {\n    \"setup_bias\": \"bearish\",\n    \"setup_strength\": 0.68,\n    \"active_setups\": [\n      \"ICT: 가격 $60,662.60이 마지막 bearish BOS 레벨 $61,067.60 아래에서 수용 중이며, 5회 연속 bearish BOS 구조가 유지됨\",\n      \"ICT: 현재가가 단기 EQ $60,532.55 위 premium 구간에 있어 반등 매도 조건이 우세함\",\n      \"Derivatives: 24시간 가격 -3.25% 하락 중 OI +1.64% 증가, CVD -14,138.2740으로 하락 방향 신규 포지션 유입 가능성\",\n      \"Wyckoff: 현재가가 메인 레인지 저점 $61,344.80 및 SOS $61,500.00 아래에 있어 Phase D 수용이 미확정\",\n      \"Fibonacci: $60,458.00 ext_1.0 지지 테스트 구간이나, $60,808.32-$61,375.36 되돌림 저항대가 촘촘함\",\n      \"Harmonic: bullish Crab PRZ $60,433.72-$60,965.28 내부에 있으나 단독 구조 전환 권한은 낮음\"\n    ],\n    \"setup_vs_structure\": \"구조적 판정과 실행 셋업은 모두 약세 쪽으로 정렬되어 있다. 다만 $60,458-$60,965 구간에는 Wyckoff 터미널 스프링, 피보나치 지지, 하모닉 PRZ가 겹쳐 있어 즉시 약세 구조 내부의 반등·방어 리스크는 별도로 관리해야 한다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 1,\n    \"bearish_count\": 5,\n    \"neutral_count\": 0\n  },\n  \"key_levels\": {\n    \"support\": [\n      60458.0,\n      60300.0,\n      60054.24,\n      59843.46,\n      59600.0,\n      59080.0,\n      58400.0\n    ],\n    \"resistance\": [\n      60808.32,\n      60947.34,\n      61067.6,\n      61344.8,\n      61500.0,\n      61786.58,\n      62150.8,\n      62848.5\n    ]\n  },\n  \"confluences\": [\n    \"현재가 $60,662.60은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에 있으며, Derivatives·Candlestick·ICT·Fibonacci·Harmonic 모두 이를 구조적 약세 근거로 인식한다.\",\n    \"ICT의 마지막 bearish BOS 레벨 $61,067.60과 Fibonacci ret_0.382 $61,025.04, Harmonic 저항 $61,031.92가 $61,025-$61,068 부근에 밀집해 단기 구조 저항으로 겹친다.\",\n    \"Wyckoff의 터미널 스프링 $60,458.00, ICT 런던 저점 $60,458.00, Fibonacci ext_1.0 $60,458.00이 동일 가격에 수렴한다.\",\n    \"Derivatives와 ICT가 모두 $60,300.00을 핵심 하방 유동성·전일 저점 관련 레벨로 제시한다.\",\n    \"Derivatives·Candlestick·ICT·Fibonacci가 모두 $59,080.00을 주요 하단 구조 기준 또는 레인지 저점으로 제시한다.\",\n    \"Wyckoff SOS $61,500.00, Derivatives 저항 $61,500.00, Harmonic 구조 저항 $61,550.00이 $61,500-$61,550 회복 여부를 핵심 구조 조건으로 만든다.\"\n  ],\n  \"conflicts\": [\n    \"Wyckoff는 고적합도의 accumulation Phase D 후보를 제시해 구조 해석상 bullish 가능성을 열어두지만, 가격이 메인 레인지 저점 $61,344.80 및 SOS $61,500.00 아래에 있어 해당 누적 구조의 수용은 아직 확인되지 않았다.\",\n    \"Candlestick·Fibonacci·Harmonic은 $60,458-$60,965 구간에서 hammer, fib reaction, bullish Crab PRZ 등 단기 반등 후보를 제시하지만, 이들은 대부분 후보·반응 구간 성격이며 ICT의 5연속 bearish BOS와 EMA 하방 구조를 뒤집지는 못한다.\",\n    \"Harmonic은 bullish 신호를 내지만 자체 거버넌스상 PRZ 반응 및 TP 사다리 보조 역할이며, 독립적으로 메인 구조를 bullish로 전환할 수 없다고 명시되어 있다.\",\n    \"Derivatives는 롱 계정 비율 0.658 및 롱 crowded 상태를 약세 리스크로 해석하는 반면, funding은 거의 중립이어서 과도한 숏 과열에 따른 반대 방향 강제 청산 구조는 아직 뚜렷하지 않다.\"\n  ],\n  \"highest_conviction_analyst\": \"ICT Trader — 신뢰도 87%로 가장 높고, 5회 연속 bearish BOS, 마지막 구조 이탈 레벨 $61,067.60 하방 수용, 전일 저점 $60,300.00 이탈, premium 구간 판정 등 구조·셋업·레벨 정밀도가 모두 가장 강하다.\",\n  \"invalidation_level\": \"15분봉 기준 $62,150.80 상회 후 수용. 특히 $61,500.00 SOS와 $61,786.58 EMA120을 회복한 뒤 $62,150.80 위에서 유지되면 현재 약세 구조 판정은 훼손된다.\",\n  \"executive_summary\": \"현재 BTC 15분 구조는 다수 전문가 기준으로 bearish이며, 가격은 EMA20 $60,947.34, EMA120 $61,786.58, EMA240 $62,848.50 아래에서 거래되고 있다. Wyckoff상으로는 SC→AR→ST→Spring→Terminal Spring→SOS의 accumulation Phase D 후보가 존재하지만, 현재가는 메인 레인지 저점 $61,344.80과 SOS $61,500.00 아래에 있어 누적 수용이 확인되지 않은 ‘압박받는 Phase D 후보’ 상태다. 핵심 구조 충돌 구간은 $60,458.00으로, Wyckoff 터미널 스프링·ICT 런던 저점·Fibonacci ext_1.0이 모두 겹치는 방어 기준이다. 반대로 $61,025-$61,068, $61,344-$61,500, $61,786-$62,150 구간은 약세 구조가 해소되기 위해 순차적으로 회복해야 하는 저항 밀집대다. 구조적 약세 판정의 주요 무효화 조건은 $62,150.80 상회 후 수용이다.\"\n}"
  },
  "overall_signal": "bearish",
  "overall_confidence": 0.72,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.63,
    "waypoints": [
      {
        "seq": 1,
        "price": 60966.34,
        "type": "resistance_test",
        "source": "Fibonacci(strict fib_confluence $60,966.34, ret_0.236 $60,808.32), Derivatives(EMA20 $60,947.34), Harmonic(Crab PRZ 상단 $60,965.28/$60,965.34 확인 반응), ICT(EQ $60,532.55 위 premium 숏 재진입)",
        "description": "WP1 후보표 최상위(strict·score 0.85·0.5%)인 $60,966.34에서 EMA20 $60,947.34와 하모닉 Crab PRZ 상단이 겹치는 저항 클러스터로의 단기 되돌림. 캔들 hammer@298·bullish_harami, fib_reaction testing(반응확률 0.65), 하모닉 PRZ 확인 반응이 짧은 반등을 지지하지만, 이 구간은 ICT premium 숏 재진입 지점이자 코어 구조가 약세이므로 반등의 끝(숏 엔트리/롱 TP) 역할. 여기서 공급 재개 예상.",
        "est_hours": 2.5,
        "turning_zone": [
          60966.34,
          61067.6
        ],
        "likely_wick": 61010.0,
        "rejection_confirm": 60808.32,
        "invalid_overshoot": 61200.2,
        "calibration_reasoning": "EMA20 $60,947·fib 컨플루언스 $60,966·fib 저항 $61,025·Chairman 저항 $61,067로 이어지는 저항 클러스터를 zone(폭 ≈0.30 ATR)으로 사용했다. likely_wick는 라운드넘버 $61,000 자석과 fib 저항 $61,025 사이($61,010)로 잡았고, crab PRZ($60,840)는 pre-confirmation이라 보조 참고만 했다. $61,200.20(fib 저항, +0.69 ATR) 돌파 시 저항 무효."
      },
      {
        "seq": 2,
        "price": 60458.0,
        "type": "support_test",
        "source": "Wyckoff(터미널 스프링 $60,458.00), ICT(런던 저점 $60,458.00), Fibonacci(ext_1.0 $60,458.00)",
        "description": "Wyckoff 터미널 스프링·ICT 런던 저점·Fibonacci ext_1.0이 동일가에 수렴하는 최핵심 방어 지지이자 1차 하방 목표. 3중 컨플루언스+캔들 hammer 잔존으로 일시 지지/되돌림 시도가 나오는 구간이나, 셋업·구조 모두 약세이므로 방어 실패 시 가속 트리거가 되는 분기점.",
        "est_hours": 6.0,
        "turning_zone": [
          60355.0,
          60458.0
        ],
        "likely_wick": 60400.0,
        "rejection_confirm": 60600.0,
        "invalid_overshoot": 60300.0,
        "calibration_reasoning": "Wyckoff 터미널 스프링·ICT 런던 저점·fib ext_1.0·Chairman가 동일가에 수렴하는 $60,458 3중 지지에서의 얕은 되돌림. zone 하단은 WP3($60,300)와 구분하려 $60,355까지만 내렸고(≈0.30 ATR), likely_wick는 마이너 라운드 $60,400. $60,300(Chairman/WP3) 결정적 이탈 시 지지 실패로 무효."
      },
      {
        "seq": 3,
        "price": 60300.0,
        "type": "liquidity_sweep",
        "source": "ICT(전일 저점/sell-side liquidity $60,300.00), Derivatives(핵심 하방 유동성 $60,300.00, OI +1.64%·CVD -14,138)",
        "description": "$60,458 이탈 시 ICT·Derivatives가 공통 제시한 전일 저점/sell-side 유동성 $60,300.00 스윕. 가격 하락 중 OI 증가·CVD 음전환이 매도 주도 신규 포지션의 하방 유동성 확보를 뒷받침. 터미널 스프링 붕괴를 확정하는 구간.",
        "est_hours": 11.0,
        "turning_zone": [
          60180.0,
          60300.0
        ],
        "likely_wick": 60200.0,
        "rejection_confirm": 60400.0,
        "invalid_overshoot": 60054.24,
        "calibration_reasoning": "sell-side 유동성 스윕은 정의상 레벨 아래로 윅을 형성하므로 zone을 $60,300 하방으로 확장(≈0.35 ATR). Gartley PRZ $60,194(pre-confirmation 조건부 반응대)와 라운드 $60,200을 하단·likely_wick 앵커로 사용. 스윕 후 $60,400 회복은 반등 확정, $60,054 fib 이탈 시 반등 무효·WP4로 가속."
      },
      {
        "seq": 4,
        "price": 59080.0,
        "type": "swing_low",
        "source": "Derivatives·Candlestick·ICT·Fibonacci 공통 메인 레인지 저점 $59,080.00",
        "description": "4개 전문가가 공통 제시한 메인 레인지 저점이자 ICT·Derivatives의 핵심 sell-side 목표. $60,300 유동성 스윕 후 중간 fib 레벨($60,054/$59,843/$59,600)은 약한 경유점으로 보고, 24시간 주요 하방 목표를 $59,080으로 설정. 경로 중 확신도가 가장 낮은(깊이) 구간.",
        "est_hours": 21.0,
        "turning_zone": [
          58860.0,
          59080.0
        ],
        "likely_wick": 59000.0,
        "rejection_confirm": 59600.0,
        "invalid_overshoot": 58400.0,
        "calibration_reasoning": "경로 종점이라 zone 폭을 ≈0.65 ATR로 넓혔다. fib ext 컨플루언스 $59,027(ext_2.0·ext_1.0)과 메이저 라운드 $59,000을 likely_wick·하단 앵커로 사용. 반등 확정은 Chairman 레벨 $59,600 회복으로 보고, 다음 Chairman 지지인 $58,400 이탈 시 $59,080 스윙로우 자체가 무효."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 60966.34,
        "expected_low": 60500.0,
        "high_first": true
      },
      "8h": {
        "expected_high": 60966.34,
        "expected_low": 60400.0,
        "high_first": true
      },
      "24h": {
        "expected_high": 60966.34,
        "expected_low": 59080.0,
        "high_first": true
      }
    },
    "triggers": {
      "bullish": {
        "price": 61067.6,
        "description": "ICT 마지막 bearish BOS 레벨 $61,067.60 회복·수용 시 5연속 약세 구조에 첫 균열. premium 숏 셋업이 약화되고 $61,344.80~$61,500.00 상단 저항 테스트로 전환 가능 — 약세 경로 경계 신호."
      },
      "bearish": {
        "price": 60458.0,
        "description": "3중 컨플루언스 터미널 스프링 $60,458.00 하향 이탈·수용 시 약세 가속 확정. $60,300 유동성 스윕을 거쳐 $59,080 레인지 저점으로 직행하는 흐름 활성화."
      }
    },
    "scenario_invalidation": 61500.0,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.63,\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 60966.34,\n      \"type\": \"resistance_test\",\n      \"source\": \"Fibonacci(strict fib_confluence $60,966.34, ret_0.236 $60,808.32), Derivatives(EMA20 $60,947.34), Harmonic(Crab PRZ 상단 $60,965.28/$60,965.34 확인 반응), ICT(EQ $60,532.55 위 premium 숏 재진입)\",\n      \"description\": \"WP1 후보표 최상위(strict·score 0.85·0.5%)인 $60,966.34에서 EMA20 $60,947.34와 하모닉 Crab PRZ 상단이 겹치는 저항 클러스터로의 단기 되돌림. 캔들 hammer@298·bullish_harami, fib_reaction testing(반응확률 0.65), 하모닉 PRZ 확인 반응이 짧은 반등을 지지하지만, 이 구간은 ICT premium 숏 재진입 지점이자 코어 구조가 약세이므로 반등의 끝(숏 엔트리/롱 TP) 역할. 여기서 공급 재개 예상.\",\n      \"est_hours\": 2.5\n    },\n    {\n      \"seq\": 2,\n      \"price\": 60458.0,\n      \"type\": \"support_test\",\n      \"source\": \"Wyckoff(터미널 스프링 $60,458.00), ICT(런던 저점 $60,458.00), Fibonacci(ext_1.0 $60,458.00)\",\n      \"description\": \"Wyckoff 터미널 스프링·ICT 런던 저점·Fibonacci ext_1.0이 동일가에 수렴하는 최핵심 방어 지지이자 1차 하방 목표. 3중 컨플루언스+캔들 hammer 잔존으로 일시 지지/되돌림 시도가 나오는 구간이나, 셋업·구조 모두 약세이므로 방어 실패 시 가속 트리거가 되는 분기점.\",\n      \"est_hours\": 6.0\n    },\n    {\n      \"seq\": 3,\n      \"price\": 60300.0,\n      \"type\": \"liquidity_sweep\",\n      \"source\": \"ICT(전일 저점/sell-side liquidity $60,300.00), Derivatives(핵심 하방 유동성 $60,300.00, OI +1.64%·CVD -14,138)\",\n      \"description\": \"$60,458 이탈 시 ICT·Derivatives가 공통 제시한 전일 저점/sell-side 유동성 $60,300.00 스윕. 가격 하락 중 OI 증가·CVD 음전환이 매도 주도 신규 포지션의 하방 유동성 확보를 뒷받침. 터미널 스프링 붕괴를 확정하는 구간.\",\n      \"est_hours\": 11.0\n    },\n    {\n      \"seq\": 4,\n      \"price\": 59080.0,\n      \"type\": \"swing_low\",\n      \"source\": \"Derivatives·Candlestick·ICT·Fibonacci 공통 메인 레인지 저점 $59,080.00\",\n      \"description\": \"4개 전문가가 공통 제시한 메인 레인지 저점이자 ICT·Derivatives의 핵심 sell-side 목표. $60,300 유동성 스윕 후 중간 fib 레벨($60,054/$59,843/$59,600)은 약한 경유점으로 보고, 24시간 주요 하방 목표를 $59,080으로 설정. 경로 중 확신도가 가장 낮은(깊이) 구간.\",\n      \"est_hours\": 21.0\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 60966.34, \"expected_low\": 60500.0, \"high_first\": true},\n    \"8h\":  {\"expected_high\": 60966.34, \"expected_low\": 60400.0, \"high_first\": true},\n    \"24h\": {\"expected_high\": 60966.34, \"expected_low\": 59080.0, \"high_first\": true}\n  },\n  \"triggers\": {\n    \"bullish\": {\"price\": 61067.6, \"description\": \"ICT 마지막 bearish BOS 레벨 $61,067.60 회복·수용 시 5연속 약세 구조에 첫 균열. premium 숏 셋업이 약화되고 $61,344.80~$61,500.00 상단 저항 테스트로 전환 가능 — 약세 경로 경계 신호.\"},\n    \"bearish\": {\"price\": 60458.0, \"description\": \"3중 컨플루언스 터미널 스프링 $60,458.00 하향 이탈·수용 시 약세 가속 확정. $60,300 유동성 스윕을 거쳐 $59,080 레인지 저점으로 직행하는 흐름 활성화.\"}\n  },\n  \"scenario_invalidation\": 61500.0\n}\n```\n\n**핵심 판단 요약:** 구조(BEARISH 72%)와 셋업(BEARISH 68%)이 동일 방향으로 정렬되어 경로의 본류는 하방. 다만 WP1 후보표 최상위가 현재가 위 strict $60,966.34(EMA20·하모닉 PRZ 상단 동조)이고, 캔들 hammer·fib testing·하모닉 확인 반응이 단기 되돌림을 지지하므로 **\"premium 저항 재테스트(↑) → 거부 → 약세 연속(↓)\"** 순서로 배열했습니다. $60,458 3중 컨플루언스가 최대 방어/가속 분기점이며, 이탈 시 $60,300 유동성 스윕을 거쳐 $59,080까지 확장합니다. 하모닉 단독으로 WP1을 뒤집지 않도록 코어 약세 구조에 종속시켰습니다."
  },
  "tp_calibration": {
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 60966.34,
        "turning_zone": [
          60966.34,
          61067.6
        ],
        "likely_wick": 61010.0,
        "rejection_confirm": 60808.32,
        "invalid_overshoot": 61200.2,
        "calibration_reasoning": "EMA20 $60,947·fib 컨플루언스 $60,966·fib 저항 $61,025·Chairman 저항 $61,067로 이어지는 저항 클러스터를 zone(폭 ≈0.30 ATR)으로 사용했다. likely_wick는 라운드넘버 $61,000 자석과 fib 저항 $61,025 사이($61,010)로 잡았고, crab PRZ($60,840)는 pre-confirmation이라 보조 참고만 했다. $61,200.20(fib 저항, +0.69 ATR) 돌파 시 저항 무효."
      },
      {
        "seq": 2,
        "base_target": 60458.0,
        "turning_zone": [
          60355.0,
          60458.0
        ],
        "likely_wick": 60400.0,
        "rejection_confirm": 60600.0,
        "invalid_overshoot": 60300.0,
        "calibration_reasoning": "Wyckoff 터미널 스프링·ICT 런던 저점·fib ext_1.0·Chairman가 동일가에 수렴하는 $60,458 3중 지지에서의 얕은 되돌림. zone 하단은 WP3($60,300)와 구분하려 $60,355까지만 내렸고(≈0.30 ATR), likely_wick는 마이너 라운드 $60,400. $60,300(Chairman/WP3) 결정적 이탈 시 지지 실패로 무효."
      },
      {
        "seq": 3,
        "base_target": 60300.0,
        "turning_zone": [
          60180.0,
          60300.0
        ],
        "likely_wick": 60200.0,
        "rejection_confirm": 60400.0,
        "invalid_overshoot": 60054.24,
        "calibration_reasoning": "sell-side 유동성 스윕은 정의상 레벨 아래로 윅을 형성하므로 zone을 $60,300 하방으로 확장(≈0.35 ATR). Gartley PRZ $60,194(pre-confirmation 조건부 반응대)와 라운드 $60,200을 하단·likely_wick 앵커로 사용. 스윕 후 $60,400 회복은 반등 확정, $60,054 fib 이탈 시 반등 무효·WP4로 가속."
      },
      {
        "seq": 4,
        "base_target": 59080.0,
        "turning_zone": [
          58860.0,
          59080.0
        ],
        "likely_wick": 59000.0,
        "rejection_confirm": 59600.0,
        "invalid_overshoot": 58400.0,
        "calibration_reasoning": "경로 종점이라 zone 폭을 ≈0.65 ATR로 넓혔다. fib ext 컨플루언스 $59,027(ext_2.0·ext_1.0)과 메이저 라운드 $59,000을 likely_wick·하단 앵커로 사용. 반등 확정은 Chairman 레벨 $59,600 회복으로 보고, 다음 Chairman 지지인 $58,400 이탈 시 $59,080 스윙로우 자체가 무효."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 60966.34,\n      \"turning_zone\": [60966.34, 61067.60],\n      \"likely_wick\": 61010.00,\n      \"rejection_confirm\": 60808.32,\n      \"invalid_overshoot\": 61200.20,\n      \"calibration_reasoning\": \"EMA20 $60,947·fib 컨플루언스 $60,966·fib 저항 $61,025·Chairman 저항 $61,067로 이어지는 저항 클러스터를 zone(폭 ≈0.30 ATR)으로 사용했다. likely_wick는 라운드넘버 $61,000 자석과 fib 저항 $61,025 사이($61,010)로 잡았고, crab PRZ($60,840)는 pre-confirmation이라 보조 참고만 했다. $61,200.20(fib 저항, +0.69 ATR) 돌파 시 저항 무효.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 60458.00,\n      \"turning_zone\": [60355.00, 60458.00],\n      \"likely_wick\": 60400.00,\n      \"rejection_confirm\": 60600.00,\n      \"invalid_overshoot\": 60300.00,\n      \"calibration_reasoning\": \"Wyckoff 터미널 스프링·ICT 런던 저점·fib ext_1.0·Chairman가 동일가에 수렴하는 $60,458 3중 지지에서의 얕은 되돌림. zone 하단은 WP3($60,300)와 구분하려 $60,355까지만 내렸고(≈0.30 ATR), likely_wick는 마이너 라운드 $60,400. $60,300(Chairman/WP3) 결정적 이탈 시 지지 실패로 무효.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 60300.00,\n      \"turning_zone\": [60180.00, 60300.00],\n      \"likely_wick\": 60200.00,\n      \"rejection_confirm\": 60400.00,\n      \"invalid_overshoot\": 60054.24,\n      \"calibration_reasoning\": \"sell-side 유동성 스윕은 정의상 레벨 아래로 윅을 형성하므로 zone을 $60,300 하방으로 확장(≈0.35 ATR). Gartley PRZ $60,194(pre-confirmation 조건부 반응대)와 라운드 $60,200을 하단·likely_wick 앵커로 사용. 스윕 후 $60,400 회복은 반등 확정, $60,054 fib 이탈 시 반등 무효·WP4로 가속.\"\n    },\n    {\n      \"seq\": 4,\n      \"base_target\": 59080.00,\n      \"turning_zone\": [58860.00, 59080.00],\n      \"likely_wick\": 59000.00,\n      \"rejection_confirm\": 59600.00,\n      \"invalid_overshoot\": 58400.00,\n      \"calibration_reasoning\": \"경로 종점이라 zone 폭을 ≈0.65 ATR로 넓혔다. fib ext 컨플루언스 $59,027(ext_2.0·ext_1.0)과 메이저 라운드 $59,000을 likely_wick·하단 앵커로 사용. 반등 확정은 Chairman 레벨 $59,600 회복으로 보고, 다음 Chairman 지지인 $58,400 이탈 시 $59,080 스윙로우 자체가 무효.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 27.3,
      "chairman": 44.7,
      "operating_path": 265.7,
      "tp_calibrator": 202.5
    },
    "agents": {},
    "total_s": 540.2
  }
}