{
  "symbol": "BTC/USDT",
  "timeframe": "15m",
  "timestamp": "2026-06-27 09:00 KST",
  "last_price": 60071.9,
  "num_candles": 300,
  "stage1_analyses": {
    "derivatives": {
      "agent_id": "derivatives",
      "display_name": "Derivatives Trader",
      "signal": "bearish",
      "confidence": 0.62,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.66,
      "setup_signals": [
        "롱 계정 비율 0.680으로 롱 포지셔닝 과밀, contrarian bearish 조건 활성화",
        "24h OI -1.6490% 감소로 신규 매수 유입보다 포지션 언와인딩 우세",
        "CVD 변화 -3413.3670으로 가격이 $60,071.90 부근에서 유지되는 동안 체결 흐름은 약세",
        "현물-선물 베이시스 -0.0422%로 선물 프리미엄 부재, 레버리지 매수 수요 약함",
        "상단 $60,600 및 $61,200 청산 유동성이 있으나, 7일 range EQ 약 $60,619.80 부근에서 저항 전환 가능",
        "하단 $58,800, $57,700, $57,600에 청산 유동성 클러스터 존재"
      ],
      "reasoning": "현재 BTC는 $60,071.90으로 EMA20 $59,922.14와 EMA120 $59,965.40 위에 있지만, EMA240 $60,381.58 아래에 있어 구조적으로는 확정된 상승 전환보다 박스권 중립에 가깝습니다. 다만 파생 포지셔닝은 bearish 쪽으로 기울어져 있으며, 롱 계정 비율이 0.680으로 높고 OI가 24시간 -1.6490% 감소해 롱 포지션 언와인딩 리스크가 큽니다. CVD 변화가 -3413.3670으로 음수이고 베이시스도 -0.0422%라서 $60,600~$61,200 상단 유동성을 흡수하지 못하면 $58,800 하단 청산 구간으로 밀릴 가능성이 높습니다. 구조_bias는 아직 명확한 BOS/CHoCH 확인이 없어 neutral이지만, setup_bias는 롱 과밀과 약한 체결 참여로 인해 bearish입니다.",
      "key_levels": {
        "support": [
          59922.14,
          58800,
          58030,
          57700,
          57600
        ],
        "resistance": [
          60381.58,
          60600,
          60619.8,
          61200,
          62400,
          63209.6
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "61200",
      "risk_scenario": "$60,600 상단 유동성을 흡수한 뒤 $61,200 위에서 15분봉 종가 수용이 나오면 bearish setup은 실패합니다. 이 경우 숏 커버링과 상단 청산 연쇄로 $62,400, 이후 7일 고점 $63,209.60까지 squeeze가 확장될 수 있습니다.",
      "data_quality": "medium",
      "metrics": {
        "cvd_divergence": 0.15,
        "cvd_change": -3413.367,
        "oi_trend": 0.335,
        "oi_change_pct_24h": -1.649,
        "oi_latest": 103581.92,
        "funding_pressure": 0.438,
        "funding_avg": 6.17e-05,
        "funding_change_24h": 2.01e-05,
        "long_account_ratio": 0.68,
        "short_account_ratio": 0.32,
        "long_account_latest": 0.68,
        "short_account_latest": 0.32,
        "long_account_change_24h": -0.0252,
        "short_account_change_24h": 0.0252,
        "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.489,
        "spot_futures_basis_pct": -0.0422,
        "basis_change_lookback": -0.0139,
        "aggregate_score": 0.283,
        "bull_signals": 0,
        "bear_signals": 4,
        "liq_below": [
          [
            58800,
            2677.9827297000006
          ],
          [
            57700,
            2404.081926
          ],
          [
            57600,
            3355.2250860000004
          ]
        ],
        "liq_above": [
          [
            60600,
            2742.6509796
          ],
          [
            61200,
            3455.5756065
          ],
          [
            62400,
            3355.2250860000004
          ]
        ],
        "strongest_liq_level": 54000,
        "fragility_score": 0.456,
        "positioning_extreme": "balanced"
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.66,\n  \"setup_signals\": [\n    \"롱 계정 비율 0.680으로 롱 포지셔닝 과밀, contrarian bearish 조건 활성화\",\n    \"24h OI -1.6490% 감소로 신규 매수 유입보다 포지션 언와인딩 우세\",\n    \"CVD 변화 -3413.3670으로 가격이 $60,071.90 부근에서 유지되는 동안 체결 흐름은 약세\",\n    \"현물-선물 베이시스 -0.0422%로 선물 프리미엄 부재, 레버리지 매수 수요 약함\",\n    \"상단 $60,600 및 $61,200 청산 유동성이 있으나, 7일 range EQ 약 $60,619.80 부근에서 저항 전환 가능\",\n    \"하단 $58,800, $57,700, $57,600에 청산 유동성 클러스터 존재\"\n  ],\n  \"reasoning\": \"현재 BTC는 $60,071.90으로 EMA20 $59,922.14와 EMA120 $59,965.40 위에 있지만, EMA240 $60,381.58 아래에 있어 구조적으로는 확정된 상승 전환보다 박스권 중립에 가깝습니다. 다만 파생 포지셔닝은 bearish 쪽으로 기울어져 있으며, 롱 계정 비율이 0.680으로 높고 OI가 24시간 -1.6490% 감소해 롱 포지션 언와인딩 리스크가 큽니다. CVD 변화가 -3413.3670으로 음수이고 베이시스도 -0.0422%라서 $60,600~$61,200 상단 유동성을 흡수하지 못하면 $58,800 하단 청산 구간으로 밀릴 가능성이 높습니다. 구조_bias는 아직 명확한 BOS/CHoCH 확인이 없어 neutral이지만, setup_bias는 롱 과밀과 약한 체결 참여로 인해 bearish입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      59922.14,\n      58800,\n      58030,\n      57700,\n      57600\n    ],\n    \"resistance\": [\n      60381.58,\n      60600,\n      60619.8,\n      61200,\n      62400,\n      63209.6\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"61200\",\n  \"risk_scenario\": \"$60,600 상단 유동성을 흡수한 뒤 $61,200 위에서 15분봉 종가 수용이 나오면 bearish setup은 실패합니다. 이 경우 숏 커버링과 상단 청산 연쇄로 $62,400, 이후 7일 고점 $63,209.60까지 squeeze가 확장될 수 있습니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "candlestick": {
      "agent_id": "candlestick",
      "display_name": "Candlestick Reader",
      "signal": "neutral",
      "confidence": 0.54,
      "structure_bias": "neutral",
      "setup_bias": "bullish",
      "setup_score": 0.42,
      "setup_signals": [
        "현재가 $60,071.90는 7일 범위 EQ $60,619.80 아래의 할인 구간에 위치",
        "현재가가 EMA20 $59,922.14 및 EMA120 $59,965.40 위로 회복되어 단기 수요 반응 가능성 존재",
        "EMA240 $60,381.58 아래에 머물러 있어 상위 단기 저항은 아직 돌파하지 못함",
        "최근 bearish_engulfing@297 이후 piercing_pattern@298이 출현했으나 거래량 확인은 없음",
        "bull_score 1.45와 bear_score 1.40이 거의 균형 상태로 방향성 확정 전 단계"
      ],
      "reasoning": "현재 BTC는 $60,071.90으로 EMA20 $59,922.14와 EMA120 $59,965.40 위에 있어 단기적으로는 매수 반응이 살아 있지만, EMA240 $60,381.58 아래에 있어 구조적 상승 전환은 아직 확인되지 않았습니다. 최근 패턴은 bearish_engulfing 품질 0.628, shooting_star 0.525로 매도 신호가 우세해 보였으나, 이후 piercing_pattern@298과 마지막 5개 캔들 중 4개 양봉이 나오며 즉각적인 하방 지속은 약화되었습니다. 다만 모든 최근 패턴이 high_volume=false이고 best_pattern_quality도 0.628의 후보 수준이므로, 확정적인 반전 신호보다는 혼조 구간으로 해석하는 것이 타당합니다. 가격이 7일 EQ $60,619.80 아래의 할인 구간에 있어 setup_bias는 약한 bullish지만, 구조적으로는 명확한 BOS나 CHoCH 확인이 없어 structure_bias는 neutral입니다.",
      "key_levels": {
        "support": [
          59965.4,
          59922.14,
          58030.0
        ],
        "resistance": [
          60381.58,
          60619.8,
          63209.6
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,619.80 상방 안착 또는 $59,922.14 하방 이탈",
      "risk_scenario": "상방 시나리오에서는 EMA240 $60,381.58 돌파 후 7일 EQ $60,619.80 위에 안착하면 bearish_engulfing 신호가 무효화되며 $63,209.60까지의 유동성 회복 시도가 열립니다. 반대로 $59,922.14의 EMA20을 다시 이탈하면 현재의 약한 bullish setup은 실패로 보고, EMA120 $59,965.40 부근도 함께 무너지면서 $58,030.00 저점 재테스트 위험이 커집니다.",
      "data_quality": "medium",
      "metrics": {
        "total_patterns_detected": 131,
        "recent_patterns": 5,
        "pattern_list": [
          "shooting_star@293",
          "bullish_engulfing@294",
          "bearish_engulfing@297",
          "doji@292",
          "piercing_pattern@298"
        ],
        "atr_value": 195.14,
        "vol_avg_20": 1058.74,
        "high_volume_patterns": [],
        "pattern_candidates": [
          {
            "pattern": "bearish_engulfing",
            "signal": "bearish",
            "pattern_quality": 0.628,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "shooting_star",
            "signal": "bearish",
            "pattern_quality": 0.525,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "bullish_engulfing",
            "signal": "bullish",
            "pattern_quality": 0.477,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "piercing_pattern",
            "signal": "bullish",
            "pattern_quality": 0.387,
            "tier": "candidate",
            "high_volume": false
          },
          {
            "pattern": "doji",
            "signal": "neutral",
            "pattern_quality": 0.355,
            "tier": "candidate",
            "high_volume": false
          }
        ],
        "best_pattern_quality": 0.628,
        "bull_score": 1.45,
        "bear_score": 1.4
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.54,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.42,\n  \"setup_signals\": [\n    \"현재가 $60,071.90는 7일 범위 EQ $60,619.80 아래의 할인 구간에 위치\",\n    \"현재가가 EMA20 $59,922.14 및 EMA120 $59,965.40 위로 회복되어 단기 수요 반응 가능성 존재\",\n    \"EMA240 $60,381.58 아래에 머물러 있어 상위 단기 저항은 아직 돌파하지 못함\",\n    \"최근 bearish_engulfing@297 이후 piercing_pattern@298이 출현했으나 거래량 확인은 없음\",\n    \"bull_score 1.45와 bear_score 1.40이 거의 균형 상태로 방향성 확정 전 단계\"\n  ],\n  \"reasoning\": \"현재 BTC는 $60,071.90으로 EMA20 $59,922.14와 EMA120 $59,965.40 위에 있어 단기적으로는 매수 반응이 살아 있지만, EMA240 $60,381.58 아래에 있어 구조적 상승 전환은 아직 확인되지 않았습니다. 최근 패턴은 bearish_engulfing 품질 0.628, shooting_star 0.525로 매도 신호가 우세해 보였으나, 이후 piercing_pattern@298과 마지막 5개 캔들 중 4개 양봉이 나오며 즉각적인 하방 지속은 약화되었습니다. 다만 모든 최근 패턴이 high_volume=false이고 best_pattern_quality도 0.628의 후보 수준이므로, 확정적인 반전 신호보다는 혼조 구간으로 해석하는 것이 타당합니다. 가격이 7일 EQ $60,619.80 아래의 할인 구간에 있어 setup_bias는 약한 bullish지만, 구조적으로는 명확한 BOS나 CHoCH 확인이 없어 structure_bias는 neutral입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      59965.4,\n      59922.14,\n      58030.0\n    ],\n    \"resistance\": [\n      60381.58,\n      60619.8,\n      63209.6\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,619.80 상방 안착 또는 $59,922.14 하방 이탈\",\n  \"risk_scenario\": \"상방 시나리오에서는 EMA240 $60,381.58 돌파 후 7일 EQ $60,619.80 위에 안착하면 bearish_engulfing 신호가 무효화되며 $63,209.60까지의 유동성 회복 시도가 열립니다. 반대로 $59,922.14의 EMA20을 다시 이탈하면 현재의 약한 bullish setup은 실패로 보고, EMA120 $59,965.40 부근도 함께 무너지면서 $58,030.00 저점 재테스트 위험이 커집니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "fibonacci": {
      "agent_id": "fibonacci",
      "display_name": "Fibonacci Analyst",
      "signal": "bearish",
      "confidence": 0.62,
      "structure_bias": "neutral",
      "setup_bias": "bearish",
      "setup_score": 0.72,
      "setup_signals": [
        "현재가 $60,071.90는 다운스윙 $60,580 → $59,556의 EQ/ret_0.5 $60,068.00 바로 위에서 테스트 중",
        "0.618 골든비율 저항 $60,188.83가 현재가에서 약 0.19% 위에 위치하여 반락 후보 구간 형성",
        "주요 피보나치 컨플루언스 존 $60,053.15에 4개 레벨(ret_0.382, ret_0.382, ret_0.5, ret_0.618)이 밀집, cluster_score 1.0",
        "가격이 EMA240 $60,381.58 아래에 있어 상위 단기 평균 구조는 아직 완전한 상방 수용을 확인하지 못함",
        "fib_reaction_state가 testing이며 reaction_probability 0.65로, 현 구간에서 방향성 반응 가능성이 높음"
      ],
      "reasoning": "확정 구조 관점에서는 명시적인 BOS/CHoCH 또는 구조적 수용 확인 데이터가 없으므로 structure_bias는 neutral로 둔다. 다만 실행 셋업 관점에서는 최근 측정 스윙이 High $60,580 → Low $59,556의 하락 스윙이며, 현재가 $60,071.90가 ret_0.5 $60,068.00와 거의 일치하고 바로 위에 핵심 0.618 골든비율 $60,188.83 저항이 있어 하락 되돌림 매도 셋업이 우세하다. 특히 $60,053.15 컨플루언스 존은 4개 피보나치 레벨이 중첩되고 confluence_quality가 1.000으로 매우 높아 단기 반응 구간으로 신뢰도가 높다. $60,188.83을 돌파하지 못하면 $59,947.17, $59,797.66, 이후 $59,556.00 재테스트 가능성이 열린다.",
      "key_levels": {
        "support": [
          60068.0,
          59947.17,
          59797.66,
          59556.0,
          59277.47,
          58923.17
        ],
        "resistance": [
          60188.83,
          60360.86,
          60580.0
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "60360.86",
      "risk_scenario": "$60,188.83의 0.618 골든비율을 강하게 돌파하고 $60,360.86의 0.786 되돌림 위에서 수용되면 하락 되돌림 매도 셋업은 무효화된다. 이 경우 $60,580 스윙 고점 재시험 및 단기 숏 커버링이 발생할 수 있다.",
      "data_quality": "medium",
      "metrics": {
        "swing_pair": "High→Low: $60,580 → $59,556",
        "direction": "down",
        "nearest_fib": "ret_0.5",
        "nearest_fib_price": 60068.0,
        "nearest_fib_distance": 0.01,
        "golden_ratio_level": 60188.83,
        "fib_ret_382": 59947.17,
        "fib_ret_618": 60188.83,
        "confluence_zones": [
          {
            "price": 60053.15,
            "count": 4,
            "levels": [
              "ret_0.382",
              "ret_0.382",
              "ret_0.5",
              "ret_0.618"
            ],
            "cluster_score": 1.0
          },
          {
            "price": 57964.58,
            "count": 2,
            "levels": [
              "ext_2.618",
              "ext_1.0"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 59027.62,
            "count": 2,
            "levels": [
              "ext_1.618",
              "ext_1.414"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 59264.93,
            "count": 2,
            "levels": [
              "ret_0.236",
              "ext_1.272"
            ],
            "cluster_score": 0.6
          },
          {
            "price": 59676.83,
            "count": 2,
            "levels": [
              "ext_1.0",
              "ret_0.236"
            ],
            "cluster_score": 0.6
          }
        ],
        "support_levels": [
          60068.0,
          59947.168,
          59797.664
        ],
        "resistance_levels": [
          60188.832,
          60360.864
        ],
        "level_candidates": [
          {
            "name": "ret_0.236",
            "price": 59797.66,
            "distance_pct": 0.46,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.382",
            "price": 59947.17,
            "distance_pct": 0.21,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.5",
            "price": 60068.0,
            "distance_pct": 0.01,
            "is_support": true,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.618",
            "price": 60188.83,
            "distance_pct": 0.19,
            "is_support": false,
            "cluster_score": 1.0
          },
          {
            "name": "ret_0.786",
            "price": 60360.86,
            "distance_pct": 0.48,
            "is_support": false,
            "cluster_score": 0.0
          },
          {
            "name": "ext_1.0",
            "price": 59556.0,
            "distance_pct": 0.86,
            "is_support": true,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.272",
            "price": 59277.47,
            "distance_pct": 1.32,
            "is_support": true,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.414",
            "price": 59132.06,
            "distance_pct": 1.56,
            "is_support": true,
            "cluster_score": 0.6
          },
          {
            "name": "ext_1.618",
            "price": 58923.17,
            "distance_pct": 1.91,
            "is_support": true,
            "cluster_score": 0.6
          },
          {
            "name": "ext_2.0",
            "price": 58532.0,
            "distance_pct": 2.56,
            "is_support": true,
            "cluster_score": 0.0
          }
        ],
        "confluence_quality": 1.0,
        "fib_reaction_state": "testing",
        "reaction_probability": 0.65
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.72,\n  \"setup_signals\": [\n    \"현재가 $60,071.90는 다운스윙 $60,580 → $59,556의 EQ/ret_0.5 $60,068.00 바로 위에서 테스트 중\",\n    \"0.618 골든비율 저항 $60,188.83가 현재가에서 약 0.19% 위에 위치하여 반락 후보 구간 형성\",\n    \"주요 피보나치 컨플루언스 존 $60,053.15에 4개 레벨(ret_0.382, ret_0.382, ret_0.5, ret_0.618)이 밀집, cluster_score 1.0\",\n    \"가격이 EMA240 $60,381.58 아래에 있어 상위 단기 평균 구조는 아직 완전한 상방 수용을 확인하지 못함\",\n    \"fib_reaction_state가 testing이며 reaction_probability 0.65로, 현 구간에서 방향성 반응 가능성이 높음\"\n  ],\n  \"reasoning\": \"확정 구조 관점에서는 명시적인 BOS/CHoCH 또는 구조적 수용 확인 데이터가 없으므로 structure_bias는 neutral로 둔다. 다만 실행 셋업 관점에서는 최근 측정 스윙이 High $60,580 → Low $59,556의 하락 스윙이며, 현재가 $60,071.90가 ret_0.5 $60,068.00와 거의 일치하고 바로 위에 핵심 0.618 골든비율 $60,188.83 저항이 있어 하락 되돌림 매도 셋업이 우세하다. 특히 $60,053.15 컨플루언스 존은 4개 피보나치 레벨이 중첩되고 confluence_quality가 1.000으로 매우 높아 단기 반응 구간으로 신뢰도가 높다. $60,188.83을 돌파하지 못하면 $59,947.17, $59,797.66, 이후 $59,556.00 재테스트 가능성이 열린다.\",\n  \"key_levels\": {\n    \"support\": [\n      60068.00,\n      59947.17,\n      59797.66,\n      59556.00,\n      59277.47,\n      58923.17\n    ],\n    \"resistance\": [\n      60188.83,\n      60360.86,\n      60580.00\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"60360.86\",\n  \"risk_scenario\": \"$60,188.83의 0.618 골든비율을 강하게 돌파하고 $60,360.86의 0.786 되돌림 위에서 수용되면 하락 되돌림 매도 셋업은 무효화된다. 이 경우 $60,580 스윙 고점 재시험 및 단기 숏 커버링이 발생할 수 있다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "ict": {
      "agent_id": "ict",
      "display_name": "ICT Trader",
      "signal": "bullish",
      "confidence": 0.62,
      "structure_bias": "bullish",
      "setup_bias": "bullish",
      "setup_score": 0.755,
      "setup_signals": [
        "최근 구조 이벤트가 CHoCH_bearish $60,648 이후 BOS_bullish $60,245로 마감되어 단기 구조 회복 신호 존재",
        "가격 $60,071.90이 EQ $59,484.00 위 프리미엄 영역에 있어 즉시 추격 매수보다는 할인 구간 재진입 대기 필요",
        "후보 bullish OB가 $58,288.00-$58,944.00에 위치하며, 해당 구간은 이전일 저가 $58,288.00과 중첩되는 잠재 기관 매수 방어 구간",
        "현재 미충족 FVG 0개, 최근 유동성 스윕 0개로 강한 즉시 변위보다는 유동성 재수집 후 방향성 확인이 필요한 상태",
        "EMA20 $59,922.14 및 EMA120 $59,965.40 위에서 거래 중이나 EMA240 $60,381.58 아래에 있어 상단 저항 확인 필요"
      ],
      "reasoning": "확정 구조는 최근 BOS_bullish가 $60,245.00에서 발생했고, 이전 CHoCH_bearish $60,648.00 이후 다시 상방 구조 회복을 시도했다는 점에서 약한 bullish로 판단한다. 다만 현재가 $60,071.90은 EQ $59,484.00 위의 프리미엄 구간이며, EMA240 $60,381.58 아래에 있어 현 위치에서의 매수 추격은 효율이 낮다. 핵심 매수 관심 구간은 후보 bullish OB $58,288.00-$58,944.00이며, 이 구간은 이전일 저가 $58,288.00 및 7일 저가 $58,030.00 인근의 sell-side liquidity와 맞물린다. 미충족 FVG가 0개이고 최근 유동성 스윕도 없어 즉각적인 기관 변위 신호는 부족하므로, $60,580.00 range high 및 이전일 고가 $60,734.00 회복 여부가 단기 상승 지속의 확인 포인트다.",
      "key_levels": {
        "support": [
          59965.4,
          59922.14,
          59484.0,
          58944.0,
          58288.0,
          58030.0
        ],
        "resistance": [
          60381.58,
          60580.0,
          60734.0,
          61256.0,
          62402.8,
          63209.6
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "58288.00",
      "risk_scenario": "$58,288.00 후보 bullish OB 하단과 이전일 저가가 하방 이탈되면 현재 bullish 구조 회복 시나리오는 실패로 보고, $58,030.00 7일 저가의 sell-side liquidity 사냥 이후 추가 하락 또는 재축적 여부를 다시 확인해야 한다.",
      "data_quality": "medium",
      "metrics": {
        "order_blocks_total": 1,
        "confirmed_bullish_ob": 0,
        "confirmed_bearish_ob": 0,
        "candidate_bullish_ob": 1,
        "candidate_bearish_ob": 0,
        "active_bullish_ob": 0,
        "active_bearish_ob": 0,
        "nearest_bull_ob_range": {
          "bottom": 58288.0,
          "top": 58944.0,
          "quality": "candidate",
          "score": 0.577
        },
        "nearest_bear_ob_range": null,
        "active_bullish_ob_list": [],
        "active_bearish_ob_list": [],
        "ob_mitigated_count": 1,
        "unfilled_bull_fvg_count": 0,
        "unfilled_bear_fvg_count": 0,
        "bull_fvg_ranges": [],
        "bear_fvg_ranges": [],
        "fvg_open_count": 0,
        "fvg_mitigated_count": 64,
        "fvg_open_zones": [],
        "bos_choch_events": [
          "CHoCH_bearish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish"
        ],
        "bos_choch_levels": [
          {
            "type": "CHoCH_bearish",
            "level": 62402.8
          },
          {
            "type": "BOS_bullish",
            "level": 61256.0
          },
          {
            "type": "CHoCH_bearish",
            "level": 60648.0
          },
          {
            "type": "BOS_bullish",
            "level": 60245.0
          }
        ],
        "bos_sequence": [
          "CHoCH_bearish",
          "BOS_bullish",
          "CHoCH_bearish",
          "BOS_bullish"
        ],
        "consecutive_bull_bos": 1,
        "consecutive_bear_bos": 0,
        "recent_liq_sweeps": [],
        "recent_sweep_levels": [],
        "liquidity_resting": [],
        "current_zone": "premium",
        "eq_level": 59484.0,
        "range_high": 60580.0,
        "range_low": 58388.0,
        "bull_score": 5.0,
        "bear_score": 4.4,
        "setup_bias": "bullish",
        "setup_score": 0.755,
        "setup_signals": [
          "bullish BOS above $61,256.00",
          "bullish BOS above $60,245.00"
        ],
        "retracement_direction": "bearish",
        "current_retracement_pct": 50.9,
        "deepest_retracement_pct": 53.4,
        "previous_day_high": 60734.0,
        "previous_day_low": 58288.0,
        "broken_prev_high": false,
        "broken_prev_low": false,
        "sessions": {
          "London": {
            "active": true,
            "high": 60090.8,
            "low": 59717.1
          },
          "New York": {
            "active": false,
            "high": null,
            "low": null
          },
          "Asian kill zone": {
            "active": false,
            "high": null,
            "low": null
          }
        }
      },
      "raw_llm_response": "{\n  \"signal\": \"bullish\",\n  \"confidence\": 0.62,\n  \"structure_bias\": \"bullish\",\n  \"setup_bias\": \"bullish\",\n  \"setup_score\": 0.755,\n  \"setup_signals\": [\n    \"최근 구조 이벤트가 CHoCH_bearish $60,648 이후 BOS_bullish $60,245로 마감되어 단기 구조 회복 신호 존재\",\n    \"가격 $60,071.90이 EQ $59,484.00 위 프리미엄 영역에 있어 즉시 추격 매수보다는 할인 구간 재진입 대기 필요\",\n    \"후보 bullish OB가 $58,288.00-$58,944.00에 위치하며, 해당 구간은 이전일 저가 $58,288.00과 중첩되는 잠재 기관 매수 방어 구간\",\n    \"현재 미충족 FVG 0개, 최근 유동성 스윕 0개로 강한 즉시 변위보다는 유동성 재수집 후 방향성 확인이 필요한 상태\",\n    \"EMA20 $59,922.14 및 EMA120 $59,965.40 위에서 거래 중이나 EMA240 $60,381.58 아래에 있어 상단 저항 확인 필요\"\n  ],\n  \"reasoning\": \"확정 구조는 최근 BOS_bullish가 $60,245.00에서 발생했고, 이전 CHoCH_bearish $60,648.00 이후 다시 상방 구조 회복을 시도했다는 점에서 약한 bullish로 판단한다. 다만 현재가 $60,071.90은 EQ $59,484.00 위의 프리미엄 구간이며, EMA240 $60,381.58 아래에 있어 현 위치에서의 매수 추격은 효율이 낮다. 핵심 매수 관심 구간은 후보 bullish OB $58,288.00-$58,944.00이며, 이 구간은 이전일 저가 $58,288.00 및 7일 저가 $58,030.00 인근의 sell-side liquidity와 맞물린다. 미충족 FVG가 0개이고 최근 유동성 스윕도 없어 즉각적인 기관 변위 신호는 부족하므로, $60,580.00 range high 및 이전일 고가 $60,734.00 회복 여부가 단기 상승 지속의 확인 포인트다.\",\n  \"key_levels\": {\n    \"support\": [\n      59965.4,\n      59922.14,\n      59484.0,\n      58944.0,\n      58288.0,\n      58030.0\n    ],\n    \"resistance\": [\n      60381.58,\n      60580.0,\n      60734.0,\n      61256.0,\n      62402.8,\n      63209.6\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"58288.00\",\n  \"risk_scenario\": \"$58,288.00 후보 bullish OB 하단과 이전일 저가가 하방 이탈되면 현재 bullish 구조 회복 시나리오는 실패로 보고, $58,030.00 7일 저가의 sell-side liquidity 사냥 이후 추가 하락 또는 재축적 여부를 다시 확인해야 한다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "harmonic": {
      "agent_id": "harmonic",
      "display_name": "Harmonic Specialist",
      "signal": "neutral",
      "confidence": 0.38,
      "structure_bias": "neutral",
      "setup_bias": "neutral",
      "setup_score": 0.44,
      "setup_signals": [
        "현재가 $60,071.90는 고품질 strict 상승 Gartley PRZ $59,725.77-$59,936.53 위에 있어 재진입 시 상승 반응 후보이나, 아직 confirmed_reaction=false",
        "현재가 $60,071.90는 고품질 strict 하락 Gartley PRZ $59,757.24-$60,064.56 바로 위에 위치하며, D 예상가 $59,910.90 부근에서 하락 반응 후보이나 confirmed_reaction=false",
        "중간 품질 strict 하락 Shark PRZ $59,864.16-$60,344.29가 활성 구간이며 현재가가 해당 PRZ 내부/상단부에 있어 단기 저항 반응 가능성 존재",
        "완료된 bearish Gartley 후보는 PRZ $59,831.89-$60,188.30에서 반응 확인됨(reaction_score 1.0, AD0.382 도달), 하지만 candidate-tier라 단독 구조 전환 근거는 아님",
        "방향 점수는 bullish 0.192 vs bearish 0.188, dominance 0.008로 사실상 균형 상태"
      ],
      "reasoning": "15분 BTC는 현재 $60,071.90으로, 핵심 활성 PRZ들이 $59,725.77-$60,344.29에 겹쳐 있어 방향성보다 반응 구간 성격이 강합니다. 가장 중요한 council PRZ는 strict/high 상승 Gartley $59,725.77-$59,936.53와 strict/high 하락 Gartley $59,757.24-$60,064.56로 서로 충돌하며, 둘 다 confirmed_reaction=false라 구조를 뒤집을 권한은 없습니다. 완료된 bearish Gartley는 $59,831.89-$60,188.30에서 반응 확인(reaction_score 1.0)되었지만 candidate 품질이므로 중간 confluence/tie-breaker 이상으로 보지 않습니다. 따라서 구조_bias는 확정 BOS/CHoCH/MSS 없이 중립, setup_bias도 상하 PRZ 충돌과 directional_dominance 0.008 때문에 중립입니다.",
      "key_levels": {
        "support": [
          59936.53,
          59831.15,
          59725.77,
          59621.27,
          59442.33
        ],
        "resistance": [
          60064.56,
          60104.95,
          60188.3,
          60274.2,
          60344.29
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,344.29 상방 15분 종가 수용",
      "risk_scenario": "가격이 $60,344.29 위로 수용되면 활성 하락 Shark/Gartley PRZ 방어가 실패하며 $60,590.03-$60,738.40 및 $60,931.75 쪽 상단 PRZ/유동성으로 확장될 수 있습니다. 반대로 $59,725.77 아래로 밀리면 상승 Gartley PRZ 방어 실패로 $59,621.27, $59,442.33, $59,152.70 방향의 하락 TP ladder가 열립니다.",
      "data_quality": "medium",
      "metrics": {
        "patterns_found": 102,
        "completed_patterns_found": 41,
        "forming_d_prz_found": 61,
        "swing_orders_scanned": [
          3,
          5,
          8
        ],
        "swing_search_window": 34,
        "multiscale_swings_scanned": 54,
        "swing_highs_scanned": 28,
        "swing_lows_scanned": 26,
        "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": 6,
          "medium": 40,
          "low": 56
        },
        "prz_status_counts": {
          "active": 29,
          "nearby": 5,
          "watch": 22,
          "far": 46,
          "forming": 35
        },
        "high_confluence_prz_count": 29,
        "strict_patterns_found": 50,
        "candidate_patterns_found": 52,
        "active_patterns_at_prz": 29,
        "nearby_patterns": 5,
        "all_patterns": [
          "shark",
          "bat",
          "crab",
          "gartley",
          "gartley",
          "shark",
          "gartley",
          "bat",
          "crab",
          "bat",
          "shark",
          "gartley",
          "butterfly",
          "bat",
          "shark",
          "gartley",
          "bat",
          "gartley",
          "bat",
          "bat",
          "gartley",
          "shark",
          "bat",
          "bat",
          "shark",
          "gartley",
          "gartley",
          "butterfly",
          "bat",
          "crab",
          "crab",
          "crab",
          "butterfly",
          "crab",
          "bat",
          "gartley",
          "crab",
          "crab",
          "butterfly",
          "gartley",
          "bat",
          "crab",
          "crab",
          "crab",
          "crab",
          "crab",
          "crab",
          "gartley",
          "bat",
          "bat",
          "crab",
          "gartley",
          "crab",
          "shark",
          "butterfly",
          "crab",
          "crab",
          "butterfly",
          "butterfly",
          "crab",
          "shark",
          "butterfly",
          "butterfly",
          "crab",
          "butterfly",
          "gartley",
          "crab",
          "butterfly",
          "butterfly",
          "shark",
          "bat",
          "crab",
          "butterfly",
          "shark",
          "butterfly",
          "crab",
          "crab",
          "shark",
          "shark",
          "bat",
          "crab",
          "crab",
          "gartley",
          "gartley",
          "gartley",
          "gartley",
          "butterfly",
          "butterfly",
          "crab",
          "shark",
          "butterfly",
          "crab",
          "shark",
          "crab",
          "butterfly",
          "crab",
          "butterfly",
          "shark",
          "crab",
          "shark",
          "butterfly",
          "butterfly"
        ],
        "all_signals": [
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bearish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bearish",
          "bearish",
          "bearish",
          "bullish",
          "bearish",
          "bullish",
          "bullish",
          "bullish",
          "bullish"
        ],
        "best_pattern": "shark",
        "best_pattern_quality": "strict",
        "best_quality": "medium",
        "best_pattern_score": 0.956,
        "best_completion_status": "forming",
        "nearest_pattern": "bat",
        "nearest_prz": 60063.01,
        "price_to_prz": -0.01,
        "prz_range": [
          59789.27,
          60336.74
        ],
        "council_relevant_prz_count": 2,
        "directional_influence_prz_count": 2,
        "confirmed_reaction_prz_count": 0,
        "validated_harmonic_tp_count": 0,
        "pattern_candidates": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.905,
            "ratio_score": 0.891,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59831.15,
            "prz_range": [
              59725.77,
              59936.53
            ],
            "prz_width_pct": 0.352,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.4,
            "price_to_prz_pct_raw": -0.4008,
            "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": 59831.15,
              "a_price": 60274.2,
              "tp1_ad_382": 60000.39,
              "tp2_ad_618": 60104.95,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.4623
            },
            "x_price": 59705.4,
            "x_idx": 199,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 260,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 269,
            "b_order": 3,
            "c_price": 60090.8,
            "c_idx": 296,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.89,
            "ratio_score": 0.788,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59910.9,
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_width_pct": 0.513,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.268,
            "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": "bearish",
              "source": "gartley",
              "d_price": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6464,
              "ABC": 0.8989
            },
            "x_price": 60035.7,
            "x_idx": 172,
            "x_order": 5,
            "a_price": 59152.7,
            "a_idx": 185,
            "a_order": 8,
            "b_price": 59723.5,
            "b_idx": 188,
            "b_order": 5,
            "c_price": 59210.4,
            "c_idx": 247,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.867,
            "ratio_score": 0.813,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60164.3,
            "prz_range": [
              59831.89,
              60188.3
            ],
            "prz_width_pct": 0.594,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.1,
            "price_to_prz_pct_raw": -0.1029,
            "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",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.383,
                "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": "bearish",
              "source": "gartley",
              "d_price": 60010.1,
              "a_price": 58835.2,
              "tp1_ad_382": 59561.29,
              "tp2_ad_618": 59284.01,
              "tp3_a_or_structure_liquidity": 58835.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.576,
              "ABC": 0.6622,
              "BCD": 1.6256,
              "XAD": 0.8145
            },
            "x_price": 60466.9,
            "x_idx": 166,
            "x_order": 3,
            "a_price": 58835.2,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 59775.0,
            "b_idx": 180,
            "b_order": 5,
            "c_price": 59152.7,
            "c_idx": 185,
            "c_order": 8,
            "d_idx": 202
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.818,
            "ratio_score": 0.835,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 59358.8,
            "prz_range": [
              59207.57,
              59548.08
            ],
            "prz_width_pct": 0.573,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.16,
            "price_to_prz_pct_raw": -1.1554,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.378,
                "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": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59377.83,
              "a_price": 60245.0,
              "tp1_ad_382": 59709.09,
              "tp2_ad_618": 59913.74,
              "tp3_a_or_structure_liquidity": 60245.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.494,
              "ABC": 0.543,
              "BCD": 2.1829,
              "XAD": 0.8113
            },
            "x_price": 59152.7,
            "x_idx": 185,
            "x_order": 8,
            "a_price": 60245.0,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 59705.4,
            "b_idx": 199,
            "b_order": 3,
            "c_price": 59998.4,
            "c_idx": 254,
            "c_order": 3,
            "d_idx": 263
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.956,
            "ratio_score": 1.0,
            "prz_score": 0.923,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60104.22,
            "prz_range": [
              59864.16,
              60344.29
            ],
            "prz_width_pct": 0.799,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.05,
            "price_to_prz_pct_raw": 0.0538,
            "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": "bearish",
              "source": "shark",
              "d_price": 60104.22,
              "a_price": 59666.2,
              "tp1_ad_382": 59936.9,
              "tp2_ad_618": 59833.52,
              "tp3_a_or_structure_liquidity": 59666.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5739,
              "ABC": 1.3317
            },
            "x_price": 60245.0,
            "x_idx": 195,
            "x_order": 8,
            "a_price": 59666.2,
            "a_idx": 228,
            "a_order": 8,
            "b_price": 59998.4,
            "b_idx": 254,
            "b_order": 3,
            "c_price": 59556.0,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.921,
            "ratio_score": 1.0,
            "prz_score": 0.959,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 59314.5,
            "prz_range": [
              59104.97,
              59524.03
            ],
            "prz_width_pct": 0.706,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.26,
            "price_to_prz_pct_raw": -1.2608,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59314.5,
              "a_price": 60164.3,
              "tp1_ad_382": 59639.12,
              "tp2_ad_618": 59839.68,
              "tp3_a_or_structure_liquidity": 60164.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4744,
              "ABC": 0.6669
            },
            "x_price": 59114.4,
            "x_idx": 176,
            "x_order": 5,
            "a_price": 60164.3,
            "a_idx": 202,
            "a_order": 5,
            "b_price": 59666.2,
            "b_idx": 228,
            "b_order": 8,
            "c_price": 59998.4,
            "c_idx": 254,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.916,
            "ratio_score": 1.0,
            "prz_score": 0.934,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59583.67,
            "prz_range": [
              59354.4,
              59812.93
            ],
            "prz_width_pct": 0.77,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.81,
            "price_to_prz_pct_raw": -0.8128,
            "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": 59583.67,
              "a_price": 60234.8,
              "tp1_ad_382": 59832.4,
              "tp2_ad_618": 59986.07,
              "tp3_a_or_structure_liquidity": 60234.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5699,
              "ABC": 0.5227
            },
            "x_price": 59705.4,
            "x_idx": 199,
            "x_order": 3,
            "a_price": 60234.8,
            "a_idx": 221,
            "a_order": 8,
            "b_price": 59933.1,
            "b_idx": 269,
            "b_order": 3,
            "c_price": 60090.8,
            "c_idx": 296,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.882,
            "ratio_score": 0.882,
            "prz_score": 0.907,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60336.71,
            "prz_range": [
              60083.38,
              60590.03
            ],
            "prz_width_pct": 0.84,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.44,
            "price_to_prz_pct_raw": 0.4408,
            "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": "bearish",
              "source": "shark",
              "d_price": 60336.71,
              "a_price": 59705.4,
              "tp1_ad_382": 60095.55,
              "tp2_ad_618": 59946.56,
              "tp3_a_or_structure_liquidity": 59705.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6026,
              "ABC": 1.0854
            },
            "x_price": 60466.9,
            "x_idx": 166,
            "x_order": 3,
            "a_price": 59705.4,
            "a_idx": 199,
            "a_order": 3,
            "b_price": 60164.3,
            "b_idx": 202,
            "b_order": 5,
            "c_price": 59666.2,
            "c_idx": 228,
            "c_order": 8,
            "d_idx": null
          }
        ],
        "council_relevant_prz": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.905,
            "ratio_score": 0.891,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59831.15,
            "prz_range": [
              59725.77,
              59936.53
            ],
            "prz_width_pct": 0.352,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.4,
            "price_to_prz_pct_raw": -0.4008,
            "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": 59831.15,
              "a_price": 60274.2,
              "tp1_ad_382": 60000.39,
              "tp2_ad_618": 60104.95,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.4623
            },
            "x_price": 59705.4,
            "x_idx": 199,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 260,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 269,
            "b_order": 3,
            "c_price": 60090.8,
            "c_idx": 296,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.89,
            "ratio_score": 0.788,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59910.9,
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_width_pct": 0.513,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.268,
            "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": "bearish",
              "source": "gartley",
              "d_price": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6464,
              "ABC": 0.8989
            },
            "x_price": 60035.7,
            "x_idx": 172,
            "x_order": 5,
            "a_price": 59152.7,
            "a_idx": 185,
            "a_order": 8,
            "b_price": 59723.5,
            "b_idx": 188,
            "b_order": 5,
            "c_price": 59210.4,
            "c_idx": 247,
            "c_order": 5,
            "d_idx": null
          }
        ],
        "report_detail_candidates": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.905,
            "ratio_score": 0.891,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59831.15,
            "prz_range": [
              59725.77,
              59936.53
            ],
            "prz_width_pct": 0.352,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.4,
            "price_to_prz_pct_raw": -0.4008,
            "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": 59831.15,
              "a_price": 60274.2,
              "tp1_ad_382": 60000.39,
              "tp2_ad_618": 60104.95,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5997,
              "ABC": 0.4623
            },
            "x_price": 59705.4,
            "x_idx": 199,
            "x_order": 3,
            "a_price": 60274.2,
            "a_idx": 260,
            "a_order": 3,
            "b_price": 59933.1,
            "b_idx": 269,
            "b_order": 3,
            "c_price": 60090.8,
            "c_idx": 296,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.89,
            "ratio_score": 0.788,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 59910.9,
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_width_pct": 0.513,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.27,
            "price_to_prz_pct_raw": -0.268,
            "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": "bearish",
              "source": "gartley",
              "d_price": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6464,
              "ABC": 0.8989
            },
            "x_price": 60035.7,
            "x_idx": 172,
            "x_order": 5,
            "a_price": 59152.7,
            "a_idx": 185,
            "a_order": 8,
            "b_price": 59723.5,
            "b_idx": 188,
            "b_order": 5,
            "c_price": 59210.4,
            "c_idx": 247,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.867,
            "ratio_score": 0.813,
            "prz_score": 1.0,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60164.3,
            "prz_range": [
              59831.89,
              60188.3
            ],
            "prz_width_pct": 0.594,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.1,
            "price_to_prz_pct_raw": -0.1029,
            "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",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.383,
                "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": "bearish",
              "source": "gartley",
              "d_price": 60010.1,
              "a_price": 58835.2,
              "tp1_ad_382": 59561.29,
              "tp2_ad_618": 59284.01,
              "tp3_a_or_structure_liquidity": 58835.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.576,
              "ABC": 0.6622,
              "BCD": 1.6256,
              "XAD": 0.8145
            },
            "x_price": 60466.9,
            "x_idx": 166,
            "x_order": 3,
            "a_price": 58835.2,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 59775.0,
            "b_idx": 180,
            "b_order": 5,
            "c_price": 59152.7,
            "c_idx": 185,
            "c_order": 8,
            "d_idx": 202
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "completed",
            "pattern_quality": "candidate",
            "quality": "high",
            "pattern_score": 0.818,
            "ratio_score": 0.835,
            "prz_score": 1.0,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 59358.8,
            "prz_range": [
              59207.57,
              59548.08
            ],
            "prz_width_pct": 0.573,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.16,
            "price_to_prz_pct_raw": -1.1554,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [
                "PRZ_rejection_or_defense",
                "AD0.382_reaction_reached",
                "PRZ_center_reclaimed_or_rejected",
                "D_PRZ_failure_zone_defended",
                "post_D_close_progress"
              ],
              "reaction_score": 1.0,
              "reaction_detail": {
                "reaction_score": 1.0,
                "reaction_move_ratio_ad": 1.378,
                "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": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59377.83,
              "a_price": 60245.0,
              "tp1_ad_382": 59709.09,
              "tp2_ad_618": 59913.74,
              "tp3_a_or_structure_liquidity": 60245.0,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.494,
              "ABC": 0.543,
              "BCD": 2.1829,
              "XAD": 0.8113
            },
            "x_price": 59152.7,
            "x_idx": 185,
            "x_order": 8,
            "a_price": 60245.0,
            "a_idx": 195,
            "a_order": 8,
            "b_price": 59705.4,
            "b_idx": 199,
            "b_order": 3,
            "c_price": 59998.4,
            "c_idx": 254,
            "c_order": 3,
            "d_idx": 263
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.956,
            "ratio_score": 1.0,
            "prz_score": 0.923,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60104.22,
            "prz_range": [
              59864.16,
              60344.29
            ],
            "prz_width_pct": 0.799,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.05,
            "price_to_prz_pct_raw": 0.0538,
            "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": "bearish",
              "source": "shark",
              "d_price": 60104.22,
              "a_price": 59666.2,
              "tp1_ad_382": 59936.9,
              "tp2_ad_618": 59833.52,
              "tp3_a_or_structure_liquidity": 59666.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5739,
              "ABC": 1.3317
            },
            "x_price": 60245.0,
            "x_idx": 195,
            "x_order": 8,
            "a_price": 59666.2,
            "a_idx": 228,
            "a_order": 8,
            "b_price": 59998.4,
            "b_idx": 254,
            "b_order": 3,
            "c_price": 59556.0,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.921,
            "ratio_score": 1.0,
            "prz_score": 0.959,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 59314.5,
            "prz_range": [
              59104.97,
              59524.03
            ],
            "prz_width_pct": 0.706,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.26,
            "price_to_prz_pct_raw": -1.2608,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "bat",
              "d_price": 59314.5,
              "a_price": 60164.3,
              "tp1_ad_382": 59639.12,
              "tp2_ad_618": 59839.68,
              "tp3_a_or_structure_liquidity": 60164.3,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4744,
              "ABC": 0.6669
            },
            "x_price": 59114.4,
            "x_idx": 176,
            "x_order": 5,
            "a_price": 60164.3,
            "a_idx": 202,
            "a_order": 5,
            "b_price": 59666.2,
            "b_idx": 228,
            "b_order": 8,
            "c_price": 59998.4,
            "c_idx": 254,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "crab",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.916,
            "ratio_score": 1.0,
            "prz_score": 0.934,
            "prz_proximity": "nearby",
            "action_status": "nearby",
            "high_confluence_prz": true,
            "d_price": 59583.67,
            "prz_range": [
              59354.4,
              59812.93
            ],
            "prz_width_pct": 0.77,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.81,
            "price_to_prz_pct_raw": -0.8128,
            "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": 59583.67,
              "a_price": 60234.8,
              "tp1_ad_382": 59832.4,
              "tp2_ad_618": 59986.07,
              "tp3_a_or_structure_liquidity": 60234.8,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5699,
              "ABC": 0.5227
            },
            "x_price": 59705.4,
            "x_idx": 199,
            "x_order": 3,
            "a_price": 60234.8,
            "a_idx": 221,
            "a_order": 8,
            "b_price": 59933.1,
            "b_idx": 269,
            "b_order": 3,
            "c_price": 60090.8,
            "c_idx": 296,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.882,
            "ratio_score": 0.882,
            "prz_score": 0.907,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60336.71,
            "prz_range": [
              60083.38,
              60590.03
            ],
            "prz_width_pct": 0.84,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.44,
            "price_to_prz_pct_raw": 0.4408,
            "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": "bearish",
              "source": "shark",
              "d_price": 60336.71,
              "a_price": 59705.4,
              "tp1_ad_382": 60095.55,
              "tp2_ad_618": 59946.56,
              "tp3_a_or_structure_liquidity": 59705.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.6026,
              "ABC": 1.0854
            },
            "x_price": 60466.9,
            "x_idx": 166,
            "x_order": 3,
            "a_price": 59705.4,
            "a_idx": 199,
            "a_order": 3,
            "b_price": 60164.3,
            "b_idx": 202,
            "b_order": 5,
            "c_price": 59666.2,
            "c_idx": 228,
            "c_order": 8,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.866,
            "ratio_score": 0.874,
            "prz_score": 0.918,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60493.0,
            "prz_range": [
              60247.61,
              60738.4
            ],
            "prz_width_pct": 0.811,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 0.7,
            "price_to_prz_pct_raw": 0.701,
            "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": "bearish",
              "source": "bat",
              "d_price": 60493.0,
              "a_price": 59210.4,
              "tp1_ad_382": 60003.05,
              "tp2_ad_618": 59700.35,
              "tp3_a_or_structure_liquidity": 59210.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5172,
              "ABC": 0.5614
            },
            "x_price": 60734.0,
            "x_idx": 234,
            "x_order": 8,
            "a_price": 59210.4,
            "a_idx": 247,
            "a_order": 5,
            "b_price": 59998.4,
            "b_idx": 254,
            "b_order": 3,
            "c_price": 59556.0,
            "c_idx": 286,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "shark",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "low",
            "pattern_score": 0.86,
            "ratio_score": 1.0,
            "prz_score": 0.865,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 59365.53,
            "prz_range": [
              59084.21,
              59646.85
            ],
            "prz_width_pct": 0.948,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -1.18,
            "price_to_prz_pct_raw": -1.1759,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bullish",
              "source": "shark",
              "d_price": 59365.53,
              "a_price": 59998.4,
              "tp1_ad_382": 59607.29,
              "tp2_ad_618": 59756.64,
              "tp3_a_or_structure_liquidity": 59998.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.5935,
              "ABC": 1.1976
            },
            "x_price": 59210.4,
            "x_idx": 247,
            "x_order": 5,
            "a_price": 59998.4,
            "a_idx": 254,
            "a_order": 3,
            "b_price": 59530.7,
            "b_idx": 279,
            "b_order": 8,
            "c_price": 60090.8,
            "c_idx": 296,
            "c_order": 3,
            "d_idx": null
          },
          {
            "pattern": "butterfly",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "medium",
            "pattern_score": 0.854,
            "ratio_score": 0.867,
            "prz_score": 0.967,
            "prz_proximity": "watch",
            "action_status": "watch",
            "high_confluence_prz": true,
            "d_price": 60723.48,
            "prz_range": [
              60515.21,
              60931.75
            ],
            "prz_width_pct": 0.686,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": 1.08,
            "price_to_prz_pct_raw": 1.0847,
            "harmonic_vote_state": {
              "authority": "pre_confirmation_reversal_candidate",
              "directional_vote_weight": 0.25,
              "confirmed_reaction": false,
              "confirmation_reasons": [],
              "reaction_score": 0.0,
              "reaction_detail": {
                "reaction_score": 0.0,
                "reasons": []
              },
              "path_role": "weak PRZ/reaction-zone context only; cannot flip main path",
              "standalone_path_override_allowed": false
            },
            "directional_vote_weight": 0.25,
            "confirmed_reaction": false,
            "standalone_path_override_allowed": false,
            "tp_ladder": {
              "direction": "bearish",
              "source": "butterfly",
              "d_price": 60723.48,
              "a_price": 58835.2,
              "tp1_ad_382": 60002.16,
              "tp2_ad_618": 59556.52,
              "tp3_a_or_structure_liquidity": 58835.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.8145,
              "ABC": 0.7177
            },
            "x_price": 60466.9,
            "x_idx": 166,
            "x_order": 3,
            "a_price": 58835.2,
            "a_idx": 169,
            "a_order": 3,
            "b_price": 60164.3,
            "b_idx": 202,
            "b_order": 5,
            "c_price": 59210.4,
            "c_idx": 247,
            "c_order": 5,
            "d_idx": null
          },
          {
            "pattern": "bat",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "candidate",
            "quality": "low",
            "pattern_score": 0.852,
            "ratio_score": 0.81,
            "prz_score": 0.879,
            "prz_proximity": "active",
            "action_status": "active",
            "high_confluence_prz": true,
            "d_price": 60063.01,
            "prz_range": [
              59789.27,
              60336.74
            ],
            "prz_width_pct": 0.911,
            "prz_confluence_count": 3,
            "prz_fib_families": [
              "ABCD",
              "BC_EXT",
              "XAD"
            ],
            "price_to_prz_pct": -0.01,
            "price_to_prz_pct_raw": -0.0148,
            "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": "bearish",
              "source": "bat",
              "d_price": 60063.01,
              "a_price": 59114.4,
              "tp1_ad_382": 59700.64,
              "tp2_ad_618": 59476.77,
              "tp3_a_or_structure_liquidity": 59114.4,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "ratios": {
              "XAB": 0.4884,
              "ABC": 0.942
            },
            "x_price": 60466.9,
            "x_idx": 166,
            "x_order": 3,
            "a_price": 59114.4,
            "a_idx": 176,
            "a_order": 5,
            "b_price": 59775.0,
            "b_idx": 180,
            "b_order": 5,
            "c_price": 59152.7,
            "c_idx": 185,
            "c_order": 8,
            "d_idx": null
          }
        ],
        "actionable_patterns_list": [
          {
            "pattern": "gartley",
            "signal": "bullish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.905,
            "prz_proximity": "active",
            "prz_range": [
              59725.77,
              59936.53
            ],
            "prz_reversal_direction": "up",
            "price_to_prz_pct": -0.4,
            "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": 59831.15,
              "a_price": 60274.2,
              "tp1_ad_382": 60000.39,
              "tp2_ad_618": 60104.95,
              "tp3_a_or_structure_liquidity": 60274.2,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $59,725.77-$59,936.53: expected reversal UP if price reacts in zone"
          },
          {
            "pattern": "gartley",
            "signal": "bearish",
            "completion_status": "forming",
            "pattern_quality": "strict",
            "quality": "high",
            "pattern_score": 0.89,
            "prz_proximity": "active",
            "prz_range": [
              59757.24,
              60064.56
            ],
            "prz_reversal_direction": "down",
            "price_to_prz_pct": -0.27,
            "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": "bearish",
              "source": "gartley",
              "d_price": 59910.9,
              "a_price": 59152.7,
              "tp1_ad_382": 59621.27,
              "tp2_ad_618": 59442.33,
              "tp3_a_or_structure_liquidity": 59152.7,
              "note": "Use as strong TP ladder context; not standalone path authority."
            },
            "interpretation": "GARTLEY FORMING HIGH PRZ $59,757.24-$60,064.56: expected reversal DOWN if price reacts in zone"
          }
        ],
        "best_council_prz": {
          "pattern": "gartley",
          "signal": "bullish",
          "completion_status": "forming",
          "pattern_quality": "strict",
          "quality": "high",
          "pattern_score": 0.905,
          "ratio_score": 0.891,
          "prz_score": 1.0,
          "prz_proximity": "active",
          "action_status": "active",
          "high_confluence_prz": true,
          "d_price": 59831.15,
          "prz_range": [
            59725.77,
            59936.53
          ],
          "prz_width_pct": 0.352,
          "prz_confluence_count": 3,
          "prz_fib_families": [
            "ABCD",
            "BC_EXT",
            "XAD"
          ],
          "price_to_prz_pct": -0.4,
          "price_to_prz_pct_raw": -0.4008,
          "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": 59831.15,
            "a_price": 60274.2,
            "tp1_ad_382": 60000.39,
            "tp2_ad_618": 60104.95,
            "tp3_a_or_structure_liquidity": 60274.2,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          "ratios": {
            "XAB": 0.5997,
            "ABC": 0.4623
          },
          "x_price": 59705.4,
          "x_idx": 199,
          "x_order": 3,
          "a_price": 60274.2,
          "a_idx": 260,
          "a_order": 3,
          "b_price": 59933.1,
          "b_idx": 269,
          "b_order": 3,
          "c_price": 60090.8,
          "c_idx": 296,
          "c_order": 3,
          "d_idx": null
        },
        "best_tp_ladder": {
          "direction": "bullish",
          "source": "gartley",
          "d_price": 59831.15,
          "a_price": 60274.2,
          "tp1_ad_382": 60000.39,
          "tp2_ad_618": 60104.95,
          "tp3_a_or_structure_liquidity": 60274.2,
          "note": "Use as strong TP ladder context; not standalone path authority."
        },
        "tp_ladder": [
          {
            "direction": "bullish",
            "source": "gartley",
            "d_price": 59831.15,
            "a_price": 60274.2,
            "tp1_ad_382": 60000.39,
            "tp2_ad_618": 60104.95,
            "tp3_a_or_structure_liquidity": 60274.2,
            "note": "Use as strong TP ladder context; not standalone path authority."
          },
          {
            "direction": "bearish",
            "source": "gartley",
            "d_price": 59910.9,
            "a_price": 59152.7,
            "tp1_ad_382": 59621.27,
            "tp2_ad_618": 59442.33,
            "tp3_a_or_structure_liquidity": 59152.7,
            "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.192,
          "bearish": 0.188
        },
        "directional_score_total": 0.38,
        "directional_dominance": 0.008
      },
      "raw_llm_response": "{\n  \"signal\": \"neutral\",\n  \"confidence\": 0.38,\n  \"structure_bias\": \"neutral\",\n  \"setup_bias\": \"neutral\",\n  \"setup_score\": 0.44,\n  \"setup_signals\": [\n    \"현재가 $60,071.90는 고품질 strict 상승 Gartley PRZ $59,725.77-$59,936.53 위에 있어 재진입 시 상승 반응 후보이나, 아직 confirmed_reaction=false\",\n    \"현재가 $60,071.90는 고품질 strict 하락 Gartley PRZ $59,757.24-$60,064.56 바로 위에 위치하며, D 예상가 $59,910.90 부근에서 하락 반응 후보이나 confirmed_reaction=false\",\n    \"중간 품질 strict 하락 Shark PRZ $59,864.16-$60,344.29가 활성 구간이며 현재가가 해당 PRZ 내부/상단부에 있어 단기 저항 반응 가능성 존재\",\n    \"완료된 bearish Gartley 후보는 PRZ $59,831.89-$60,188.30에서 반응 확인됨(reaction_score 1.0, AD0.382 도달), 하지만 candidate-tier라 단독 구조 전환 근거는 아님\",\n    \"방향 점수는 bullish 0.192 vs bearish 0.188, dominance 0.008로 사실상 균형 상태\"\n  ],\n  \"reasoning\": \"15분 BTC는 현재 $60,071.90으로, 핵심 활성 PRZ들이 $59,725.77-$60,344.29에 겹쳐 있어 방향성보다 반응 구간 성격이 강합니다. 가장 중요한 council PRZ는 strict/high 상승 Gartley $59,725.77-$59,936.53와 strict/high 하락 Gartley $59,757.24-$60,064.56로 서로 충돌하며, 둘 다 confirmed_reaction=false라 구조를 뒤집을 권한은 없습니다. 완료된 bearish Gartley는 $59,831.89-$60,188.30에서 반응 확인(reaction_score 1.0)되었지만 candidate 품질이므로 중간 confluence/tie-breaker 이상으로 보지 않습니다. 따라서 구조_bias는 확정 BOS/CHoCH/MSS 없이 중립, setup_bias도 상하 PRZ 충돌과 directional_dominance 0.008 때문에 중립입니다.\",\n  \"key_levels\": {\n    \"support\": [\n      59936.53,\n      59831.15,\n      59725.77,\n      59621.27,\n      59442.33\n    ],\n    \"resistance\": [\n      60064.56,\n      60104.95,\n      60188.3,\n      60274.2,\n      60344.29\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,344.29 상방 15분 종가 수용\",\n  \"risk_scenario\": \"가격이 $60,344.29 위로 수용되면 활성 하락 Shark/Gartley PRZ 방어가 실패하며 $60,590.03-$60,738.40 및 $60,931.75 쪽 상단 PRZ/유동성으로 확장될 수 있습니다. 반대로 $59,725.77 아래로 밀리면 상승 Gartley PRZ 방어 실패로 $59,621.27, $59,442.33, $59,152.70 방향의 하락 TP ladder가 열립니다.\",\n  \"data_quality\": \"medium\"\n}"
    },
    "wyckoff": {
      "agent_id": "wyckoff",
      "display_name": "Wyckoff Expert",
      "signal": "bearish",
      "confidence": 0.74,
      "structure_bias": "bearish",
      "setup_bias": "bearish",
      "setup_score": 0.72,
      "setup_signals": [
        "활성 분배 구조 15m_cycle_2에서 현재가 $60,071.90가 EQ 약 $59,810.55 위의 프리미엄 영역에 위치",
        "UT $60,028.00 및 UTAD $60,090.80 부근에서 상단 실패 후보 형성",
        "현재가가 UTAD 고점 $60,090.80 바로 아래에 머물며 상단 수용이 아직 확인되지 않음",
        "활성 구조의 SOW_IN_PHASE_B $59,530.70이 하방 재시험 대상으로 남아 있음",
        "상위 이전 분배 구조 15m_cycle_1은 BC $61,188.00 → AR $60,752.80 → ST $61,931.10 → SOW $59,210.40 → Phase E $58,388.00까지 완료된 약세 구조"
      ],
      "reasoning": "레짐은 DIS이고 regime_fitness가 0.963으로 높으며, 지표상 structure_bias는 bearish로 확정되어 있습니다. 이전 완료 구조 15m_cycle_1은 BC $61,188.00, AR $60,752.80 이후 SOW $59,210.40 및 Phase E $58,388.00까지 진행된 분배 완료 구조로 해석됩니다. 현재 활성 구조 15m_cycle_2는 BC $59,998.40, AR $59,041.10, ST $60,580.00 이후 SOW_IN_PHASE_B $59,530.70, UT $60,028.00, UTAD $60,090.80을 형성했으며, 현재가 $60,071.90는 UTAD 바로 아래라 상단 실패 테스트 구간입니다. 따라서 구조적 편향은 약세이고, 즉시 경로도 $60,090.80~$60,580.00 상단 수용 실패 시 $59,530.70, $59,210.40, $59,041.10 재시험 쪽이 우선입니다. 다만 $60,580.00 위로 명확히 회복·수용되면 현재 UTAD/LPSY 성격의 약세 셋업은 약화됩니다.",
      "key_levels": {
        "support": [
          59530.7,
          59210.4,
          59041.1,
          58388.0,
          58030.0
        ],
        "resistance": [
          60090.8,
          60580.0,
          60734.0,
          61188.0,
          61931.1
        ]
      },
      "time_horizon": "short term",
      "invalidation_level": "$60,580.00 위 15분봉 기준 명확한 회복 및 수용",
      "risk_scenario": "$60,090.80 UTAD 후보를 회복한 뒤 $60,580.00 ST 상단까지 돌파·수용하면 현재의 상단 실패 해석은 무효화되고, $60,734.00 및 $61,188.00 쪽으로 재분배 상단 재검증이 열릴 수 있습니다.",
      "data_quality": "high",
      "metrics": {
        "acc_score": 96.2,
        "dis_score": 96.2,
        "regime": "DIS",
        "regime_state": "dis_candidate",
        "structure_bias": "bearish",
        "phase_context": "dis_candidate / distribution / Phase E",
        "phases_detected": [
          "BC",
          "AR",
          "ST",
          "SOW_IN_PHASE_B",
          "UT",
          "SOW",
          "Phase E"
        ],
        "last_phase": "Phase E",
        "phase_candidates": [
          {
            "label": "BC",
            "side": "high",
            "idx": 95,
            "price": 61188.0,
            "color": "#ffd166"
          },
          {
            "label": "AR",
            "side": "low",
            "idx": 102,
            "price": 60752.8,
            "color": "#06d6a0"
          },
          {
            "label": "ST",
            "side": "high",
            "idx": 138,
            "price": 61931.1,
            "color": "#118ab2"
          },
          {
            "label": "SOW_IN_PHASE_B",
            "side": "low",
            "idx": 163,
            "price": 58030.0,
            "color": "#ef476f"
          },
          {
            "label": "UT",
            "side": "high",
            "idx": 234,
            "price": 60734.0,
            "color": "#f9844a"
          },
          {
            "label": "SOW",
            "side": "low",
            "idx": 247,
            "price": 59210.4,
            "color": "#ef476f"
          },
          {
            "label": "Phase E",
            "side": "low",
            "idx": 257,
            "price": 58388.0,
            "color": "#7209b7"
          }
        ],
        "phase_structures": [
          {
            "structure_id": "15m_cycle_1",
            "sequence": 1,
            "timeframe": "15m",
            "regime": "distribution",
            "role": "prior_completed_structure",
            "is_active": false,
            "is_completed": true,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "distribution",
            "start_idx": 95,
            "end_idx": 257,
            "phase_count": 7,
            "phases": [
              {
                "label": "BC",
                "side": "high",
                "idx": 95,
                "price": 61188.0,
                "color": "#ffd166",
                "dt": "2026-06-25 05:45:00+09:00"
              },
              {
                "label": "AR",
                "side": "low",
                "idx": 102,
                "price": 60752.8,
                "color": "#06d6a0",
                "dt": "2026-06-25 07:30:00+09:00"
              },
              {
                "label": "ST",
                "side": "high",
                "idx": 138,
                "price": 61931.1,
                "color": "#118ab2",
                "dt": "2026-06-25 16:30:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 163,
                "price": 58030.0,
                "color": "#ef476f",
                "dt": "2026-06-25 22:45:00+09:00"
              },
              {
                "label": "UT",
                "side": "high",
                "idx": 234,
                "price": 60734.0,
                "color": "#f9844a",
                "dt": "2026-06-26 16:30:00+09:00"
              },
              {
                "label": "SOW",
                "side": "low",
                "idx": 247,
                "price": 59210.4,
                "color": "#ef476f",
                "dt": "2026-06-26 19:45:00+09:00"
              },
              {
                "label": "Phase E",
                "side": "low",
                "idx": 257,
                "price": 58388.0,
                "color": "#7209b7",
                "dt": "2026-06-26 22:15:00+09:00"
              }
            ]
          },
          {
            "structure_id": "15m_cycle_2",
            "sequence": 2,
            "timeframe": "15m",
            "regime": "distribution",
            "role": "current_structure_candidate",
            "is_active": true,
            "is_completed": false,
            "is_confirmed": true,
            "structure_bias": "bearish",
            "phase_context": "distribution",
            "start_idx": 254,
            "end_idx": 296,
            "phase_count": 6,
            "phases": [
              {
                "label": "BC",
                "side": "high",
                "idx": 254,
                "price": 59998.4,
                "color": "#ffd166",
                "dt": "2026-06-26 21:30:00+09:00"
              },
              {
                "label": "AR",
                "side": "low",
                "idx": 255,
                "price": 59041.1,
                "color": "#06d6a0",
                "dt": "2026-06-26 21:45:00+09:00"
              },
              {
                "label": "ST",
                "side": "high",
                "idx": 268,
                "price": 60580.0,
                "color": "#118ab2",
                "dt": "2026-06-27 01:00:00+09:00"
              },
              {
                "label": "SOW_IN_PHASE_B",
                "side": "low",
                "idx": 279,
                "price": 59530.7,
                "color": "#ef476f",
                "dt": "2026-06-27 03:45:00+09:00"
              },
              {
                "label": "UT",
                "side": "high",
                "idx": 290,
                "price": 60028.0,
                "color": "#f9844a",
                "dt": "2026-06-27 06:30:00+09:00"
              },
              {
                "label": "UTAD",
                "side": "high",
                "idx": 296,
                "price": 60090.8,
                "color": "#f9844a",
                "dt": "2026-06-27 08:00:00+09:00"
              }
            ]
          }
        ],
        "active_structure_id": "15m_cycle_2",
        "primary_structure_id": "15m_cycle_1",
        "structure_count": 2,
        "regime_fitness": 0.9625,
        "current_event": "Phase E",
        "major_phase": "E",
        "pos_in_range": 0.5,
        "main_range_low": 60752.8,
        "main_range_high": 61188.0
      },
      "raw_llm_response": "{\n  \"signal\": \"bearish\",\n  \"confidence\": 0.74,\n  \"structure_bias\": \"bearish\",\n  \"setup_bias\": \"bearish\",\n  \"setup_score\": 0.72,\n  \"setup_signals\": [\n    \"활성 분배 구조 15m_cycle_2에서 현재가 $60,071.90가 EQ 약 $59,810.55 위의 프리미엄 영역에 위치\",\n    \"UT $60,028.00 및 UTAD $60,090.80 부근에서 상단 실패 후보 형성\",\n    \"현재가가 UTAD 고점 $60,090.80 바로 아래에 머물며 상단 수용이 아직 확인되지 않음\",\n    \"활성 구조의 SOW_IN_PHASE_B $59,530.70이 하방 재시험 대상으로 남아 있음\",\n    \"상위 이전 분배 구조 15m_cycle_1은 BC $61,188.00 → AR $60,752.80 → ST $61,931.10 → SOW $59,210.40 → Phase E $58,388.00까지 완료된 약세 구조\"\n  ],\n  \"reasoning\": \"레짐은 DIS이고 regime_fitness가 0.963으로 높으며, 지표상 structure_bias는 bearish로 확정되어 있습니다. 이전 완료 구조 15m_cycle_1은 BC $61,188.00, AR $60,752.80 이후 SOW $59,210.40 및 Phase E $58,388.00까지 진행된 분배 완료 구조로 해석됩니다. 현재 활성 구조 15m_cycle_2는 BC $59,998.40, AR $59,041.10, ST $60,580.00 이후 SOW_IN_PHASE_B $59,530.70, UT $60,028.00, UTAD $60,090.80을 형성했으며, 현재가 $60,071.90는 UTAD 바로 아래라 상단 실패 테스트 구간입니다. 따라서 구조적 편향은 약세이고, 즉시 경로도 $60,090.80~$60,580.00 상단 수용 실패 시 $59,530.70, $59,210.40, $59,041.10 재시험 쪽이 우선입니다. 다만 $60,580.00 위로 명확히 회복·수용되면 현재 UTAD/LPSY 성격의 약세 셋업은 약화됩니다.\",\n  \"key_levels\": {\n    \"support\": [\n      59530.7,\n      59210.4,\n      59041.1,\n      58388.0,\n      58030.0\n    ],\n    \"resistance\": [\n      60090.8,\n      60580.0,\n      60734.0,\n      61188.0,\n      61931.1\n    ]\n  },\n  \"time_horizon\": \"short term\",\n  \"invalidation_level\": \"$60,580.00 위 15분봉 기준 명확한 회복 및 수용\",\n  \"risk_scenario\": \"$60,090.80 UTAD 후보를 회복한 뒤 $60,580.00 ST 상단까지 돌파·수용하면 현재의 상단 실패 해석은 무효화되고, $60,734.00 및 $61,188.00 쪽으로 재분배 상단 재검증이 열릴 수 있습니다.\",\n  \"data_quality\": \"high\"\n}"
    }
  },
  "chairman_synthesis": {
    "overall_signal": "bearish",
    "overall_confidence": 0.64,
    "execution_setup": {
      "setup_bias": "bearish",
      "setup_strength": 0.7,
      "active_setups": [
        "Wyckoff 기준 현재가는 활성 분배 구조의 UTAD $60,090.80 바로 아래에 위치해 상단 수용 실패 조건이 열려 있음",
        "Fibonacci 기준 현재가 $60,071.90는 하락 스윙 $60,580 → $59,556의 0.5 되돌림 $60,068.00과 거의 일치하며, $60,188.83의 0.618 저항이 바로 위에 있음",
        "Derivatives 기준 롱 계정 비율 0.680으로 롱 포지셔닝 과밀이며, 24h OI -1.6490%와 CVD -3413.3670이 약한 체결 흐름을 시사",
        "EMA 구조상 가격은 EMA20 $59,922.14 및 EMA120 $59,965.40 위에 있지만 EMA240 $60,381.58 아래에 있어 상방 구조 확정 전 저항권에 머무름",
        "하모닉 PRZ는 $59,725.77-$60,064.56 구간에서 상승·하락 후보가 충돌하나, 확인된 반응 권한은 제한적이며 독립 구조 전환 신호로 보기 어려움"
      ],
      "setup_vs_structure": "실행 셋업은 구조적 약세와 대체로 정렬되어 있다. 다만 ICT는 단기 BOS 회복을 근거로 약한 bullish 구조를 제시하므로, 즉시 매도 추격보다는 $60,090.80-$60,580.00 상단 수용 여부가 핵심 조건이다."
    },
    "signal_breakdown": {
      "bullish_count": 1,
      "bearish_count": 3,
      "neutral_count": 2
    },
    "key_levels": {
      "support": [
        59965.4,
        59947.17,
        59922.14,
        59797.66,
        59556.0,
        59530.7,
        59210.4,
        59041.1,
        58944.0,
        58800.0,
        58388.0,
        58288.0,
        58030.0
      ],
      "resistance": [
        60090.8,
        60188.83,
        60360.86,
        60381.58,
        60580.0,
        60600.0,
        60734.0,
        61200.0,
        61256.0,
        62402.8,
        63209.6
      ]
    },
    "confluences": [
      "Wyckoff의 UTAD $60,090.80, Harmonic의 bearish Shark D $60,104.22, Fibonacci의 0.5 되돌림 $60,068.00이 모두 현재가 $60,071.90 주변을 단기 반응 구간으로 지목한다.",
      "Fibonacci의 핵심 0.618 저항 $60,188.83과 Harmonic의 완료 bearish Gartley PRZ 상단 $60,188.30이 거의 동일해 $60,188 부근은 강한 저항 컨플루언스다.",
      "EMA240 $60,381.58, Fibonacci 0.786 $60,360.86, Harmonic bearish Shark PRZ 상단 $60,344.29가 $60,340-$60,382 구간에 밀집해 중간 저항대를 형성한다.",
      "Wyckoff ST $60,580.00, ICT range high $60,580.00, Derivatives 상단 청산/저항 $60,600이 동일 구간을 구조적 상단 확인 레벨로 제시한다.",
      "ICT 이전일 고가 $60,734.00과 Wyckoff prior UT $60,734.00이 일치해 $60,734는 약세 구조 무효화에 가까운 상위 확인 레벨이다.",
      "Candlestick EMA120 $59,965.40, Derivatives EMA120 $59,965.40, Fibonacci ret_0.382 $59,947.17, Harmonic PRZ 상단 $59,936.53이 $59,936-$59,965 구간의 1차 지지/균형대를 만든다.",
      "Wyckoff SOW_IN_PHASE_B $59,530.70, Fibonacci swing low $59,556.00, Harmonic bearish Gartley TP1 $59,621.27이 $59,530-$59,621 구간의 하단 구조 레벨로 겹친다.",
      "ICT bullish OB $58,288.00-$58,944.00, Derivatives 하단 유동성 $58,800, Wyckoff prior Phase E $58,388.00 및 7일 저가 $58,030.00이 $58,030-$58,944 구간에 하방 유동성/수요 후보를 집중시킨다."
    ],
    "conflicts": [
      "ICT는 최근 BOS_bullish $60,245.00을 근거로 구조를 bullish로 보지만, Wyckoff는 현재 활성 구조를 분배로 해석하며 UTAD $60,090.80 부근의 상단 실패 조건을 더 중요하게 본다.",
      "Candlestick은 가격이 EMA20 $59,922.14와 EMA120 $59,965.40 위로 회복된 점을 약한 bullish setup으로 보지만, EMA240 $60,381.58 아래라는 점에서는 구조 전환이 미확정이다.",
      "Harmonic은 $59,725.77-$59,936.53 상승 Gartley PRZ와 $59,757.24-$60,064.56 하락 Gartley PRZ가 충돌해 방향성 우위를 거의 부여하지 못한다.",
      "Derivatives는 롱 과밀, OI 감소, 음수 CVD로 bearish execution을 제시하지만, 포지셔닝 자체는 극단적 강제 청산 국면이라기보다 균형에 가까워 단독 구조 판단 근거로는 제한적이다."
    ],
    "executive_summary": "현재 15분 BTC 구조는 중립 박스권 요소가 남아 있지만, 의장단 합성 기준으로는 Wyckoff의 활성 분배 구조가 가장 강한 구조적 근거를 제공하므로 overall_signal은 bearish다. 이전 분배 사이클은 Phase E $58,388.00까지 진행된 완료 구조로 보고, 현재는 새 활성 분배 후보에서 BC $59,998.40, AR $59,041.10, ST $60,580.00 이후 UT $60,028.00 및 UTAD $60,090.80을 테스트하는 위치로 진단한다. 현재가 $60,071.90는 Fibonacci 0.5 $60,068.00, Wyckoff UTAD $60,090.80, Harmonic PRZ가 겹치는 반응권에 있으며, $60,188-$60,381 구간은 피보나치·하모닉·EMA 저항이 중첩된다. 구조적 위험은 상단 수용 실패, 롱 포지셔닝 과밀, 음수 CVD이며, 반대편 위험은 ICT의 BOS_bullish $60,245.00 이후 $60,580-$60,734 회복 시 분배 해석이 약화되는 점이다.",
    "raw_llm_response": "{\n  \"overall_signal\": \"bearish\",\n  \"overall_confidence\": 0.64,\n  \"execution_setup\": {\n    \"setup_bias\": \"bearish\",\n    \"setup_strength\": 0.70,\n    \"active_setups\": [\n      \"Wyckoff 기준 현재가는 활성 분배 구조의 UTAD $60,090.80 바로 아래에 위치해 상단 수용 실패 조건이 열려 있음\",\n      \"Fibonacci 기준 현재가 $60,071.90는 하락 스윙 $60,580 → $59,556의 0.5 되돌림 $60,068.00과 거의 일치하며, $60,188.83의 0.618 저항이 바로 위에 있음\",\n      \"Derivatives 기준 롱 계정 비율 0.680으로 롱 포지셔닝 과밀이며, 24h OI -1.6490%와 CVD -3413.3670이 약한 체결 흐름을 시사\",\n      \"EMA 구조상 가격은 EMA20 $59,922.14 및 EMA120 $59,965.40 위에 있지만 EMA240 $60,381.58 아래에 있어 상방 구조 확정 전 저항권에 머무름\",\n      \"하모닉 PRZ는 $59,725.77-$60,064.56 구간에서 상승·하락 후보가 충돌하나, 확인된 반응 권한은 제한적이며 독립 구조 전환 신호로 보기 어려움\"\n    ],\n    \"setup_vs_structure\": \"실행 셋업은 구조적 약세와 대체로 정렬되어 있다. 다만 ICT는 단기 BOS 회복을 근거로 약한 bullish 구조를 제시하므로, 즉시 매도 추격보다는 $60,090.80-$60,580.00 상단 수용 여부가 핵심 조건이다.\"\n  },\n  \"signal_breakdown\": {\n    \"bullish_count\": 1,\n    \"bearish_count\": 3,\n    \"neutral_count\": 2\n  },\n  \"key_levels\": {\n    \"support\": [\n      59965.4,\n      59947.17,\n      59922.14,\n      59797.66,\n      59556.0,\n      59530.7,\n      59210.4,\n      59041.1,\n      58944.0,\n      58800.0,\n      58388.0,\n      58288.0,\n      58030.0\n    ],\n    \"resistance\": [\n      60090.8,\n      60188.83,\n      60360.86,\n      60381.58,\n      60580.0,\n      60600.0,\n      60734.0,\n      61200.0,\n      61256.0,\n      62402.8,\n      63209.6\n    ]\n  },\n  \"confluences\": [\n    \"Wyckoff의 UTAD $60,090.80, Harmonic의 bearish Shark D $60,104.22, Fibonacci의 0.5 되돌림 $60,068.00이 모두 현재가 $60,071.90 주변을 단기 반응 구간으로 지목한다.\",\n    \"Fibonacci의 핵심 0.618 저항 $60,188.83과 Harmonic의 완료 bearish Gartley PRZ 상단 $60,188.30이 거의 동일해 $60,188 부근은 강한 저항 컨플루언스다.\",\n    \"EMA240 $60,381.58, Fibonacci 0.786 $60,360.86, Harmonic bearish Shark PRZ 상단 $60,344.29가 $60,340-$60,382 구간에 밀집해 중간 저항대를 형성한다.\",\n    \"Wyckoff ST $60,580.00, ICT range high $60,580.00, Derivatives 상단 청산/저항 $60,600이 동일 구간을 구조적 상단 확인 레벨로 제시한다.\",\n    \"ICT 이전일 고가 $60,734.00과 Wyckoff prior UT $60,734.00이 일치해 $60,734는 약세 구조 무효화에 가까운 상위 확인 레벨이다.\",\n    \"Candlestick EMA120 $59,965.40, Derivatives EMA120 $59,965.40, Fibonacci ret_0.382 $59,947.17, Harmonic PRZ 상단 $59,936.53이 $59,936-$59,965 구간의 1차 지지/균형대를 만든다.\",\n    \"Wyckoff SOW_IN_PHASE_B $59,530.70, Fibonacci swing low $59,556.00, Harmonic bearish Gartley TP1 $59,621.27이 $59,530-$59,621 구간의 하단 구조 레벨로 겹친다.\",\n    \"ICT bullish OB $58,288.00-$58,944.00, Derivatives 하단 유동성 $58,800, Wyckoff prior Phase E $58,388.00 및 7일 저가 $58,030.00이 $58,030-$58,944 구간에 하방 유동성/수요 후보를 집중시킨다.\"\n  ],\n  \"conflicts\": [\n    \"ICT는 최근 BOS_bullish $60,245.00을 근거로 구조를 bullish로 보지만, Wyckoff는 현재 활성 구조를 분배로 해석하며 UTAD $60,090.80 부근의 상단 실패 조건을 더 중요하게 본다.\",\n    \"Candlestick은 가격이 EMA20 $59,922.14와 EMA120 $59,965.40 위로 회복된 점을 약한 bullish setup으로 보지만, EMA240 $60,381.58 아래라는 점에서는 구조 전환이 미확정이다.\",\n    \"Harmonic은 $59,725.77-$59,936.53 상승 Gartley PRZ와 $59,757.24-$60,064.56 하락 Gartley PRZ가 충돌해 방향성 우위를 거의 부여하지 못한다.\",\n    \"Derivatives는 롱 과밀, OI 감소, 음수 CVD로 bearish execution을 제시하지만, 포지셔닝 자체는 극단적 강제 청산 국면이라기보다 균형에 가까워 단독 구조 판단 근거로는 제한적이다.\"\n  ],\n  \"highest_conviction_analyst\": \"Wyckoff Expert — 분배 레짐 적합도가 매우 높고, 이전 완료 분배 구조와 현재 활성 분배 후보를 분리해 제시했으며, BC $59,998.40, AR $59,041.10, ST $60,580.00, SOW $59,530.70, UT $60,028.00, UTAD $60,090.80 등 단계별 구조 레벨이 가장 구체적이다.\",\n  \"invalidation_level\": \"$60,734 상방 수용. 보수적으로는 $60,580 회복이 약세 셋업을 약화시키며, $60,734 위에서 15분 종가 수용이 반복되면 현재 분배/UTAD 중심의 bearish 구조 해석은 무효화에 가깝다.\",\n  \"executive_summary\": \"현재 15분 BTC 구조는 중립 박스권 요소가 남아 있지만, 의장단 합성 기준으로는 Wyckoff의 활성 분배 구조가 가장 강한 구조적 근거를 제공하므로 overall_signal은 bearish다. 이전 분배 사이클은 Phase E $58,388.00까지 진행된 완료 구조로 보고, 현재는 새 활성 분배 후보에서 BC $59,998.40, AR $59,041.10, ST $60,580.00 이후 UT $60,028.00 및 UTAD $60,090.80을 테스트하는 위치로 진단한다. 현재가 $60,071.90는 Fibonacci 0.5 $60,068.00, Wyckoff UTAD $60,090.80, Harmonic PRZ가 겹치는 반응권에 있으며, $60,188-$60,381 구간은 피보나치·하모닉·EMA 저항이 중첩된다. 구조적 위험은 상단 수용 실패, 롱 포지셔닝 과밀, 음수 CVD이며, 반대편 위험은 ICT의 BOS_bullish $60,245.00 이후 $60,580-$60,734 회복 시 분배 해석이 약화되는 점이다.\"\n}"
  },
  "overall_signal": "bearish",
  "overall_confidence": 0.64,
  "operating_path": {
    "path_type": "complex",
    "confidence": 0.62,
    "waypoints": [
      {
        "seq": 1,
        "price": 60188.83,
        "type": "liquidity_sweep",
        "source": "Wyckoff(UTAD $60,090.80), Fibonacci(0.618 $60,188.83), Harmonic(완료 bearish Gartley PRZ 상단 $60,188.30)",
        "description": "UTAD $60,090.80 위 매수 유동성을 스윕하며, Fibonacci 0.618 $60,188.83과 bearish Gartley PRZ 상단 $60,188.30이 겹치는 강한 저항 컨플루언스에서 상단 수용에 실패하는 구간. 롱 계정 비율 0.680 과밀과 음수 CVD 환경에서 최종 유동성 그랩 후 반락 시작. 셋업의 핵심 조건인 '상단 수용 실패'를 확인하는 첫 변곡점.",
        "est_hours": 2.0,
        "turning_zone": [
          60188.83,
          60285.0
        ],
        "likely_wick": 60218.0,
        "rejection_confirm": 60090.8,
        "invalid_overshoot": 60360.86,
        "calibration_reasoning": "0.618 피보 $60,188.83과 Gartley PRZ 상단 $60,188.30이 겹치는 저항을 기준으로 위쪽 존을 형성하되, ATR 0.49배(상단 $60,285)로 다음 강저항 $60,360.86 아래에 제한했다. 유동성 스윕 특성상 키 레벨 위로 소폭 오버슈트하는 $60,218을 wick으로 잡고, 스윕 대상인 UTAD $60,090.80 하향 이탈을 거절 확인으로 설정했다."
      },
      {
        "seq": 2,
        "price": 59797.66,
        "type": "support_test",
        "source": "Candlestick/Derivatives(EMA120 $59,965.40, EMA20 $59,922.14), Fibonacci(지지 $59,797.66)",
        "description": "EMA20 $59,922.14·EMA120 $59,965.40 균형대(1차 지지 $59,936-$59,965)를 하향 이탈한 뒤 Fibonacci 지지 $59,797.66을 테스트. OI -1.65%와 CVD -3413의 약한 체결 흐름이 하방 지속을 뒷받침.",
        "est_hours": 5.0,
        "turning_zone": [
          59710.0,
          59797.66
        ],
        "likely_wick": 59752.0,
        "rejection_confirm": 59922.14,
        "invalid_overshoot": 59676.83,
        "calibration_reasoning": "피보 지지 $59,797.66 아래로 ATR 0.45배 존을 두고 하단은 다음 컨플루언스 $59,676.83 직상방에 배치했다. 지지 테스트의 소폭 하향 꼬리를 $59,752로, EMA120 $59,922.14 재탈환을 반등(거절) 확인, $59,676.83 컨플루언스 이탈을 무효화 기준으로 설정했다."
      },
      {
        "seq": 3,
        "price": 59556.0,
        "type": "swing_low",
        "source": "Fibonacci(스윙 저점 $59,556.00), Wyckoff(SOW_IN_PHASE_B $59,530.70), Harmonic(Gartley TP1 $59,621.27)",
        "description": "Fibonacci 스윙 저점 $59,556.00, Wyckoff SOW_IN_PHASE_B $59,530.70, Harmonic Gartley TP1 $59,621.27이 겹치는 $59,530-$59,621 하단 구조 컨플루언스. 분배 마크다운의 1차 핵심 목표이자 단기 반등 가능 구간.",
        "est_hours": 8.0,
        "turning_zone": [
          59485.0,
          59556.0
        ],
        "likely_wick": 59505.0,
        "rejection_confirm": 59621.27,
        "invalid_overshoot": 59264.93,
        "calibration_reasoning": "스윙 저점 $59,556.00과 Wyckoff SOW $59,530.70 구조 컨플루언스를 포함하도록 ATR 0.36배 존을 잡고, 라운드넘버 $59,500 유동성 마그넷 쪽으로 wick $59,505을 편향시켰다. 조건부 Gartley TP1 $59,621.27 재탈환을 거절 확인(주: 미확정 PRZ라 보조 컨플루언스로만 사용), 다음 컨플루언스 $59,264.93 이탈을 마크다운 연장 무효화로 설정했다."
      },
      {
        "seq": 4,
        "price": 59041.1,
        "type": "swing_low",
        "source": "Wyckoff(SOW $59,210.40, AR $59,041.10)",
        "description": "$59,530.70 이탈 시 Wyckoff SOW $59,210.40을 경유해 AR $59,041.10까지 마크다운 연장. 활성 분배 구조의 AR 레벨로, 24시간 내 도달 가능한 주요 하방 목표.",
        "est_hours": 20.0,
        "turning_zone": [
          58900.0,
          59041.1
        ],
        "likely_wick": 58985.0,
        "rejection_confirm": 59210.4,
        "invalid_overshoot": 58800.0,
        "calibration_reasoning": "Wyckoff AR $59,041.10과 피보 ext 컨플루언스 $59,027.62가 거의 일치하는 강한 하단 지지로, 종착 웨이포인트라 ATR 0.72배 와이드 존을 적용해 라운드넘버 $59,000과 Chairman 지지 $58,944.00을 모두 포함시켰다. $59,000 스윕 후 $58,985을 wick으로, Wyckoff SOW $59,210.40 재탈환을 거절 확인, Chairman 지지 $58,800.00 이탈을 AR 붕괴 무효화로 설정했다."
      }
    ],
    "period_extremes": {
      "4h": {
        "expected_high": 60188.83,
        "expected_low": 59922.14,
        "high_first": true
      },
      "8h": {
        "expected_high": 60188.83,
        "expected_low": 59556.0,
        "high_first": true
      },
      "24h": {
        "expected_high": 60188.83,
        "expected_low": 59041.1,
        "high_first": true
      }
    },
    "triggers": {
      "bullish": {
        "price": 60245.0,
        "description": "ICT BOS_bullish $60,245.00 회복·수용 시 분배 해석이 약화되며, EMA240 $60,381.58과 $60,580 range high를 향한 상방 가속 신호. 이 경우 WP1 반락 시나리오 무효화."
      },
      "bearish": {
        "price": 59922.14,
        "description": "EMA20 $59,922.14·EMA120 $59,965.40 균형대를 종가 기준 하향 이탈하면 단기 수요 소멸이 확정되며 $59,556 스윙 저점을 향한 마크다운 가속."
      }
    },
    "scenario_invalidation": 60580.0,
    "raw_llm_response": "```json\n{\n  \"path_type\": \"complex\",\n  \"confidence\": 0.62,\n  \"waypoints\": [\n    {\n      \"seq\": 1,\n      \"price\": 60188.83,\n      \"type\": \"liquidity_sweep\",\n      \"source\": \"Wyckoff(UTAD $60,090.80), Fibonacci(0.618 $60,188.83), Harmonic(완료 bearish Gartley PRZ 상단 $60,188.30)\",\n      \"description\": \"UTAD $60,090.80 위 매수 유동성을 스윕하며, Fibonacci 0.618 $60,188.83과 bearish Gartley PRZ 상단 $60,188.30이 겹치는 강한 저항 컨플루언스에서 상단 수용에 실패하는 구간. 롱 계정 비율 0.680 과밀과 음수 CVD 환경에서 최종 유동성 그랩 후 반락 시작. 셋업의 핵심 조건인 '상단 수용 실패'를 확인하는 첫 변곡점.\",\n      \"est_hours\": 2.0\n    },\n    {\n      \"seq\": 2,\n      \"price\": 59797.66,\n      \"type\": \"support_test\",\n      \"source\": \"Candlestick/Derivatives(EMA120 $59,965.40, EMA20 $59,922.14), Fibonacci(지지 $59,797.66)\",\n      \"description\": \"EMA20 $59,922.14·EMA120 $59,965.40 균형대(1차 지지 $59,936-$59,965)를 하향 이탈한 뒤 Fibonacci 지지 $59,797.66을 테스트. OI -1.65%와 CVD -3413의 약한 체결 흐름이 하방 지속을 뒷받침.\",\n      \"est_hours\": 5.0\n    },\n    {\n      \"seq\": 3,\n      \"price\": 59556.0,\n      \"type\": \"swing_low\",\n      \"source\": \"Fibonacci(스윙 저점 $59,556.00), Wyckoff(SOW_IN_PHASE_B $59,530.70), Harmonic(Gartley TP1 $59,621.27)\",\n      \"description\": \"Fibonacci 스윙 저점 $59,556.00, Wyckoff SOW_IN_PHASE_B $59,530.70, Harmonic Gartley TP1 $59,621.27이 겹치는 $59,530-$59,621 하단 구조 컨플루언스. 분배 마크다운의 1차 핵심 목표이자 단기 반등 가능 구간.\",\n      \"est_hours\": 8.0\n    },\n    {\n      \"seq\": 4,\n      \"price\": 59041.1,\n      \"type\": \"swing_low\",\n      \"source\": \"Wyckoff(SOW $59,210.40, AR $59,041.10)\",\n      \"description\": \"$59,530.70 이탈 시 Wyckoff SOW $59,210.40을 경유해 AR $59,041.10까지 마크다운 연장. 활성 분배 구조의 AR 레벨로, 24시간 내 도달 가능한 주요 하방 목표.\",\n      \"est_hours\": 20.0\n    }\n  ],\n  \"period_extremes\": {\n    \"4h\":  {\"expected_high\": 60188.83, \"expected_low\": 59922.14, \"high_first\": true},\n    \"8h\":  {\"expected_high\": 60188.83, \"expected_low\": 59556.0,  \"high_first\": true},\n    \"24h\": {\"expected_high\": 60188.83, \"expected_low\": 59041.1,  \"high_first\": true}\n  },\n  \"triggers\": {\n    \"bullish\": {\"price\": 60245.0, \"description\": \"ICT BOS_bullish $60,245.00 회복·수용 시 분배 해석이 약화되며, EMA240 $60,381.58과 $60,580 range high를 향한 상방 가속 신호. 이 경우 WP1 반락 시나리오 무효화.\"},\n    \"bearish\": {\"price\": 59922.14, \"description\": \"EMA20 $59,922.14·EMA120 $59,965.40 균형대를 종가 기준 하향 이탈하면 단기 수요 소멸이 확정되며 $59,556 스윙 저점을 향한 마크다운 가속.\"}\n  },\n  \"scenario_invalidation\": 60580.0\n}\n```\n\n**경로 요약:** 구조(BEARISH 64%)와 셋업(BEARISH 70%)이 정렬되어 단일 약세 마크다운 경로를 채택. 다만 현재가가 UTAD $60,090.80 바로 아래 반응권이고 롱 과밀(0.680)·ICT 약세 BOS 회복이 공존해, **즉시 하락보다 상단 유동성 스윕(WP1 $60,188.83) 후 반락**으로 ordering. 이후 균형대 이탈 → $59,556 스윙 저점 → $59,041 AR로 단계적 하락. 전 구간 high_first=true(스윕 고점이 먼저). $60,580 수용 시 분배 구조 자체가 무효화되어 경로 폐기."
  },
  "tp_calibration": {
    "calibrated_waypoints": [
      {
        "seq": 1,
        "base_target": 60188.83,
        "turning_zone": [
          60188.83,
          60285.0
        ],
        "likely_wick": 60218.0,
        "rejection_confirm": 60090.8,
        "invalid_overshoot": 60360.86,
        "calibration_reasoning": "0.618 피보 $60,188.83과 Gartley PRZ 상단 $60,188.30이 겹치는 저항을 기준으로 위쪽 존을 형성하되, ATR 0.49배(상단 $60,285)로 다음 강저항 $60,360.86 아래에 제한했다. 유동성 스윕 특성상 키 레벨 위로 소폭 오버슈트하는 $60,218을 wick으로 잡고, 스윕 대상인 UTAD $60,090.80 하향 이탈을 거절 확인으로 설정했다."
      },
      {
        "seq": 2,
        "base_target": 59797.66,
        "turning_zone": [
          59710.0,
          59797.66
        ],
        "likely_wick": 59752.0,
        "rejection_confirm": 59922.14,
        "invalid_overshoot": 59676.83,
        "calibration_reasoning": "피보 지지 $59,797.66 아래로 ATR 0.45배 존을 두고 하단은 다음 컨플루언스 $59,676.83 직상방에 배치했다. 지지 테스트의 소폭 하향 꼬리를 $59,752로, EMA120 $59,922.14 재탈환을 반등(거절) 확인, $59,676.83 컨플루언스 이탈을 무효화 기준으로 설정했다."
      },
      {
        "seq": 3,
        "base_target": 59556.0,
        "turning_zone": [
          59485.0,
          59556.0
        ],
        "likely_wick": 59505.0,
        "rejection_confirm": 59621.27,
        "invalid_overshoot": 59264.93,
        "calibration_reasoning": "스윙 저점 $59,556.00과 Wyckoff SOW $59,530.70 구조 컨플루언스를 포함하도록 ATR 0.36배 존을 잡고, 라운드넘버 $59,500 유동성 마그넷 쪽으로 wick $59,505을 편향시켰다. 조건부 Gartley TP1 $59,621.27 재탈환을 거절 확인(주: 미확정 PRZ라 보조 컨플루언스로만 사용), 다음 컨플루언스 $59,264.93 이탈을 마크다운 연장 무효화로 설정했다."
      },
      {
        "seq": 4,
        "base_target": 59041.1,
        "turning_zone": [
          58900.0,
          59041.1
        ],
        "likely_wick": 58985.0,
        "rejection_confirm": 59210.4,
        "invalid_overshoot": 58800.0,
        "calibration_reasoning": "Wyckoff AR $59,041.10과 피보 ext 컨플루언스 $59,027.62가 거의 일치하는 강한 하단 지지로, 종착 웨이포인트라 ATR 0.72배 와이드 존을 적용해 라운드넘버 $59,000과 Chairman 지지 $58,944.00을 모두 포함시켰다. $59,000 스윕 후 $58,985을 wick으로, Wyckoff SOW $59,210.40 재탈환을 거절 확인, Chairman 지지 $58,800.00 이탈을 AR 붕괴 무효화로 설정했다."
      }
    ],
    "raw_llm_response": "```json\n{\n  \"calibrated_waypoints\": [\n    {\n      \"seq\": 1,\n      \"base_target\": 60188.83,\n      \"turning_zone\": [60188.83, 60285.00],\n      \"likely_wick\": 60218.00,\n      \"rejection_confirm\": 60090.80,\n      \"invalid_overshoot\": 60360.86,\n      \"calibration_reasoning\": \"0.618 피보 $60,188.83과 Gartley PRZ 상단 $60,188.30이 겹치는 저항을 기준으로 위쪽 존을 형성하되, ATR 0.49배(상단 $60,285)로 다음 강저항 $60,360.86 아래에 제한했다. 유동성 스윕 특성상 키 레벨 위로 소폭 오버슈트하는 $60,218을 wick으로 잡고, 스윕 대상인 UTAD $60,090.80 하향 이탈을 거절 확인으로 설정했다.\"\n    },\n    {\n      \"seq\": 2,\n      \"base_target\": 59797.66,\n      \"turning_zone\": [59710.00, 59797.66],\n      \"likely_wick\": 59752.00,\n      \"rejection_confirm\": 59922.14,\n      \"invalid_overshoot\": 59676.83,\n      \"calibration_reasoning\": \"피보 지지 $59,797.66 아래로 ATR 0.45배 존을 두고 하단은 다음 컨플루언스 $59,676.83 직상방에 배치했다. 지지 테스트의 소폭 하향 꼬리를 $59,752로, EMA120 $59,922.14 재탈환을 반등(거절) 확인, $59,676.83 컨플루언스 이탈을 무효화 기준으로 설정했다.\"\n    },\n    {\n      \"seq\": 3,\n      \"base_target\": 59556.00,\n      \"turning_zone\": [59485.00, 59556.00],\n      \"likely_wick\": 59505.00,\n      \"rejection_confirm\": 59621.27,\n      \"invalid_overshoot\": 59264.93,\n      \"calibration_reasoning\": \"스윙 저점 $59,556.00과 Wyckoff SOW $59,530.70 구조 컨플루언스를 포함하도록 ATR 0.36배 존을 잡고, 라운드넘버 $59,500 유동성 마그넷 쪽으로 wick $59,505을 편향시켰다. 조건부 Gartley TP1 $59,621.27 재탈환을 거절 확인(주: 미확정 PRZ라 보조 컨플루언스로만 사용), 다음 컨플루언스 $59,264.93 이탈을 마크다운 연장 무효화로 설정했다.\"\n    },\n    {\n      \"seq\": 4,\n      \"base_target\": 59041.10,\n      \"turning_zone\": [58900.00, 59041.10],\n      \"likely_wick\": 58985.00,\n      \"rejection_confirm\": 59210.40,\n      \"invalid_overshoot\": 58800.00,\n      \"calibration_reasoning\": \"Wyckoff AR $59,041.10과 피보 ext 컨플루언스 $59,027.62가 거의 일치하는 강한 하단 지지로, 종착 웨이포인트라 ATR 0.72배 와이드 존을 적용해 라운드넘버 $59,000과 Chairman 지지 $58,944.00을 모두 포함시켰다. $59,000 스윕 후 $58,985을 wick으로, Wyckoff SOW $59,210.40 재탈환을 거절 확인, Chairman 지지 $58,800.00 이탈을 AR 붕괴 무효화로 설정했다.\"\n    }\n  ]\n}\n```"
  },
  "timing": {
    "stages": {
      "stage1_agents": 51.6,
      "chairman": 86.9,
      "operating_path": 353.6,
      "tp_calibrator": 149.3
    },
    "agents": {},
    "total_s": 641.5
  }
}